tuts4you-lena151-Crackme-tutorial12

一、前言

(一)、本次要破解程序是Techscheduler.exe,这是个注册过程有双重验证的程序,其程序主界面和注册窗口如下图

(二)工具:ollydbg

二、破解过程

(一)、在ollydbg中载入程序,按F9让程序跑起来,之后在程序中搜索unregisteration的相关字符串,如下图

(二)、点击相关字符串,到达以下区域,通过对以下区域的分析,发现成功注册区域,不是使用call函数直接跳转过来的,而是结合了push和ret指令来实现的

通过查找引用我们也能得出这个结论

(三)、继续往上滚动,对整个注册程序进行大致的了解:

也是一个提示注册失败的区域

 

检查是否输入

ret语句之下应该是检查注册程序开始的地方

 

(四)、分别在检查完是否输入的程序区域下断点,然后点击注册窗口,随便输入一些信息,点击注册。

程序最后会停在断点处

(五)在一个距离此断点最近的下一个jmp跳转处下断点

  执行程序,会发现没有跳转到此断点,并且程序弹窗,这应该是程序在检测错误的输入,只能有整型的输入。

(六)ctrl+f2 重启程序,程序再次停止在0x004A53E8地址处,在此处F8单步走,又出现了上面的弹窗,此时ollydbg反汇编窗口位于ntdll.dll的代码里面,此时在键盘上按减号,程序会自动回到用户代码区域,我们可以看到是004A5461这个跳转导致了弹窗。

我们将他nop掉,并设置断点。

(七)、重启程序,程序会自动停在test ax,ax这个区域,此时没有弹窗出现了

(八)继续按F8步进,此时需要修改语句,跳转给nop掉,否则会导致错误验证码的弹窗。

(九)、继续跳转,会进入一个循环区域

再继续跳转,到达如下区域,此时跳转步会执行,

因此我们修改其为jmp,跳过弹窗区域。

(十)继续跳转,程序到达以下跳转,此时跳转会执行

但往下拖动,会发现,注册成功的提示包含在这个程序中的,

因此修改这个跳转,让它不能执行。

我在x32dbg中,遇到了内存访问失败,但打好了

补丁程序能正常运行。

(十一)、最后任意输入个值,程序注册成功。

三、总结

(一)、当跳转到系统dll的时候,可以通过按减号返回用户代码,查看是谁跳转到用户的代码的。

(二)、push addr+ret=call addr,jmp addr

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值