飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7196|回复: 19

[原创] **备份** 的追码 初学者的第一篇破文

[复制链接]
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2008-1-4 10:10:51 | 显示全部楼层 |阅读模式
    【破文标题】**备份** 的追码
    【破文作者】GGLHY
    【作者邮箱】
    【作者主页】
    破解工具】PEID、AspackDie、OD
    【破解平台】WINxp sp2
    【软件名称】**备份**
    【软件大小】
    【原版下载】
    【保护方式】ASPack 2.12 -> Alexey Solodovnikov壳 ASPack 2.12 -> Alexey Solodovnikov
    【软件简介】**同步工具,能够将您重要的**资料进行自动备份
    【破解声明】只为了解软件的保护技术、顺便看看非计算机专业的自己水平有多菜。时刻谨记:追码不为利只为艺!
    ------------------------------------------------------------------------------------------------------
    【破解过程】    为尊重软件作者,特将该程序名以A.EXE代替。
    1.先运行A.EXE,看见窗体上有“未购买用户”的字样。点注册窗口,随便填注册名和注册码,点注册验证,出现要求重起验证的对话框。

    2.用PEID检测,是 ASPack 2.12 -> Alexey Solodovnikov 壳,用AspackDie脱之。将脱壳后程序改名为B.EXE。

    3 OD载入B.EXE,F9运行,填入假码用户名:gglhy   注册码15987530,在OD反汇编窗口右键查找感兴趣的字符串,看到如下的信息:
                 Ultra String Reference
    Address    Disassembly                               Text String
    .....(这里部分省略)...........
    00526653   mov     edx, 00526734                     reguser
    0052666F   mov     edx, 00526744                     regno
    00526682   mov     edx, 00526754                     filebackupchina
    005266C3   mov     edx, 0052676C                     - 未购买用户
    005267DC   mov     edx, 0052684C                     服务已经停止
    005267FD   mov     edx, 00526864                     服务已经停止。
    005268F3   mov     ecx, 00526924                     提示
    005268F8   mov     edx, 0052692C                     本软件需要注册后才能无限制使用,您现在要注册吗?
    0052699A   mov     edx, 005269E4                     cmd.exe /c
    00526A15   mov     edx, 00526A80                     本软件已注册给:
    .....(这里部分省略)...........

    呵呵,关键信息出来了。先看“005266C3   mov  edx, 0052676C    - 未购买用户”      
          这让你想起了什么?
                         
                          再看“00526A15   mov  edx, 00526A80    本软件已注册给:”
        比较一下005266C3与00526A15,看来未注册在注册成功的流程上方。

                          再看“00526653   mov  edx, 00526734    reguser”
                          还有“0052666F   mov  edx, 00526744    regno”,想起前面的重起验证的对话框,再联系到刚才的未注册和注册成功都在很近的地方,基本上可以得出一个结论:这里的reguser和regno应该是程序重起后进行验证的信息。
        好,双击“005266C3   mov  edx, 0052676C    - 未购买用户”,来到这里:
       
    00526649  |.  8BC3          mov     eax, ebx
    0052664B  |.  E8 1858F7FF   call    0049BE68
    00526650  |.  8D4D FC       lea     ecx, [ebp-4]
    00526653  |.  BA 34675200   mov     edx, 00526734      ;  reguser
    00526658  |.  8BC3          mov     eax, ebx
    0052665A  |.  E8 D15BF7FF   call    0049C230
    0052665F  |.  8B55 FC       mov     edx, [ebp-4]
    00526662  |.  B8 DCD35200   mov     eax, 0052D3DC      ;  ASCII "??
    00526667  |.  E8 ACE2EDFF   call    00404918
    0052666C  |.  8D4D F8       lea     ecx, [ebp-8]
    0052666F  |.  BA 44675200   mov     edx, 00526744      ;  regno
    00526674  |.  8BC3          mov     eax, ebx
    00526676  |.  E8 B55BF7FF   call    0049C230
    0052667B  |.  8B45 F8       mov     eax, [ebp-8]
    0052667E  |.  50            push    eax
    0052667F  |.  8D4D F4       lea     ecx, [ebp-C]
    00526682  |.  BA 54675200   mov     edx, 00526754      ;  filebackupchina
    00526687  |.  A1 DCD35200   mov     eax, [52D3DC]
    0052668C  |.  E8 C3A2FDFF   call    00500954
    00526691  |.  8B55 F4       mov     edx, [ebp-C]
    00526694  |.  58            pop     eax
    00526695  |.  E8 26E6EDFF   call    00404CC0
    0052669A  |.  75 07         jnz     short 005266A3
    0052669C  |.  C605 D8D35200>mov     byte ptr [52D3D8],>
    005266A3  |>  8BC3          mov     eax, ebx
    005266A5  |.  E8 2AD3EDFF   call    004039D4
    005266AA  |.  803D D8D35200>cmp     byte ptr [52D3D8],>
    005266B1  |.  75 27         jnz     short 005266DA
    005266B3  |.  8D55 F0       lea     edx, [ebp-10]
    005266B6  |.  A1 D4D35200   mov     eax, [52D3D4]
    005266BB  |.  E8 3819F2FF   call    00447FF8
    005266C0  |.  8D45 F0       lea     eax, [ebp-10]
    005266C3  |.  BA 6C675200   mov     edx, 0052676C      ;   - 未购买用户
    005266C8  |.  E8 B7E4EDFF   call    00404B84
    ........

    接着向上看:看到 “reguser”“regno”,
    在“00526653  |.  BA 34675200   mov     edx, 00526734      ;  reguser”处下断,点注册验证,呵呵,What happend?
       看来重起验证是把注册信息加入到什么地方去了?先看看注册表,果然:[HKEY_CURRENT_USER\Software\FileBackup]   
    "RegUser"="gglhy"
    "RegNo"="15987530"
       
       好,OD重新载入,运行,在“00526653  |.  BA 34675200  mov edx, 00526734  ;  reguser”处断下来了,先F8走一遍,来到0052667B处,OD右边的寄存器的EAX出现了假码“15987530”,呵呵,要睁大眼睛哦,继续F8,来到00526691处,在OD右下方看到了什么?

    0012FE08   00000000
    0012FE0C   00ED3310  ASCII "F44A615DA7621DA4"
    0012FE10   00ED32E4  ASCII "15987530"
    0012FE14   00ED32D0  ASCII "gglhy"
    0012FE18  /0012FE3C

    F44A615DA7621DA4是不是长得很像注册码啊?
    继续F8,来到
    00526695  |.  E8 26E6EDFF   call    00404CC0
    0052669A  |.  75 07         jnz     short 005266A3
    0052669C  |.  C605 D8D35200>mov     byte ptr [52D3D8],>
    005266A3  |>  8BC3          mov     eax, ebx
    005266A5  |.  E8 2AD3EDFF   call    004039D4
    005266AA  |.  803D D8D35200>cmp     byte ptr [52D3D8],>
    005266B1  |.  75 27         jnz     short 005266DA
    005266B3  |.  8D55 F0       lea     edx, [ebp-10]
    005266B6  |.  A1 D4D35200   mov     eax, [52D3D4]
    005266BB  |.  E8 3819F2FF   call    00447FF8
    005266C0  |.  8D45 F0       lea     eax, [ebp-10]
    005266C3  |.  BA 6C675200   mov     edx, 0052676C      ;   - 未购买用户

    看到在“005266C3  |.  BA 6C675200   mov edx, 0052676C   ; - 未购买用户”前有两个JNZ,看来00526695处这个CALL是很关键的了。估计真码应该在这个时候之前出现了,那个F44A615DA7621DA4嫌疑真的很大!
       F8继续,呵呵,N次F8以后,挂了。
       那就先看看那个长得像注册码的F44A615DA7621DA4,把它填进去,呵呵,居然注册成功了!
       到[HKEY_CURRENT_USER\Software\FileBackup]看看,   
         "RegUser"="gglhy"
         "RegNo"="F44A615DA7621DA4"
       删掉这个键值,变回 “- 未购买用户”

    其实,这种明码比较容易追,否则,那就要研究算法了。


       

       




    ------------------------------------------------------------------------
    【破解总结】    算法不懂(呵呵,下一步的目标是研究算法),不过想想不久前连什么是CALL、JE、JNZ等等都不懂的文科生,现在也能追追明码了,毕竟还是有了点点进步。呵呵,其实破解有时候对软件相关信息进行观察往往能够事半功倍!

    呵呵,希望高手们多鼓励下我们这些菜菜鸟!毕竟没人生下来就是大师,我们都要一步一步往前行。
    ------------------------------------------------------------------------
    【版权声明】请尊重软件作者的辛勤劳动,破解只为艺不为利!

    评分

    参与人数 2威望 +16 飘云币 +8 收起 理由
    tianxj + 8 可以作出内存注册机来的
    magic659117852 + 16 菜鸟来学习 ^_^

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-4 10:38:41 | 显示全部楼层
    好文章,继续努力。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 21:51
  • 签到天数: 1002 天

    [LV.10]以坛为家III

    发表于 2008-1-4 11:22:14 | 显示全部楼层
    现正看汇编,到时再跟楼主学习!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-4 12:13:45 | 显示全部楼层
    希望高手们多鼓励下我们这些菜菜鸟!毕竟没人生下来就是大师,我们都要一步一步往前行。



    --------/:good   /:good   希望高手多写几篇适合超级新手看的。。有简单算法分析的文章
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-4 16:43:34 | 显示全部楼层
    恩  重启验证的  呵呵
    好像我还没有学会诶
    只会简单的爆破,要是没有搜索字符,有点没辙
    还在学习中啊 ~~
    谢谢分享了啊 ~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-4-18 15:36
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2008-1-4 18:43:59 | 显示全部楼层
    一步一个脚印,让我们一起加油!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-4 19:48:10 | 显示全部楼层
    加油加油!!!/:014
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-5 12:39:00 | 显示全部楼层
    同是菜鸟~一起飞吧~ /:014
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-5 13:49:16 | 显示全部楼层
    虽然简单,但还是支持。希望继续发表新作品。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-1-5 14:11:03 | 显示全部楼层
    ********************************************************************************
    一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
    "注册完成,请重新运行程序!"
    ********************************************************************************
    二、用PEiD对这个软件查壳,为 ASPack 2.12 -> Alexey Solodovnikov,
        用PEiD插件脱壳,查壳,为 Borland Delphi 6.0 - 7.0
    ********************************************************************************
    三、运行OD,打开FileBackup.exe.unpacked_,右键—超级字串参考—查找ASCII.
    发现"注册完成,请重新运行程序!"
    00523A84  /.  55            PUSH EBP
    00523A85  |.  8BEC          MOV EBP,ESP
    00523A87  |.  6A 00         PUSH 0
    00523A89  |.  6A 00         PUSH 0
    00523A8B  |.  53            PUSH EBX
    00523A8C  |.  56            PUSH ESI
    00523A8D  |.  8BF0          MOV ESI,EAX
    00523A8F  |.  33C0          XOR EAX,EAX
    00523A91  |.  55            PUSH EBP
    00523A92  |.  68 453B5200   PUSH FileBack.00523B45
    00523A97  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    00523A9A  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    00523A9D  |.  B2 01         MOV DL,1
    00523A9F  |.  A1 DCBA4900   MOV EAX,DWORD PTR DS:[49BADC]
    00523AA4  |.  E8 9F81F7FF   CALL FileBack.0049BC48
    00523AA9  |.  8BD8          MOV EBX,EAX
    00523AAB  |.  BA 01000080   MOV EDX,80000001
    00523AB0  |.  8BC3          MOV EAX,EBX
    00523AB2  |.  E8 6D82F7FF   CALL FileBack.0049BD24
    00523AB7  |.  B1 01         MOV CL,1
    00523AB9  |.  BA 5C3B5200   MOV EDX,FileBack.00523B5C                ;  software\filebackup
    00523ABE  |.  8BC3          MOV EAX,EBX                              ;  //注册信息保存在Software\FileBackup
    00523AC0  |.  E8 A383F7FF   CALL FileBack.0049BE68
    00523AC5  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
    00523AC8  |.  8B86 38030000 MOV EAX,DWORD PTR DS:[ESI+338]
    00523ACE  |.  E8 2545F2FF   CALL FileBack.00447FF8                   ;  //将用户名长度送入EAX
    00523AD3  |.  8B4D FC       MOV ECX,DWORD PTR SS:[EBP-4]             ;  //将用户名送入ECX
    00523AD6  |.  BA 783B5200   MOV EDX,FileBack.00523B78                ;  reguser
    00523ADB  |.  8BC3          MOV EAX,EBX                              ;  //将RegUser送入EDX
    00523ADD  |.  E8 2287F7FF   CALL FileBack.0049C204
    00523AE2  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
    00523AE5  |.  8B86 3C030000 MOV EAX,DWORD PTR DS:[ESI+33C]
    00523AEB  |.  E8 0845F2FF   CALL FileBack.00447FF8                   ;  //将试练码长度送入EAX
    00523AF0  |.  8B4D F8       MOV ECX,DWORD PTR SS:[EBP-8]             ;  //将试练码送入ECX
    00523AF3  |.  BA 883B5200   MOV EDX,FileBack.00523B88                ;  regno
    00523AF8  |.  8BC3          MOV EAX,EBX                              ;  //将RegNo送入EDX
    00523AFA  |.  E8 0587F7FF   CALL FileBack.0049C204
    00523AFF  |.  8BC3          MOV EAX,EBX
    00523B01  |.  E8 CEFEEDFF   CALL FileBack.004039D4
    00523B06  |.  6A 40         PUSH 40
    00523B08  |.  B9 903B5200   MOV ECX,FileBack.00523B90                ;  提示
    00523B0D  |.  BA 983B5200   MOV EDX,FileBack.00523B98                ;  注册完成,请重新运行程序!
    00523B12  |.  A1 64A15200   MOV EAX,DWORD PTR DS:[52A164]
    00523B17  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    00523B19  |.  E8 BE56F4FF   CALL FileBack.004691DC                   ;  //弹出对话框
    00523B1E  |.  A1 64A15200   MOV EAX,DWORD PTR DS:[52A164]
    00523B23  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    00523B25  |.  E8 0E56F4FF   CALL FileBack.00469138
    00523B2A  |.  33C0          XOR EAX,EAX
    00523B2C  |.  5A            POP EDX
    00523B2D  |.  59            POP ECX
    00523B2E  |.  59            POP ECX
    00523B2F  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    00523B32  |.  68 4C3B5200   PUSH FileBack.00523B4C
    00523B37  |>  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    00523B3A  |.  BA 02000000   MOV EDX,2
    00523B3F  |.  E8 A40DEEFF   CALL FileBack.004048E8
    00523B44  \.  C3            RETN
    00523B45   .^ E9 1E06EEFF   JMP FileBack.00404168
    00523B4A   .^ EB EB         JMP SHORT FileBack.00523B37
    00523B4C   .  5E            POP ESI
    00523B4D   .  5B            POP EBX
    00523B4E   .  59            POP ECX
    00523B4F   .  59            POP ECX
    00523B50   .  5D            POP EBP
    00523B51   .  C3            RETN
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    注册信息保存在
    [HKEY_USERS\S-1-5-21-463895000-2320687865-3845484338-500\Software\FileBackup]
    "RegUser"和"RegNo"
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    00523AF3  |.  BA 883B5200   MOV EDX,FileBack.00523B88                ;  regno   //注册用
    005262C3  |.  BA 98635200   MOV EDX,FileBack.00526398                ;  regno   //验证用
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    00526258  /.  55            PUSH EBP
    00526259  |.  8BEC          MOV EBP,ESP
    0052625B  |.  33C9          XOR ECX,ECX
    0052625D  |.  51            PUSH ECX
    0052625E  |.  51            PUSH ECX
    0052625F  |.  51            PUSH ECX
    00526260  |.  51            PUSH ECX
    00526261  |.  53            PUSH EBX
    00526262  |.  33C0          XOR EAX,EAX
    00526264  |.  55            PUSH EBP
    00526265  |.  68 56635200   PUSH FileBack.00526356
    0052626A  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    0052626D  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    00526270  |.  E8 4BE0FFFF   CALL FileBack.005242C0
    00526275  |.  C605 D4C35200>MOV BYTE PTR DS:[52C3D4],0
    0052627C  |.  B2 01         MOV DL,1
    0052627E  |.  A1 DCBA4900   MOV EAX,DWORD PTR DS:[49BADC]
    00526283  |.  E8 C059F7FF   CALL FileBack.0049BC48
    00526288  |.  8BD8          MOV EBX,EAX
    0052628A  |.  BA 01000080   MOV EDX,80000001
    0052628F  |.  8BC3          MOV EAX,EBX
    00526291  |.  E8 8E5AF7FF   CALL FileBack.0049BD24
    00526296  |.  B1 01         MOV CL,1
    00526298  |.  BA 6C635200   MOV EDX,FileBack.0052636C                ;  software\filebackup
    0052629D  |.  8BC3          MOV EAX,EBX
    0052629F  |.  E8 C45BF7FF   CALL FileBack.0049BE68
    005262A4  |.  8D4D FC       LEA ECX,DWORD PTR SS:[EBP-4]
    005262A7  |.  BA 88635200   MOV EDX,FileBack.00526388                ;  reguser
    005262AC  |.  8BC3          MOV EAX,EBX
    005262AE  |.  E8 7D5FF7FF   CALL FileBack.0049C230
    005262B3  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]             ;  //将用户名送入EDX
    005262B6  |.  B8 D8C35200   MOV EAX,FileBack.0052C3D8
    005262BB  |.  E8 58E6EDFF   CALL FileBack.00404918
    005262C0  |.  8D4D F8       LEA ECX,DWORD PTR SS:[EBP-8]
    005262C3  |.  BA 98635200   MOV EDX,FileBack.00526398                ;  regno
    005262C8  |.  8BC3          MOV EAX,EBX
    005262CA  |.  E8 615FF7FF   CALL FileBack.0049C230
    005262CF  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //将试练码送入EAX
    005262D2  |.  50            PUSH EAX                                 ;  //将试练码压栈
    005262D3  |.  8D4D F4       LEA ECX,DWORD PTR SS:[EBP-C]
    005262D6  |.  BA A8635200   MOV EDX,FileBack.005263A8                ;  filebackupchina
    005262DB  |.  A1 D8C35200   MOV EAX,DWORD PTR DS:[52C3D8]            ;  //将filebackupChina送入EDX   
    005262E0  |.  E8 0BA3FDFF   CALL FileBack.005005F0                   ;  //算法CALL
    005262E5  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  //将真码送入EDX
    005262E8  |.  58            POP EAX                                  ;  //将试练码出栈
    005262E9  |.  E8 D2E9EDFF   CALL FileBack.00404CC0                   ;  //比较CALL
    005262EE  |.  75 07         JNZ SHORT FileBack.005262F7              ;  //关键跳转
    005262F0  |.  C605 D4C35200>MOV BYTE PTR DS:[52C3D4],1
    005262F7  |>  8BC3          MOV EAX,EBX
    005262F9  |.  E8 D6D6EDFF   CALL FileBack.004039D4
    005262FE  |.  803D D4C35200>CMP BYTE PTR DS:[52C3D4],0
    00526305  |.  75 27         JNZ SHORT FileBack.0052632E
    00526307  |.  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
    0052630A  |.  A1 D0C35200   MOV EAX,DWORD PTR DS:[52C3D0]
    0052630F  |.  E8 E41CF2FF   CALL FileBack.00447FF8
    00526314  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    00526317  |.  BA C0635200   MOV EDX,FileBack.005263C0                ;   - 未购买用户
    0052631C  |.  E8 63E8EDFF   CALL FileBack.00404B84
    00526321  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
    00526324  |.  A1 D0C35200   MOV EAX,DWORD PTR DS:[52C3D0]
    00526329  |.  E8 FA1CF2FF   CALL FileBack.00448028
    0052632E  |>  E8 A9EAFFFF   CALL FileBack.00524DDC
    00526333  |.  33C0          XOR EAX,EAX
    00526335  |.  5A            POP EDX
    00526336  |.  59            POP ECX
    00526337  |.  59            POP ECX
    00526338  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    0052633B  |.  68 5D635200   PUSH FileBack.0052635D
    00526340  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    00526343  |.  E8 7CE5EDFF   CALL FileBack.004048C4
    00526348  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
    0052634B  |.  BA 03000000   MOV EDX,3
    00526350  |.  E8 93E5EDFF   CALL FileBack.004048E8
    00526355  \.  C3            RETN
    00526356   .^ E9 0DDEEDFF   JMP FileBack.00404168
    0052635B   .^ EB E3         JMP SHORT FileBack.00526340
    0052635D   .  5B            POP EBX
    0052635E   .  8BE5          MOV ESP,EBP
    00526360   .  5D            POP EBP
    00526361   .  C3            RETN

    ********************************************************************************  
    【破解总结】
    --------------------------------------------------------------------------------
    【内存注册机】
    中断地址 5262E9
    中断次数 1
    第一字节 E8
    指令长度 5

    内存方式-寄存器-EDX
    --------------------------------------------------------------------------------
    【爆破地址】
    005262EE  |.  75 07         JNZ SHORT FileBack.005262F7
    NOP掉
    --------------------------------------------------------------------------------
    【注册信息】
    用户名:abcdef
    注册码:186628E6455FDDAB
    --------------------------------------------------------------------------------
    希望以后可以在猫老大和PYG 5.4Cracker学习小组的帮助下进一步提高自己。
    感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
    --------------------------------------------------------------------------------
    【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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