飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8530|回复: 19

[原创] 简单脱双层壳+注册机编写CrackMe分析(高手路过)

[复制链接]
  • TA的每日心情
    擦汗
    2017-9-24 22:49
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2007-12-15 23:27:25 | 显示全部楼层 |阅读模式
    虽然来PYG好久了,但这是我的处女作,希望大家支持,随便找了一个CrackMe,是PYG的,加了双层壳,下面我写一下脱壳加简单追码和注册机的编写,有可能有人写过了,不过这都是我自己的实践,呵呵,不多说了,开始。
    老规矩PEID 0.94查壳(图见附件),
    nSPack 2.2 -> North Star/Liu Xing Ping加了两层壳(分步来脱的话还会有UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo这个壳)。
    用OD载入停在jmp 00422FC5处,F8步进,来到这里
    00422FC5      9C                pushfd
    00422FC6      60                pushad
    00422FC7      E8 00000000       call CrackMe0.00422FCC
    00422FCC      5D                pop ebp
    这就是壳的入口了,再按F8,发现寄存器窗口中ESP变化了,
    EAX 00000000
    ECX 0013FFB0
    EDX 7C92EB94 ntdll.KiFastSystemCallRet
    EBX 7FFD9000
    ESP 0013FFC0
    EBP 0013FFF0
    ESI FFFFFFFF
    EDI 7C930738 ntdll.7C930738
    下硬件断点hr 0013FFC0,再按F9运行至
    0042323F    - E9 1CC5FFFF       jmp CrackMe0.0041F760
    00423244      8BB5 1FFEFFFF     mov esi,dword ptr ss:[ebp-1E1]
    0042324A      0BF6              or esi,esi
    0042324C      0F84 97000000     je CrackMe0.004232E9
    同上F8步进,来到这里
    0041F760      60                pushad
    0041F761      BE 00B04000       mov esi,CrackMe0.0040B000
    0041F766      8DBE 0060FFFF     lea edi,dword ptr ds:[esi+FFFF6000]
    0041F76C      57                push edi
    0041F76D      83CD FF           or ebp,FFFFFFFF
    0041F770      EB 10             jmp short CrackMe0.0041F782
    继续F8发现ESP又变了,
    EAX 00000000
    ECX 0013FFB0
    EDX 7C92EB94 ntdll.KiFastSystemCallRet
    EBX 7FFD9000
    ESP 0013FFA4
    EBP 0013FFF0
    ESI FFFFFFFF
    EDI 7C930738 ntdll.7C930738
    先清除上一个断点 hd 0013FFC0,然后下hr 0013FFA4,F9运行至
    0041F8B8    ^\E9 B921FEFF       jmp CrackMe0.00401A76
    0041F8BD      0000              add byte ptr ds:[eax],al
    0041F8BF      0000              add byte ptr ds:[eax],al

    再按一下F8便来到
    00401A76      55                push ebp
    00401A77      8BEC              mov ebp,esp
    00401A79      6A FF             push -1
    00401A7B      68 40254000       push CrackMe0.00402540
    00401A80      68 FC1B4000       push CrackMe0.00401BFC                 ; jmp to msvcrt._except_handler3
    00401A85      64:A1 00000000    mov eax,dword ptr fs:[0]
    00401A8B      50                push eax
    00401A8C      64:8925 00000000  mov dword ptr fs:[0],esp
    00401A93      83EC 68           sub esp,68

    这便是典型的VC程序的入口特征,所以OEP=401A76-400000=1A76。
    用LordPE Dump后保存为dumped.exe,然后Import REC ,填入OEP,IAT AutoSearch,改size为1000,Get Imports, Fix Dump,选择dumped.exe, 修复好的程序保存为dumped_.exe.
    现在OD载入dumped_.exe,查找字符串,出现如下图窗口,点击注册成功,来到
    00401726      8B7424 48         mov esi,dword ptr ss:[esp+48]
    0040172A      8B46 64           mov eax,dword ptr ds:[esi+64]
    0040172D      50                push eax
    0040172E      FF15 C4214000     call dword ptr ds:[<&msvcrt._mbscmp>]  ; msvcrt._mbscmp
    00401734      83C4 38           add esp,38
    00401737      85C0              test eax,eax
    00401739      75 12             jnz short dumped_.0040174D
    0040173B      50                push eax
    0040173C      68 2C304000       push dumped_.0040302C
    00401741      68 20304000       push dumped_.00403020
    00401746      8BCE              mov ecx,esi
    00401748      E8 BD020000       call <jmp.&mfc42.#4224>
    0040174D      6A 00             push 0

    现在大家应该看到了上面有一个msvcrt._mbscmp函数,是比较的,毫不犹豫,F2下断,Ctrl F2,重新运行,F9运行出现注册窗口,填入用户名和随意注册码,确定,至中断处,这时大家看到了什么?
    不用怀疑,那就是注册码!!!
    下面做内存注册机,用KeyMaker,其他,内存注册机,载入原带壳程序,点添加,如下图添加数据即可,点生成,选择界面,保存为KeyGen.exe。
    现在打开Keygen.exe,同样填入相同信息,出现如下图界面,复制注册码即可注册成功(如图)!

    [ 本帖最后由 sdprtf 于 2007-12-15 23:40 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-16 16:23:18 | 显示全部楼层
    呵呵..支持你.要不我们一起研究算法吧?..好像挺复杂的.40行有的.
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2017-9-24 22:49
  • 签到天数: 4 天

    [LV.2]偶尔看看I

     楼主| 发表于 2007-12-16 21:15:45 | 显示全部楼层
    好啊,一起研究下!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-18 05:00:50 | 显示全部楼层
    好!

    偶学习学习!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2020-9-27 20:02
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2007-12-18 21:21:25 | 显示全部楼层
    ,...能做个教程就更好了..
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-24 20:38:57 | 显示全部楼层
    /:001 按步骤来一遍,,看看结果如何
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-24 21:33:07 | 显示全部楼层
    /:014 没看文章前自己玩了一下。。。发现直接用OD插件的来脱,,不用修复。。

    不懂这个‘msvcrt._mbscmp函数,是比较的’

    跑到   ‘004015F5  请输入完整信息!’前面的call下断。。。一路F8下来真辛苦 /:001  /:001   最后也成功了。。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-26 23:20:40 | 显示全部楼层
    能做个教程就更好了/:L /:L
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-4 08:32:28 | 显示全部楼层
    学习了,:victory: :victory:
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2021-2-15 12:20
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2008-2-22 10:33:39 | 显示全部楼层
    学习,学习,初学者拜师啊
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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