调试学习【10】

25 篇文章 0 订阅

逆向后的Delphi特色


破解练习
演示程序:Teksched

在这里插入图片描述
查看PEiD可以查到这是一个Delphi程序。
我们之间载入它:
那么根据以往的经验,首先的需要搜索字符串:
在这里插入图片描述
看到一个关键的字符串,直接跟进。
在这里插入图片描述
我们现在想的是:如何操作才能是程序运行到这个位置。
然而经过观察,没有哪个指令是可以直接跳转到这个位置的。
向上看,可以观察到Delphi程序的一个特色:
在这里插入图片描述
利用PUSH和RETN来做到跳转的目的
相当于jmp 004A5841。
现在来从上往下看代码
函数入口处:在这里插入图片描述
各种验证以及跳转
在这里插入图片描述
我们最终的目的是使程序来到以及注册的那个字符串的位置。
为此设置断点,因为上面是提示输入框所以判断点应该在下面:
在这里插入图片描述

载入程序,F9,填上注册信息看程序能否断下来。
如果断下来就从这里开始往下看
在这里插入图片描述
断下来之后F8一步一步调试
在这里插入图片描述

来到这个位置时,遇到了阻碍,直接跳转到了动态链接库,所以直接nop掉之后继续调试
在这里插入图片描述
je如果跳转则越过了第一个障碍,如果不跳转则下面的jnz和jmp都会指引我们注册失败,所以在这里应该无条件跳转。
在这里插入图片描述
jbe同理。
在这里插入图片描述
跟踪这个jnz发现如果跳转也会导致注册失败,因此不能够跳转。
最终
在这里插入图片描述
注册成功。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值