NetMeter逆向分析破解过程.doc.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NetMeter逆向分析破解过程.doc.doc

【文章作者】:?罗燕华 【软件名称】:?Net Meter V3.1 Build 249汉化版 【软件说明】:一个相当直观的网络流量查看器,并且是绿色软件,就一个EXE文件!? 【下载地址】:?来源于网络,具体地址已无从参考,应该有很多地方都可以下载 【编写语言】:?VC6.0+MFC静态链接,UNICODE编译 【使用工具】:?OD ?IDA PRO Depends STUD_PE VC9 ResHacker 【文章声明】:?作为一个逆向的实战教程,讲解OD与IDA相结合的逆向分析基础,并讲述了如何使用OD进行文件补丁的过程 ===================================================================== 我们拿到程序后需要分析的几个方面: 程序本身的操作界面有何特征,是否有什么消息提示之类的信息(从操作上进行了解) 系何种开发工具所开发,并且我们最好能够对这种开发工具有一定了解 程序本身是ANSI或UNICODE程序,或是两者都有?便于之后我们对API下??点 是否有加壳处理?如果有加壳,具体是什么壳,是否有现成的工具可进行自动脱壳,否则需要手动分析脱壳。(现在我也不会手动脱壳,要学习研究的地方真是太多了) 【详细过程】: 打开程序进行简单操作,查看其注册界面相关元素,具体界面如下图所示。 如果直接点确定按钮则弹出下面提示: 随便输入一个用户名和注册码后会有不同的提示: 界面本身的相关信息了解完毕,下面用工具对其进行简单分析。 1.用STUD_PE或打开文件,发现没有进行加壳压缩,并且是采用VC6开发,这种程序搞起来是最顺手的了。 2.再用VC6自带的Depends工具打开,发现程序中并没有链接VC的任何运行库(包括msvcrt.dll),故分析为这个程序应该是采用的静态编译,这将和动态链接MFC库的程序会有一些区别,比如用IDA分析的话UpdateData之类的函数调用应该是直接看不到的了。 3.最后用VC9(也可以用任何一款资源编辑工具如ResHacker)打开文件查看其资源,打开后我们以看到各式的资源。在这里我们关心的是对话框资源,逐个打开预览,发现ID为211的对话框,就是我们关注的注册对话框界面。同时记录下用户名和注册码编辑框对应的资源ID,1177与1144,以备后用。 这里由于已经得知是VC所开发,所以我们就投机取巧一下。 打开IDA(记得先把F5插件Hex-Ray装上),打开文件进行分析,查看指示器等分析完毕后,按CTRL+F5保存整个文件的C逆向伪码。用VC打开伪码文件,搜索1177,我们会定位到如下函数中: 这里我们为什么要这样进行搜索? 对于Windows对话框来说,要获取其界面字符串必须要通过传递资源ID号并调用系统API来实现,所以我们通过查找用户名或序列号的资源ID确定大致范围。(但这个方法仅适用于VC及汇编程序,DELPHI的不适合,DELPHI的需要用DEDE来查看) 注意查看sub_409970这个函数,我们可以从中分析得到如下信息: 1.__thiscall调用方式,其参数中传递了一个this指针,说明采用C++开发而非纯C 2.DDX_Text函数调用,很显然的MFC的DDX系列函数,进一步说明程序采用MFC开发,这个信息很关键。并且以MFC开发的框架特性还可得到的另外一个信息就是在此函数的前面不远就应该是构造函数(回想回想平常我们用VC进行开发时,由框架生成的代码结构顺序),并而确定按钮的响应则应该在此之后不远处。 按照这个思路分析,我们可以判断出这个对话框的一些信息: 对话框构造函数 对话框的DDX函数 对话框消息映射表获取函数 对话框初始化函数 通过比较,下面这个sub_409A40函数估摸就是我们所要找的注册按钮的响应函数了,猜测并不是毫无道理的乱猜: 主要基于以下几个方面的考虑: 通常一个类的函数都在一起,编译后也应该在代码段中是挨在一起的。 在它后面的函数sub_409B20中存在对话框构造函数,显然跟我们之前的操作是不符的。 函数体中有对this+92、this+96的操作,就是刚才的用户名注册码 函数中出现了“Net Meter”字符串的调用,与上面的消息框标题正好对应 在OD中通过查看数据区(注意需要将显示方式设置为HEX、UNICODE查看方式),定位447F00、447DB4、447FC4,可以看到我们之前操作过程中弹出的几个消息框中的文本,分析到这里基本就没有什么疑问可以确定这就是我们要找的地方了。 下图是447DB4、447F00、447FC4三个地址字符串的内容(UNICODE格式) 以上的结论只是我们根据VC开发环境的特征所进行的推断,下面打开OD进行动态分析。 小技巧:我们可以打开OD-》

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档