在大连做安天技术论坛 CrackMe1

第一题还是很简单的,是一个会弹出窗口的验证码,内容也没有经过加密,程序界面是这样的。


拖进ollDbg里面开始跑,找到关键点的方法很多,

(1)可以直接使用Ultra String Reference

(2)在命令栏中输入bp MessageBoxA 这样程序会断在MessageBox函数的第一行,在使用Alt+F9返回程序领空,往回查找关键转跳

(3)或者断在MessageBoxA,程序内可以使用Alt+K查看堆栈调用,在调用函数偏移处下断也可


这里说下,因为PE头的ImageBase一般是4000000,所以偏移量为40xxxx的一般是程序领空,即程序的代码段。

偏移量为77xxxx的特别大的,为系统领空。

ImageBase是当加载进内存时镜像的第1个字节的首选地址。

它必须是64K的倍数。DLL默认是10000000H。Windows CE 的EXE默认是00010000H。Windows 系列的EXE默认是00400000H。



关键语句如下


修改方法有很多,

(1)可以吧两个关键转跳jnz改成je,但要注意为AfxMessageBoxA压入参数的时候,前两个参数传入都为eax,这里很阴险

在比较相等时eax为0,压入参数正确执行,但是只修改转跳语句,并不影响eax的值,MessageBoxA的第一个参数应该是父窗口句柄,

传入毫无意义的eax值,会出错不弹窗。

(2)暴力把所有判断比较都删掉。

(3)把转跳改成,无条件转跳  jmp 00401614


总之改的很随意,最后效果是这样。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值