160个CrackMe之004

CKme

Delphi,是Windows平台下Object Pascal语言集成开发环境,支持应用程序快速开发。Delphi Decompiler 是Delphi的反编译工具

第一步

查壳,查信息

在这里插入图片描述

第二步

运行程序 :没有按钮,只能两个文本框,一个用户名,一个注册码,作者提示:如果注册成功,程序中会出现"朱茵"小姐的一幅靓照。

第三步

用DeDe反编译看一下 Events(事件) Controls(控件)

在这里插入图片描述上图中我们发现了5个事件,第一个窗体创建与输入的字符应该无关,而后面的键盘按键放下、面板单击和面板双击、还有检查密码,应该就和用户名/注册码的获取和检测有关了,还可以看到“注册成功”的代码段就是面板单击事件中。通过测试发现,KeyUp事件是为了获取输入的用户名,chkcode事件是为了获取输入的注册码并检测我们对这个四个事件下断点,当输入注册码时断在了此处:
在这里插入图片描述
程序调用的过程很少,有用的只有Edit2的事件(chkcode)和panel1的两个事件(单击事件和双击事件。)

第四步

打开OD,智能搜索发现了“注册成功字符串”,向上看一看,发现了一个关键跳转,这个跳转会跳过注册成功的,所以这里不能跳,我们看到这里的关键跳的比较条件是[esi+0x0c]和 0x85进行比较
在这里插入图片描述

第五步

看一下chkcode事件的代码,从chkcode事件的代码中可以看到,如果输入的序列号正确,则往地址 [esi+0x30c] 中写入 0x3E 。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGNTlLnS-1611127219781)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210120151233148.png)]

第六步

按DeDe中的反编译事件地址,先对Edit2的事件(chkcode)代码下断点,跟踪后,代码有一个跳转为关键跳转。将地址 [esi+0x3C] 与 0x3E比较,如果相等则写入 0x85

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lMQ1lCKE-1611127219781)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210120151645042.png)]

第七步

看看单击面板,也就是最一开始的“注册成功”,这样我们来理一理思路。

重点:每次输入用户名的时候,事件KeyUp(00457E4C)都会获取用户输入的字符,并保存起来,并获取输入的用户名的长度保存起来,每次输入序列号的时候,事件chkcode(0045C40)都会获取输入的字符并保存起来,在生成正确的字符串(正确的序列号时代码中出现字符串的拼接)并与之对比,如果正确,就向地址[esi+0x3C] 中写入 0x3E。在面板双击事件(0045E7C)中会检测地址[esi+0x3C] 的值是否为0x3E,是的话就向地址[esi+0x3C] 写入0x85 ,在面板单击事件(00457FB8)中检测地址[esi+0x3C] 的值是否为0x85是的话顺序执行到注册成功处,否则跳过注册成功。

结果如图 用户名:(啥都行)
注册码:黑头Sun Bird11dseloffc-012-OK+用户名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FK28DeYd-1611127537050)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210120152440291.png)]
希望大家可以学到一些东西!

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Version 1.7 build 929 (24.04.2014) * Fixed critical errors in the DCUDumper Version 1.6 build 911 (23.04.2014) * Added decopilation DCU for Delphi XE-X5 Version 1.5 build 888 (2012-07-24) * Fixed a critical errors in dumping of programs compiled in Delphi 2010,XE ?XE2 * Fixed minor bugs in the window "Select Process" Version 1.4 build 808 (2012-07-19) * Fixed a critical error in getting the process list in the "Select Process" window + Added detection of programs compiled with Delphi XE2 Version 1.3 build 777 (2012-07-18) * This version for test only + Partial support Delphi XE and Delphi XE2 + Fully supported DCU decompiling for Delphi XE and Delphi XE2 + Full refactoring the program interface - Removed languages support, now only English * Fixed many bugs in the "Select Process" window + Added debug privilege * Fixed other many bugs Version 1.1 build 211 (2010-03-26) * Fixed the definition of programs compiled in Delphi 7 + Added ability to drag files to the main window (drag & drop) Version 1.1 build 195 (2010-03-04) + Updated the DSF Editor * Fixed loss of DSF editor when parsing + In DSF editor adds support for Delphi 2007, 2009, 2010 (so far works only for parsing. Bpl) * Optimized code for rendering assembly code * Full reconstruction project to accelerate work on a batch of assemblies and the subsequent testing Version 1.1 build 191 + Updated the PE Editor + Improved the window "Options" + Added ability to change fonts: - In the DFM Editor - Lists ListView - In disassembler * Reduced the delay timer on the window screen saver Version 1.1 build 187 * Fixed a PE editor + Added saving of projects Delphi 2007 + Added saving of projects Delphi 2009 + Added saving of projects Delphi 2010 Version 1.1 build 180 + The project status has changed to "beta" Version 1.1 build 177 + Rewritten engine decompilation DCU + Rewrote the analysis engine EXE + New format DOI and DSF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹏华李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值