使用OllyDbg分析abex crackme#1程序

一、实验目的

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

二、实验软硬件要求

软件工具:OllyDbg

操作系统:windows 7

三、实验预习

逆向工程教材第6章

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

Ⅰ、基础练习

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

Ⅱ、扩展练习

打开wsample01a.exe程序

1、分析程序逻辑

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

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

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

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

本次实验需提交的内容:

1、修改后的exe程序

2、实验报告。

五、实验过程

Ⅰ、基础练习

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

1.将401026光标处的汇编指令JE SHORT 0040103D更改为JMP SHORT 0040103D,即将条件分支语句(JE)替换为无条件跳转语句(JMP)

2.选中修改后的指令,右键-Copy to exectable-Selection

3.在弹出的Hex窗口右键选择Save file 菜单保存

3.运行保存的文件,得到目标结果

  

  

Ⅱ、扩展练习

打开wsample01a.exe程序

1、分析程序逻辑

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

答:程序在输入参数“2012”时会显示另一个消息,该消息框的内容是“Hello!2012”

1.打开程序后得到,另一文本内容是“Hello!2012”

2.也可以右键搜索所有引用的文本字符串,得到结果

3.输入参数2012,得到另一消息框

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

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

1.根据代码分析,可将”JNZ SHORT 00401035”中的JNZ 改为JZ或者JE

2.修改后

3.保存

4.验证,得到目标结果

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

1.打开(1)中修改保存的文件,选中数据窗口,按CTRL+G键,输入参数“2012”所在的目标地址402104

2.找到参数“2012”所在的十六进制,按CTRL+E键,修改参数“2012”为“2023”,同样,修改消息内容“Hello!2012”为“Hello!2023”

3.修改后为

4.保存修改后的文件,运行得到修改后的消息内容

选中更改后的所有字符串—右键点击”Copy to executable”—在弹出的Hex窗口右键选择”Save file”—修改文件名保存,然后运行保存的文件验验证,或用命令验证

  

5.输入参数验证

Debug-Arguments-输入2023-ok-确定-Debug-run,得到结果,验证成功

  

   

  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值