目录
预备知识
1.关于调试器和反编译工具简介
OLLYDBG是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级32位调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。
IDA PRO简称IDA(Interactive Disassembler),是一个世界顶级的交互式反汇编工具,有两种可用版本。标准版(Standard)支持二十多种处理器。高级版(Advanced)支持50多种处理器。
2.PE查壳工具
PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。
ExEinfo PE是一款免费的Win32可执行程序检查器,它可以检查程序的打包方式,exe保护等,可以帮助开发人员对程序进行编译。
VB Decompiler pro是一个用来反编译VB编写的程序的工具。VB Decompiler反编译成功后,能够修改VB窗体的属性(例如汉化),查看函数过程等,是一款VB反编译利器!
3.汇编指令

4.寄存器
EAX是“累加器”(accumulator),它是很多加法乘法指令的缺省寄存器。
EBX是“基地址”(base)寄存器,在内存寻址时存放基地址。
ECX是计数器(counter),是重复(REP)前缀指令和LOOP指令的内定计数器。
EDX则总是被用来放整数除法产生的余数。
ESI/EDI分别叫做“源/目标索引寄存器”(source/destination index),因为在很多字符串操作指令中,DS:ESI指向源串,而ES:EDI指向目标串。
EBP是“基址指针”(BASE POINTER),它最经常被用作高级语言函数调用的“框架指针”(frame pointer)。
5.VB相关函数
a)__vbastrcomp 比较两个字符串,类似于Windows API lstrcmp;
b)__vbastrcmp 比较两个字符串,类似于Window's API lstrcmp;
c)__vbar8Str 将一个字符串转为双精度单精度浮点型(8个字节)的数值形式。
6.Little-endian(小端序)
数据的高位字节存放在地址的高端,低位字节存放在地址低端。
实验目的
通过该实验了解调试工具和反编译工具的使用方法,能够通过分析样本中的详细信息,进行程序的爆破或者算法的还原突破程序的限制。
实验环境

实验机:Windows XP SP3,IP地址:随机分配
辅助工具:Ollydbg、PEiD 0.95、ExeinfoPE、IDA Pro v6.8、VB Decompiler pro
破解程序:Acid burn、Afkayas1、Afkayas2。(位于桌面CrackMe文件夹)
实验步骤一
首先利用查壳工具对要分析的CrackMe进行PE基本信息的查询,然后利用调试器进行整个程序执行过程的跟踪与分析。必要时使用IDA Pro进行静态分析算法相配合。
本实验需要三个步骤:
1.对CrackMe 1(Acid burn)进行分析爆破或者算法回溯,去除Nag窗口,找到Name→序列号的算法,以及固定序列号的查找。
2.对CrackMe 2(Afkayas1)进行分析爆破或者算法回溯,以达到程序的破解或者Name→序列号的运算。
3.对CrackMe 3(Afkayas2)进行分析爆破或者算法回溯,该CrackMe是CrackMe2的加强版,出现了异常,和非MessageBox窗口,我们对其使用其他技巧进行突破以及Name→序列号的分析。
任务描述:首先对该程序侦壳分析,然后进行爆破或者算法回溯。
1.去除程序弹窗
使用ExeinfoPE对其查壳分析,防止带有保护壳,干扰我们逆向分析。

无壳,Image is 32bit executable显示Delphi编写,Lamer Info提示没有壳子,用Ollydbg调试吧。那么我们可以运行一下看看,有没有什么利于逆向分析的关键点,通过他找到爆破位置。

是MessageBox弹窗拖入OD进行API定位。

命令行bp MessageBoxA,然后F9运行。(bp:breakpoint断点命令,给该函数头部写int 3,使程序运行到该处,发生异常通知调试器)
断在了user32.dll中。

回溯堆栈:

找到调用MessageBoxA的程序函数地址0042A1AE。
因为每次执行call之后,他的下一个eip会被压入栈中,我们找一下是谁调用的它。

0042A1A2 |. 50 push eax ; /Style = MB_OK|60|300|MB_TASKMODAL|1FF0880
0042A1A3 |. 57 push edi ; |Title = "U嬱兡舾堻B"
0042A1A4 |. 56 push esi ; |Text = "d稝"
0042A1A5 |. 8B43 24 mov eax,dword ptr ds:[ebx+0x24] ; |
0042A1A8 |. 50 push eax ; |hOwner = 01FF2BE0
0

最低0.47元/天 解锁文章
4654

被折叠的 条评论
为什么被折叠?



