吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2541|回复: 9
收起左侧

[原创] 练习笔记之160Crackme-020

[复制链接]
xiaoyu2032 发表于 2022-6-2 12:23
本帖最后由 xiaoyu2032 于 2022-6-2 12:26 编辑

160CM-020

  首先,拖入PE看一下。妈呀
10.png
  妈呀~~居然有壳。对于只用过UPX Unpacker一键脱壳的菜鸟选手来说,表示有点方……

1. 脱壳

  幸好最近逛论坛的时候看到好像有一偏关于脱壳的文章,名字叫“关于压缩壳脱壳步骤详解!看这一篇足够。”(https://www.52pojie.cn/thread-1641368-1-1.html),赶紧翻出来看看。想想宝典在手,终于可以手撕压缩壳了,内心忍不住有点小激动ing。
  看看方法一:单步跟踪法,关键是我也不知道OEP长啥样啊,跟过去见到了也不认识啊,先pass了。
  方法二:ESP定律法,这个看起来好像比较靠谱的样子。按文章描述的方法“pushad开头,F8一次以后,8个寄存器只有ESP是红色时候,就可以使用该定律。右键ESP 选择数据窗口跟随,数据窗口下硬件访问断点,F9运行,此时已经接近OEP。”
  操作方法其实已经很简洁明了了,但是对于第一次手撕压缩壳的初哥来说,其实还是会碰到不少问题。先一步一步操作一下试试:

  1. OD载入程序后,开头不是pushad,也没关系,按一下F8,注意观察OD右上角的寄存器中只有ESP的值是红色,如果还有其他是红色,继续F8。
  2. 在ESP地址位置,右键,选中[数据窗口中跟随]。
    01.png
  3. 在数据区选中刚才跳转到的地址,右键选择[断点]→[硬件访问]→[Word]。
    02.png
  4. 按一下F9运行程序,直接来到了大跳转处。再按下F8,就到达程序OEP。这里的判断关键是大跳转,要跳的比较远的才算,至于F8以后见到的OEP长啥样,说实话好像啥样的都有。
    03.png
  5. 在OD中选中[插件]→[OllyDump]→[脱壳在当前调试进程],进入脱壳界面,可以看到“入口地址修正值”为进入OEP后的地址(注意不要在大跳转的地址位置脱壳),直接点脱壳就完成了Dump。
    04.png
  6. 有些程序脱壳后可能无法正常运行,这就需要进行IAT修复了。打开Import REConstructor,在进程列表中选中需要修复程序的原始程序(运行一下脱壳前的程序,不要选OD打开的那个进程),先在OEP位置填入地址,这个地址是相对地址,要用OD中的OEP地址减去偏移地址400000。然后点击“autosearch”按钮,地址正确的话会显示找到了,然后点击“Get Imports”按钮,会在左边的列表中列出已经找到的信息,正常的话应该是全部YES的,如果有不是YES的,还要手动修复(没碰到过,还不会手动修复)。最后点击“Fix Dump”,在弹出的选择框中选中之前脱壳出来的程序,确定就可以了。
    11.png
    PS:OD中设置的硬件断点在Ctrl+F2后不会自动清除,需要在菜单[调试]→[硬件断点],去手动删除已设置的断点。

2. 爆破

  运行脱壳后的程序,可以发现这个程序是要求输入序列号,然后点击按钮后会算出一个注册码,要求算出的注册码和界面上显示的一致。由于PE分析显示这是一个Delphi程序,因此IDR用上再说。
12.png
  IDR分析后,我们找到按钮响应事件的地址是44A2E8,在下面可以找到关键跳转地址44A387,将代码nop掉就爆破完成了。
08.png

3. 算法分析

  因为IDR能够识别出delphi库函数,因此我们将IDA生成的伪代码里面的函数都改一下名字,就能得到下面的代码了。
07.png
  从代码中可以看出关键比较是StrCmp函数,V14看不来源,IntToHex函数的第二个参数也看不懂,这个需要查一下IntToHex函数的参数定义,第二个参数是指定转换后16进制字符串的最小长度。OD中跟踪一下就可以确定第二个参数是6,V14就是IntToHex生成的字符串。V7是转64为整型后的低32位,其实和V6是一样,其实整个算法就是输入的数字乘3后转成16进制字符串,然后与界面上显示的字符串比较。因此序列好就是界面显示的16进制数字除3对应的十进制数字。计算器算一下后输入,验证成功。
09.png

4. 总结

  看了脱壳文章里面介绍的方法,尝试了一下,发现只会ESP定律这一招,其他的照葫芦画瓢都画不出来,下一篇打算先琢磨一下手撕压缩壳手法,尽量写一篇菜鸟也能看懂,也能照着完成的经验帖,避免一看就会,一试就废的囧境。

免费评分

参与人数 5吾爱币 +9 热心值 +4 收起 理由
香芋 + 1 + 1 用心讨论,共获提升!
LM14233 + 1 谢谢@Thanks!
bingbingbd + 1 + 1 我很赞同!
homehome + 1 + 1 我很赞同!
Hmily + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jzghcj 发表于 2022-6-2 13:15
先标记一下,有时间细细研读,对破解感兴趣,无奈时间有限!
AIRTIM 发表于 2022-6-2 14:05
戰龍在野 发表于 2022-6-2 19:40
jianga13458 发表于 2022-6-2 19:41
谢谢分享!
bingbingbd 发表于 2022-6-2 21:00
确实是很容易学习的清晰步骤
ych13846701169 发表于 2022-6-2 22:47
学得费劲,谢了
cwzy8 发表于 2022-6-3 01:05
MARK,  收藏了,有时间分析分析
Xucheng2 发表于 2022-6-3 16:23
很有帮助的哦,我要学习一下
kanxue2018 发表于 2022-6-4 23:55
坚持学习一下了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-25 02:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表