分析abex-crackme#1

1、分析环境

  • 操作系统:Win10 1809 x64
  • 调试工具:Ollydbg

2、运行程序,了解大致的运行过程

3、运行Ollydbg调试程序

  • 由于该程序是由汇编所写,可以直接看到main()函数

  • 使用F8运行代码,并分析
    • 其中GetDriveTypeA是获取驱动器类型的API,一般返回3

3.1、分析结果简述

  • ESI初始值为0,经过3次加法运算得到结果为3
  • GetDriveTypeA获得的结果为3,经过2次减法运算得到结果为1
  • 由上述结果得知,GetDriveTypeA经过2次减法运算得到结果为3才能跳转到正确的弹窗,即GetDriveTypeA的返回值为5

  • 通过查询MSDN确定GetDriveTypeA的返回值为5的驱动器类型为CD-ROM

  • 结合弹窗的语句与MSDN可得出如下结论

结论:该程序是判断C盘驱动器是否为CD-ROM

4、破解

4.1、方法一

直接将程序读取的驱动器号改成操作系统的CD-ROM驱动器号。

例如:操作系统CD-ROM的驱动器号为d,直接修改了读取的驱动器号为d,相应的ASCII码为64,更改完毕之后运行程序。

4.2、方法二

修改汇编语句,将条件跳转改成无条件跳转

优点:如果打上补丁,该程序在任何Windows主机上运行都会弹出正确的弹窗

5、运行结果

6、与书中不同之处

  • Win7和Win10环境下,MessageBoxA并没有将ESI置为FFFFFFFF。
 

转载于:https://www.cnblogs.com/PhantomW/p/10669806.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值