逆向游乐园第一关

预备知识

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值