逆向--分析abexcm1-voiees.exe以及wsample01a.exe

一、实验目的

通过实验进一步熟悉调试器与汇编代码,加深对汇编代码和调试技术的认识。

二、实验软硬件要求

软件工具:OllyDbg

操作系统:windows 7

三、实验内容(实验步骤、测试数据等)

Ⅰ、基础练习

打开示例程序 01\06\bin\abex crackme#1.exe程序,该程序内部有两个选择显示的消息框,原本是显示其中第一个消息框,修改程序执行逻辑,使程序显示第二个消息框。

Ⅱ、扩展练习

打开wsample01a.exe程序

1、分析程序逻辑

运行程序显示“Hello!Windows”消息框,程序在什么情况下会显示另一个消息框(称为“2号消息框”),该消息框的内容是什么?

2、给程序打上如下补丁,并分别保存:

(1)使程序固定显示“2号消息框”,无需输入特定参数

(2)更改“2号消息框”的显示条件为:输入参数“2023”,消息内容也更改为:Hello!2023

四、实验过程

1、基础练习

①打开abex crackme#1.exe程序,两个消息框的内容如下

②、使用OD进行分析,进入就可以看到消息框的弹出内容,当然也可以使用字符串查找,字符串查找具体操作可以看“Hello World!”那篇文章。

 ③在图中可以看出有三钟输出内容,显然我们要通过分析使程序输出“OK,I reall think that your HD is a CD-ROM!:p”

 ④我们可以大胆猜测输出内容是经过比较后选择对应的输出内容,接下来的思路就是寻找CMP,一步一步调试,当调试到图中所示位置时,弹出第一个消息框,这里发现并没有弹出第二个消息框,显然到目前为止还没有进行比较。

⑤执行到下图位置时,发现了CMP和JE,JE是条件跳转,基本可以肯定这里的CMP就是影响跳转的指令。JE的跳转条件是看寄存器ZF的值,若ZF=1,跳转。而ZF的值由计算结果决定,运算结果等于0,ZF=1,反之为0。CMP的运算规则是相同等于0,不同等于1.

 ⑥根据上述逻辑,光标选中图中指令,按空格修改汇编指令,继续按f8调试发现输出内容变为“OK,I really think that your HD is a CD-ROM!:p”

 

2、扩展内容

(1)①运行程序显示“Hello! Windows”,使用OD分析。因为不知道第二种消息框输出内容是什么,先考虑查看字符串获取信息。

 

②经过对比,得出第二种输出内容为“Hello! 2012”。

 ③双击跳转

 ④分析前面的内容,发现TEST指令和JNZ指令,JNZ跳转的条件是ZF=0,TEST则是判断两个参数是否相同,相同ZF=0。显然图中“TEST EAX,EAX”得到的结果是ZF=0,下一条指令JNZ跳转到00401035,也就是“Hello! Windows”。

⑤这里就有两种修改方法实现输出内容为“Hello! 2012”.

第一种,修改“TEST EAX,EAX”,让两个参数不相同即可。

第二种,修改“JNZ SHORT wasmple0.00401035”为“JMP SHORT 0040101D”

 

 (2)①设置参数2023,输入完参数会弹出一个消息框,意思是设置完参数需要重启一下,Ctrl+f2重启

 ②在Hex Dump 跳转到00402128,修改字符串为“Hello!2023”,跳转到00402104,修改“2012”为“2023”,修改完需要保存(要保存两次,在第一次保存的基础上保存第二次)并重新设置参数。

 

③这里讲一下思路:这里可以设置参数,并且设置的参数出现在了输出消息框,所以在修改之前进行了尝试,把参数设置为2012,那么在原程序(默认出现hello windows)会不会出现“Hello!2012”?答案是会出现,那么这个程序的逻辑就是输入的参数与程序存储的“2012”进行比较,若相同,则输出“Hello!2012”,若不同,就输出“Hello!windows”,所以需要修改两个地方,第一是负责比较输入参数的“ 2012 ”为“ 2023 ”,第二个则是修改消息框的输出内容。 

④运行结果如下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值