飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4229|回复: 14

[原创] DnNuke Crackme1.1分析

[复制链接]

该用户从未签到

发表于 2009-10-11 11:31:11 | 显示全部楼层 |阅读模式
【文章标题】: DnNuke Crackme1.1分析
【文章作者】: Sniy
【软件名称】: DnNuke Crackme1.1
【软件大小】: 207KB
【下载地址】: 自己搜索下载
【加壳方式】: UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
【保护方式】: 压缩壳
【编写语言】: Delphi
【使用工具】: OD、DEDE、PEID...
【操作平台】: Win XP sp3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  看到Nisy老大第九期开始报名,昨天晚上看到上面还挂这个crackme,当时就下载下来看了看,昨天弄完之后本想上去回复呢...
  不晓得一看crackme被撤了...
  现在我就把我的分析发上来了,呵呵...
  
  一、工作思路
  
  0、资料收集
  
  1、查壳
  
  2、脱壳
  
  3、调试
  
  
  二、详细步骤
  
  0、资料收集
     打开软件,输入序列号:11111111,无任何提示...狂晕....
  
  1、查壳
     使用Peid0.94版本查壳为:UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
  
  2、脱壳
     UPX的壳脱法太多了...大家如果懒的话可以用脱壳工具,我这里用ESP定律
     OD载入,F8单步一下,ESP变红

  1.      00473460 >  60              PUSHAD
  2.      00473461    BE 00104400     MOV ESI,crackme.00441000     ;ESP处地址变红
  3.       00473466    8DBE 0000FCFF   LEA EDI,DWORD PTR DS:[ESI+FFFC0000]
  4.      
复制代码
在ESP处选中,右键:数据窗口中跟随,然后下硬件访问断点,Shift+F9(或F9)执行

  1.      004735E4  ^\E9 AB23FEFF     JMP crackme.00455994    ;执行到此处
  2.      004735E9    0000            ADD BYTE PTR DS:[EAX],AL
  3.      004735EB    0008            ADD BYTE PTR DS:[EAX],CL
  4.      
复制代码
取消硬件断点,单步F8到OEP
  1. 00455994    55              PUSH EBP   ;OEP位置
  2.      00455995    8BEC            MOV EBP,ESP
  3.      00455997    83C4 F4         ADD ESP,-0C
  4.      0045599A    B8 74584500     MOV EAX,crackme.00455874
  5.      0045599F    E8 6C02FBFF     CALL crackme.00405C10
  6.      
复制代码
脱壳,修复....
  
  3、调试
  
     OD载入,查找ASCII,得到以下

  1.      超级字串参考, 条目 15
  2.      地址=004555F1
  3.      反汇编=MOV EDX,111.004556C8
  4.      文本字串=9877553311
  5.    
  6.      超级字串参考, 条目 17
  7.      地址=00455620
  8.      反汇编=MOV EDX,111.0045572C
  9.      文本字串=9977553311
  10.      
复制代码
得出结论:很可能为明码比较...我们继续...
     因为本程序为delphi编写,所以我们用GetWindowTextA或者GetDlgItemTextA一般是无法下断的...
     那怎么办呢...很好办,我们用dede查找OK按钮的地址,在OK按钮地址下断就可以了...
     经过dede查找OK按钮为clickbutton1地址为:
  1. 004555A4   55                     push    ebp
复制代码
bp 004555A4 下断 ——> F9 ——>  输入 :11111111111111111 ——>OK , 断在
  1. [size=1]004555A4  /.  55            PUSH EBP
  2.   004555A5  |.  8BEC          MOV EBP,ESP
  3.   004555A7  |.  6A 00         PUSH 0
  4.   004555A9  |.  53            PUSH EBX
  5.   004555AA  |.  8BD8          MOV EBX,EAX
  6.   004555AC  |.  33C0          XOR EAX,EAX
复制代码
取消断点,F8单步
  1. 004555BA  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
  2.   004555BD  |.  8B83 C4020000 MOV EAX,DWORD PTR DS:[EBX+2C4]
  3.   004555C3  |.  E8 78D3FCFF   CALL 111.00422940
  4.   004555C8  |.  837D FC 00    CMP DWORD PTR SS:[EBP-4],0 ;  判断输入的注册码是否空
  5.   004555CC  |.  77 12         JA SHORT 111.004555E0      ;  是空则按下面几步直接跳出
  6.   004555CE  |.  BA 78564500   MOV EDX,111.00455678
  7.   004555D3  |.  8B83 C4020000 MOV EAX,DWORD PTR DS:[EBX+2C4]
  8.   004555D9  |.  E8 92D3FCFF   CALL 111.00422970
  9.   004555DE  |.  EB 6F         JMP SHORT 111.0045564F
  10.   004555E0  |>  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
  11.   004555E3  |.  8B83 C4020000 MOV EAX,DWORD PTR DS:[EBX+2C4];  将注册码给首地址给EAX
  12.   004555E9  |.  E8 52D3FCFF   CALL 111.00422940
  13.   004555EE  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  14.   004555F1  |.  BA C8564500   MOV EDX,111.004556C8       ;  9877553311
  15.   004555F6  |.  E8 81E5FAFF   CALL 111.00403B7C  ;  这里比较,如果你输入的与9877553311一样
  16.   004555FB  |.  75 12         JNZ SHORT 111.0045560F ;  如果匹配不上则继续下一个注册码比较
  17.   004555FD  |.  BA DC564500   MOV EDX,111.004556DC        ;  Yer almost there :)
  18.   00455602  |.  8B83 C4020000 MOV EAX,DWORD PTR DS:[EBX+2C4]
  19.   00455608  |.  E8 63D3FCFF   CALL 111.00422970
  20.   0045560D  |.  EB 40         JMP SHORT 111.0045564F
  21.   0045560F  |>  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
  22.   00455612  |.  8B83 C4020000 MOV EAX,DWORD PTR DS:[EBX+2C4]
  23.   00455618  |.  E8 23D3FCFF   CALL 111.00422940
  24.   0045561D  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  25.   00455620  |.  BA 2C574500   MOV EDX,111.0045572C       ;  9977553311
  26.   00455625  |.  E8 52E5FAFF   CALL 111.00403B7C         ;  这里对注册码进行比较
  27.   0045562A  |.  75 23         JNZ SHORT 111.0045564F
  28.   0045562C  |.  A1 10884500   MOV EAX,DWORD PTR DS:[458810]
  29.   00455631  |.  8378 3C 78    CMP DWORD PTR DS:[EAX+3C],78
  30.   00455635  |.  75 18         JNZ SHORT 111.0045564F
  31.   00455637  |.  6A 00         PUSH 0
  32.   00455639  |.  B9 38574500   MOV ECX,111.00455738          ;  Good crackah :)
  33.   0045563E  |.  BA 48574500   MOV EDX,111.00455748          ;  Damn yer good ;). But if this is your first time, then I guess you changed the flag to 0 wich is wrong! Now go back and try again :).. But if ya did make it plz mail me how you did it.. [email]DnNuke@yahoo.com[/email]
  34.   00455643  |.  A1 18754500   MOV EAX,DWORD PTR DS:[457518]
  35.   00455648  |.  8B00          MOV EAX,DWORD PTR DS:[EAX][/size]
复制代码
解决方式有两种:
  
  第一种:注册码为:9977553311    同时NOP掉: 00455635 JNZ SHORT 111.0045564F
  第二种:注册码为:9977553311    同时观察:00455631  CMP DWORD PTR DS:[EAX+3C],78 ;此处为比较窗口大小...
                                  120 = 0x78H...窗体高度...【小小提示】
--------------------------------------------------------------------------------
【经验总结】
  没什么经验总结,就是一步一步的来就可以了...呵呵
  大家加油!PYG加油!
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于PYG论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年10月11日 11:26:51

crackme.rar (201.75 KB, 下载次数: 5)

[ 本帖最后由 sniy 于 2009-10-11 11:50 编辑 ]
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2009-10-11 11:32:28 | 显示全部楼层
不知道为什么论坛不支持
  1. ....
复制代码
?
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-10-25 13:07
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2009-10-11 11:38:24 | 显示全部楼层
    呵呵这个是很久的东西了 当时还顶你了以呵呵
    等待新的测试题吧呵呵
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2009-10-11 11:40:52 | 显示全部楼层
    好的 ... 呵呵  谢谢哈    等待后面题目 ...
    PYG19周年生日快乐!
  • TA的每日心情

    3 天前
  • 签到天数: 1764 天

    [LV.Master]伴坛终老

    发表于 2009-10-11 13:36:58 | 显示全部楼层
    自己先下载试试手。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 1211 天

    [LV.10]以坛为家III

    发表于 2009-10-11 14:06:39 | 显示全部楼层
    直接搜索字符串不是更快?
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-29 07:52
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-10-11 14:10:12 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-10-11 14:16:31 | 显示全部楼层
    把那个CM下来看看
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-10-11 19:47:12 | 显示全部楼层
    呵。。。学习了,我才刚起步,以后向大家多学习才是
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-4-18 15:36
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2009-10-11 20:03:52 | 显示全部楼层
    文章写得不错,继续加油
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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