飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2233|回复: 2

修改带KEY的ARM双进程的硬件指纹

[复制链接]
  • TA的每日心情
    开心
    2016-2-2 16:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-8-6 18:33:07 | 显示全部楼层 |阅读模式
    【破文标题】修改带KEY的ARM双进程的硬件指纹
    【破文作者】PYG学员:jy2207661
    【作者主页】https://www.chinapyg.com/
    破解工具】OD,PEID,Armadillo Find Protected
    【破解平台】XP
    ------------------------------------------------------------------------
    【破解过程】
    1.用PEID 查一下,显示为 Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks的壳

    2.用Armadillo Find Protected查一下,显示如下:
    !- 目标为Armadillo保护
    !- 保护系统级别为 (专业版)      
    !- <所用到的保护模式有>
    屏蔽调试器   
    双进程模式
    防止内存补丁模式                  
    !- <备份密钥设置>      
    固定的备份密钥   
    !- <目标程序压缩设置>   
    最好 / 最慢的压缩方式   
    !- <其它保护设置>
    48029E80 Version X.X 14-04-2008

    3.必须要有一个正确的KEY、用户名和对应的机器码才行:
    硬件ID:8043B310
    用户名:恨雨不潇
    KEY     :000014-3K0Q3G-4ZAUTW-T38UX0-XJ92QC-6MBG8N-QJ08F5-TGHH5T-TP8FFH-5V8BUC
    在我机器上显示的硬件ID为:16CD5933

    4.用OD载入目标程序,设置Ollydbg忽略所有异常,用IsDebug 1.4插件去掉Ollydbg的调试器标志。我在这里倫赖了,直接用《转单进程脚本.oSc》把程序转为单进程。

    5.Shift+F9 运行,直到程序提示:This program requires a security key. If you have one, select OK to enter it. After entering a valid key, you will not be prompted again.按 OK 按钮让程序弹出输入 KEY 的对话框,下断点BP GetDlgItem,切换到程序输入正确的名字和 KEY 后按 OK 按钮。断下后看堆栈提示
    00128088   00C244FC  /CALL 到 GetDlgItem 来自 00C244FA
    0012808C   000607F0  |hWnd = 000607F0 ('Enter Key',class='#32770')
    00128090   00000407  \ControlID = 407 (1031.)

    6.ALT+F9 返回程序领空
    00C244FC    85C0            TEST EAX,EAX                             ; 返回到此处
    00C244FE    74 33           JE SHORT 00C24533

    7.在反汇编窗口右键->查找->所有参考文本字串,搜索ENHFINGERPRINT,在搜索到的行上右键->反汇编窗口跟随
    0307D5E1    68 60980A03     PUSH 30A9860                             ; ASCII "DATELASTRUN"
    0307D5E6    8D8F 4C240000   LEA ECX,DWORD PTR DS:[EDI+244C]
    0307D5EC    E8 F58BFFFF     CALL 030761E6
    0307D5F1    53              PUSH EBX
    0307D5F2    8BCF            MOV ECX,EDI
    0307D5F4    E8 BAACFFFF     CALL 030782B3                                ; 这个CALL是关键,加车跟随
    0307D5F9    8BC8            MOV ECX,EAX
    0307D5FB    BB C4960A03     MOV EBX,30A96C4                          ; ASCII "%04X-%04X"
    0307D600    81E1 FFFF0000   AND ECX,0FFFF
    0307D606    C1E8 10         SHR EAX,10
    0307D609    51              PUSH ECX
    0307D60A    50              PUSH EAX
    0307D60B    8D85 E0FDFFFF   LEA EAX,DWORD PTR SS:[EBP-220]
    0307D611    53              PUSH EBX
    0307D612    50              PUSH EAX
    0307D613    FFD6            CALL ESI
    0307D615    83C4 10         ADD ESP,10
    0307D618    8D85 E0FDFFFF   LEA EAX,DWORD PTR SS:[EBP-220]
    0307D61E    8D8F 4C240000   LEA ECX,DWORD PTR DS:[EDI+244C]
    0307D624    6A 00           PUSH 0
    0307D626    50              PUSH EAX
    0307D627    68 54980A03     PUSH 30A9854                             ; ASCII "FINGERPRINT"
    0307D62C    E8 4B8BFFFF     CALL 0307617C
    0307D631    6A 00           PUSH 0
    0307D633    8BCF            MOV ECX,EDI
    0307D635    E8 97ACFFFF     CALL 030782D1
    0307D63A    8BC8            MOV ECX,EAX
    0307D63C    81E1 FFFF0000   AND ECX,0FFFF
    0307D642    C1E8 10         SHR EAX,10
    0307D645    51              PUSH ECX
    0307D646    50              PUSH EAX
    0307D647    8D85 E0FDFFFF   LEA EAX,DWORD PTR SS:[EBP-220]
    0307D64D    53              PUSH EBX
    0307D64E    50              PUSH EAX
    0307D64F    FFD6            CALL ESI
    0307D651    83C4 10         ADD ESP,10
    0307D654    8D85 E0FDFFFF   LEA EAX,DWORD PTR SS:[EBP-220]
    0307D65A    8D8F 4C240000   LEA ECX,DWORD PTR DS:[EDI+244C]
    0307D660    6A 00           PUSH 0
    0307D662    50              PUSH EAX
    0307D663    68 44980A03     PUSH 30A9844                             ; ASCII "ENHFINGERPRINT",来到这行,向上看
    0307D668    E8 0F8BFFFF     CALL 0307617C
    0307D66D    6A 00           PUSH 0
    0307D66F    8BCF            MOV ECX,EDI
    0307D671    E8 E3010000     CALL 0307D859

    8.跟随0307D5F处的CALL后,来到这里
    030782B3    56              PUSH ESI                                                ;在此行下断,F2
    030782B4    8BF1            MOV ESI,ECX
    030782B6    FF7424 08       PUSH DWORD PTR SS:[ESP+8]
    030782BA    8B8E 5C060000   MOV ECX,DWORD PTR DS:[ESI+65C]
    030782C0    6A 00           PUSH 0
    030782C2    E8 24D70000     CALL 030859EB                                          ;ID的出现是由这个CALL产生的,跟随
    030782C7    3386 5C200000   XOR EAX,DWORD PTR DS:[ESI+205C]   ;当程序走到这行时,EAX中便出现我的ID
    030782CD    5E              POP ESI
    030782CE    C2 0400         RETN 4

    9.跟随030782C2处的CALL后,来到这里
    030859EB    8B4424 04       MOV EAX,DWORD PTR SS:[ESP+4]
    030859EF    C1E0 06          SHL EAX,6
    030859F2    034424 08       ADD EAX,DWORD PTR SS:[ESP+8]
    030859F6    8B4481 18       MOV EAX,DWORD PTR DS:[ECX+EAX*4+18]
    030859FA    35 8AC0E665   XOR EAX,65E6C08A     ;把此行改为JMP 401000,到401000处进行代码修改
    030859FF    C2 0800           RETN 8

    10.从00401000写入如下代码
    00401000      35 8AC0E665   XOR EAX,65E6C08A
    00401005      3D 3359CD16   CMP EAX,16CD5933     ;16CD5933是我的机器ID
    0040100A      75 05         JNZ SHORT 00401011
    0040100C      B8 10B34380   MOV EAX,8043B310      ;8043B310 是欲修改的正确的ID
    00401011      C2 0800       RETN 8
    二进制代码为:
    35 8A C0 E6 65 3D 33 59 CD 16 75 05 B8 10 B3 43 80 C2 08 00

    11.好了,写好代码之后,就一直F9,直到程序提示注册,点YES,发现机器码已经变成8043-B310了,输入那个正确的用户名和KEY后,程序提示注册成功了,到此全部搞定。


    [ 本帖最后由 jy2207661 于 2008-8-6 20:32 编辑 ]

    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-15 13:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-8-6 20:28:58 | 显示全部楼层
    好文啊,学习了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-3-9 12:27:06 | 显示全部楼层
    有视频教程吗????????????
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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