CN103716284B - 网络协议自动化逆向分析方法 - Google Patents
网络协议自动化逆向分析方法 Download PDFInfo
- Publication number
- CN103716284B CN103716284B CN201210375831.8A CN201210375831A CN103716284B CN 103716284 B CN103716284 B CN 103716284B CN 201210375831 A CN201210375831 A CN 201210375831A CN 103716284 B CN103716284 B CN 103716284B
- Authority
- CN
- China
- Prior art keywords
- address
- breakpoint
- analysis
- information
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明涉及网络通信技术领域,具体涉及一种网络协议自动化逆向分析方法。该网络协议自动化逆向分析方法包括以下步骤:s1.静态通信信息提取:提取C/S端被监视软件通信载入的信息中的关键信息并保存到日志文件;s2.动态协议追踪分析:根据所述关键信息设置断点,通过断点分析,抓取被监视软件收发包函数相关的日志信息,分析C/S端通信软件的网络协议包的构造和解析过程,并将所得结果保存到日志文件;s3.信息分析:分析整理所述日志文件,获得所需的逆向分析结果。本发明通过全自动化的网络协议逆向分析,能够对目标应用进行较为彻底的分析和破解,同时节省了人力和时间,并弥补人工逆向分析的疏忽和不足。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种网络协议自动化逆向分析方法。
背景技术
随着Internet在全球范围内的广泛应用,各国的政治、军事、经济、社会等各方面都越来越离不开计算机网络。然而由于网络安全的脆弱性,黑客在网络上的攻击活动也迅速增长。随着各种网络应用越来越丰富,网络穿透工具、非授权访问、信息窃取、数据破坏、拒绝服务器攻击、传播病毒等网络入侵和破坏手段也越来越先进。黑客往往通过协议漏洞破坏和攻击他人系统窃取信息,利用穿透工具、匿名通信工具传播木马、蠕虫、病毒或黄色、暴力等非法信息。可见网络安全技术正面临着前所未有的挑战。
网络协议分析技术对于网络安全和监管具有很重要的意义。网络协议分析技术通过捕获底层数据包进行全面的分析、诊断,使监控者可以快速了解网络状况。网络协议分析可以为管理者提供故障、安全、性能、网络监控等关键数据,通过这些数据可以获取网络全景信息,建立主动防御机制,为保障网络的可持续运行提供夯实的数据基础,并极大的降低网络管理成本。但是随着网络入侵和破坏手段的提升,网络私有协议和加密协议使得传统网络协议分析技术力不从心。
为了解决这类问题,很多研究借助逆向工程技术解决私有协议和加密协议的网络协议分析。但是由于现有网络协议越来越复杂,对协议与应用软件本身的保护越来越严密,对目标网络协议的逆向工程耗费的时间和人力也越来越多。因此迫切需要一种自动化的逆向工程系统对网络协议进行分析和破解。
发明内容
(一)要解决的技术问题
本发明的目的在于提供一种网络协议自动化逆向分析方法,用于实现对网络协议的逆向工程的自动化。
(二)技术方案
一种网络协议自动化逆向分析方法,包括以下步骤:
s1.静态通信信息提取:
提取C/S端被监视软件通信载入的信息中的关键信息并保存到日志文件;
s2.动态协议追踪分析:
根据所述关键信息设置断点,通过断点分析,抓取被监视软件收发包函数相关的日志信息,分析C/S端通信软件的网络协议包的构造和解析过程,并将所得结果保存到日志文件;
s3.信息分析:
分析整理所述日志文件,获得所需的逆向分析结果。
优选的,步骤s1中的关键信息包括域名和IP地址信息。
优选的,所述步骤s1具体包括:
s101.提取被监视软件的机器码并保存;
s102.以基于文件流的方式读取缓存区;
s103.提取域名和IP地址信息并保存到日志文件。
优选的,所述日志信息包括与收发包函数相关的内存地址、堆栈数据、寄存器数据、套接字值、收发包数据长度和收发包数据内容。
优选的,所述步骤s2具体包括:
s201.提取被监视软件发包函数的内存地址,记录到发包断点地址寄存器中,并根据地址设置发包函数断点,开始监控断点;
s202.遇到断点后断下,判断当前EIP地址与发包函数点地址是否匹配,结果为“是”则结束s2阶段,跳转到s3阶段执行步骤s301,为“否”则执行步骤s203;
s203.记录发包函数的套接字值、发包的数据长度和数据内容并保存至日志文件;
s204.提取收包函数的内存地址,记录到收包断点地址寄存器并根据地址设置收包函数断点,开始监控断点;
s205.遇到断点后断下,判断当前EIP地址与收包函数断点地址是否匹配:结果为“是”则结束s2阶段,跳转到s3阶段执行步骤s301,为“否”则执行步骤s206;
s206.记录收包函数的套接字值、收包的数据长度和数据内容并保存至日志文件;
s207.记录当前网络数据包构造过程的层次和函数调用顺序,保存到日志文件;
s208.设置分析层次,查找调用函数的地址;
s209.判断查找到的调用函数地址是否在结束机器码之前且在预设的分析层次之内,结果为“是”则执行步骤s210,为“否”则执行步骤211;
s210.设置网络数据包解析断点,并查找下一个调用函数地址,跳转至s209;
s211.记录当前跳转的层次、当前函数调用的顺序、当前所有寄存器数据、堆栈数据、EIP地址,并保存到日志文件。
优选的,所述步骤s203具体包括:
套接字值的获取:通过两次查找寄存器后得到记录套接字的内存地址并提取内容;
发包数据长度的获取:通过两次查询得到存储数据量的内存地址并获取内容;
发包数据内容的获取:查找发包在内存中的存储地址并借助上一步获得的数据长度获取内存中的数据内容。
优选的,所述步骤s3具体包括:
s301.提取日志文件,逐行分析内容;
s302.解析日志内容,整理每步骤的日志含义;
s303.整理交互过程;
s304.展示网络协议的协议结构、交互过程、通信信息、流量特征信息。
(三)有益效果
本发明通过全自动化的网络协议逆向分析,能够对目标应用进行较为彻底的分析和破解,同时节省了人力和时间,并弥补人工逆向分析的疏忽和不足。
附图说明
图1是本发明网络协议自动化逆向分析方法的流程图;
图2是图1中静态通信信息提取的流程图;
图3是图1中动态协议追踪的流程图;
图4是图1中日志文件分析的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明的网络协议自动化逆向分析方法,主要分为三个阶段:C/S(Client,软件客户端/Server,服务器端)端程序的通信信息提取、动态协议追踪分析和日志文件分析三个过程,即包括以下步骤:
s1.静态通信信息提取:
提取C/S端被监视软件通信载入的信息中的关键信息并保存到日志文件;
s2.动态协议追踪分析:
根据所述关键信息设置断点,通过断点分析,抓取被监视软件收发包函数相关的日志信息,分析C/S端通信软件的网络协议包的构造和解析过程,并将所得结果保存到日志文件;
s3.信息分析:
分析整理所述日志文件,获得所需的逆向分析结果。
s1.静态通信信息提取的具体步骤包括:
s101.提取被监控软件如通讯软件的机器码并保存;
s102.利用C++中标准文件流方式逐行读取到缓存区;
s103.首先利用状态机原理,逐一匹配需要提取的域名信息特征;然后按照IP地址书写规则检测是否包含IP地址;最后将提取到的信息保存到日志文件。
s2.动态协议追踪分析的具体步骤包括:
s201.利用GetProcAddress函数自动提取发包函数的内存地址,记录到发包断点地址寄存器中,并根据地址设置发包断点,开始监控发包断点;
s202.遇到发包断点后断下,判断当前EIP地址所指与发包断点地址是否匹配,结果为“是”则执行步骤s301,为“否”则执行步骤s203;
s203.记录发包函数的套接字(socket)值、发包的数据长度和数据内容并保存至日志文件;其中:
套接字值的获取:通过两次查找寄存器后得到记录套接字的内存地址并提取内容;
发包数据长度的获取:通过两次查询得到存储数据量(data size)的内存地址并获取内容;
发包数据内容的获取:查找发包在内存中的存储地址并借助上一步获得的数据长度获取内存中的数据内容;
s204.提取收包函数的内存地址,记录到收包断点地址寄存器中并根据地址设置收包断点,开始监控收包断点;
s205.遇到收包断点后断下,判断当前EIP地址与收包断点地址是否匹配:结果为“是”则执行步骤s301,为“否”则执行步骤s206;
s206.记录收包函数的套接字值、收包的数据长度和数据内容,并保存至日志文件;此步骤与步骤s203类似;
s207.记录当前网络数据包构造过程的层次和函数调用顺序,保存到日志文件;
s208.根据需求设置抓取分析的层次,查找调用函数的地址(call地址)并记录;
s209.判断查找到的调用函数地址是否在当前过程结束之前(结束机器码之前),然后判断是否在预设的分析层次之内,结果都为“是”则执行步骤s210,其中一个或都为“否”则执行步骤211;
s210.设置网络数据包解析断点,并查找下一个调用函数地址,跳转至s209;
s211.记录当前跳转的层次,当前函数调用的顺序,当前所有寄存器数据、堆栈数据、EIP地址,并保存到日志文件。
S3.信息分析的步骤具体包括:
s301.提取日志文件,逐行分析内容;
s302.解析日志内容,对于特定标示解析,例如:SDST为Send
Socket,表示在发包函数中的套接字值;整理每步骤的日志含义;
s303.提取2个分析层次的过程分析得到的数据,整理交互过程;
s304.通过结构化框图的形式展示网络协议的协议结构、交互过程、流量特征、通信信息等信息。
以上全部过程通过系统自动化地完成,具备高效、准确的特点。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的保护范畴。
Claims (3)
1.一种网络协议自动化逆向分析方法,其特征在于,包括以下步骤:
s1.静态通信信息提取:
提取C/S端被监视软件通信载入的信息中的关键信息并保存到日志文件;
s2.动态协议追踪分析:
根据所述关键信息设置断点,通过断点分析,抓取被监视软件收发包函数相关的日志信息,分析C/S端通信软件的网络协议包的构造和解析过程,并将所得结果保存到日志文件;
s3.信息分析:
分析整理所述日志文件,获得所需的逆向分析结果;
步骤s1中的关键信息包括域名和IP地址信息;
所述步骤s1具体包括:
s101.提取被监视软件的机器码并保存;
s102.以基于文件流的方式读取缓存区;
s103.提取域名和IP地址信息并保存到日志文件;
所述日志信息包括与收发包函数相关的内存地址、堆栈数据、寄存器数据、套接字值、收发包数据长度和收发包数据内容;
所述步骤s2具体包括:
s201.提取被监视软件发包函数的内存地址,记录到发包断点地址寄存器中,并根据地址设置发包函数断点,开始监控断点;
s202.遇到断点后断下,判断当前EIP地址与发包函数断点地址是否匹配,结果为“是”则结束s2阶段,跳转到s3阶段执行步骤s3,为“否”则执行步骤s203;
s203.记录发包函数的套接字值、发包的数据长度和数据内容并保存至日志文件;
s204.提取收包函数的内存地址,记录到收包断点地址寄存器并根据地址设置收包函数断点,开始监控断点;
s205.遇到断点后断下,判断当前EIP地址与收包函数断点地址是否匹配:结果为“是”则结束s2阶段,跳转到s3阶段执行步骤s3,为“否”则执行步骤s206;
s206.记录收包函数的套接字值、收包的数据长度和数据内容并保存至日志文件;
s207.记录当前网络数据包构造过程的层次和函数调用顺序,保存到日志文件;
s208.设置分析层次,查找调用函数的地址;
s209.判断查找到的调用函数地址是否在结束机器码之前且在预设的分析层次之内,结果为“是”则执行步骤s210,为“否”则执行步骤211;
s210.设置网络数据包解析断点,并查找下一个调用函数地址,跳转至s209;
s211.记录当前跳转的层次、当前函数调用的顺序、当前所有寄存器数据、堆栈数据、EIP地址,并保存到日志文件。
2.根据权利要求1所述的网络协议自动化逆向分析方法,其特征在于,所述步骤s203具体包括:
套接字值的获取:通过两次查找寄存器后得到记录套接字的内存地址并提取内容;
发包数据长度的获取:通过两次查询得到存储数据量的内存地址并获取内容;
发包数据内容的获取:查找发包在内存中的存储地址并借助上一步获得的数据长度获取内存中的数据内容。
3.根据权利要求1或2所述的网络协议自动化逆向分析方法,其特征在于,所述步骤s3具体包括:
s301.提取日志文件,逐行分析内容;
s302.解析日志内容,整理每步骤的日志含义;
s303.整理交互过程;
s304.展示网络协议的协议结构、交互过程、通信信息、流量特征信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210375831.8A CN103716284B (zh) | 2012-09-29 | 2012-09-29 | 网络协议自动化逆向分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210375831.8A CN103716284B (zh) | 2012-09-29 | 2012-09-29 | 网络协议自动化逆向分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103716284A CN103716284A (zh) | 2014-04-09 |
CN103716284B true CN103716284B (zh) | 2016-12-21 |
Family
ID=50408872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210375831.8A Active CN103716284B (zh) | 2012-09-29 | 2012-09-29 | 网络协议自动化逆向分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103716284B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016084076A1 (en) * | 2014-11-25 | 2016-06-02 | enSilo Ltd. | Systems and methods for malicious code detection accuracy assurance |
CN114020278A (zh) * | 2020-07-19 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035111A (zh) * | 2007-04-13 | 2007-09-12 | 北京启明星辰信息技术有限公司 | 一种智能协议解析方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070253474A1 (en) * | 2006-04-27 | 2007-11-01 | Finisar Corporation | Generating eye-diagrams and network protocol analysis of a data signal |
-
2012
- 2012-09-29 CN CN201210375831.8A patent/CN103716284B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035111A (zh) * | 2007-04-13 | 2007-09-12 | 北京启明星辰信息技术有限公司 | 一种智能协议解析方法及装置 |
Non-Patent Citations (3)
Title |
---|
Automatic Network Protocol Automaton Extraction;Ming-Ming Xiao et al.;《2009 Third International Conference on Network and System Security》;20091031;全文 * |
HMC: A Novel Mechanism for Identifying Encrypted P2P Thunder Traffic;Chenglong Li et al.;《Global Telecommunication Conference (GLOBECOM 2010)》;20101231;全文 * |
融合自动化逆向和聚类分析的协议识别方法;李城龙;《计算机科学与探索》;20120531(第05(2012)期);正文第3.2节,第4.1-4.2节,图3,图4 * |
Also Published As
Publication number | Publication date |
---|---|
CN103716284A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9264441B2 (en) | System and method for securing a network from zero-day vulnerability exploits | |
Zaman et al. | Malware detection in Android by network traffic analysis | |
US10516671B2 (en) | Black list generating device, black list generating system, method of generating black list, and program of generating black list | |
EP3232359B1 (en) | Identification device, identification method, and identification program | |
CN111988339B (zh) | 一种基于dikw模型的网络攻击路径发现、提取和关联的方法 | |
CN110505235B (zh) | 一种绕过云waf的恶意请求的检测系统及方法 | |
CN104363240A (zh) | 基于信息流行为合法性检测的未知威胁的综合检测方法 | |
CN111835777B (zh) | 一种异常流量检测方法、装置、设备及介质 | |
CN107145779B (zh) | 一种离线恶意软件日志的识别方法和装置 | |
CN107612924A (zh) | 基于无线网络入侵的攻击者定位方法及装置 | |
CN107579997A (zh) | 无线网络入侵检测系统 | |
CN103746992A (zh) | 基于逆向的入侵检测系统及其方法 | |
CN110958231A (zh) | 基于互联网的工控安全事件监测平台及其方法 | |
US10142359B1 (en) | System and method for identifying security entities in a computing environment | |
JP5752642B2 (ja) | 監視装置および監視方法 | |
CN107666464B (zh) | 一种信息处理方法及服务器 | |
CN103716284B (zh) | 网络协议自动化逆向分析方法 | |
CN104486320A (zh) | 基于蜜网技术的内网敏感信息泄露取证系统及方法 | |
JP5656266B2 (ja) | ブラックリスト抽出装置、抽出方法および抽出プログラム | |
CN106682493B (zh) | 一种防止进程被恶意结束的方法、装置及电子设备 | |
CN105262730A (zh) | 基于企业域名安全的监控方法及装置 | |
US10108797B2 (en) | Monitoring device, monitoring method and monitoring program | |
CN112738002A (zh) | 一种基于虚实结合的搭建工控蜜网的技术 | |
CN110460620B (zh) | 网站防御方法、装置、设备及存储介质 | |
CN105049273A (zh) | 一种模拟网络活动检测木马的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |