飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4298|回复: 10

[求助] 第一次失败@第三次破解文件求助大家分析

[复制链接]
  • TA的每日心情
    奋斗
    2018-6-20 16:25
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-1-31 11:08:36 | 显示全部楼层 |阅读模式
    求助:
    事情是这样的,今日试着破解一个register,用w32D打开这个文件,参考字符串中能找到运行出错的信息“错误:请输入有效的序列号”双击进入分析,发现|:00401703(C), :0040170C(C),于是我将这两处的跳转改为jmp short 0040177A,运行后显示“注册系统成功”,但没有真正注册。大家帮我分析一下,最好分析出算法。

    注册文件已上传到附件


    1. * Possible StringData Ref from Data Obj ->"错误:无效的注册码"
    2.                                   |
    3. :00401750 68AC304000              push 004030AC
    4. :00401755 EB5D                    jmp 004017B4

    5. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
    6. |:0040174C(C)
    7. |
    8. :00401757 6801030000              push 00000301

    9. * Possible StringData Ref from Data Obj ->"D:/ELIB/conf/serial"
    10.                                   |
    11. :0040175C 6850304000              push 00403050

    12. * Reference To: MSVCRT._open, Ord:0187h
    13.                                   |
    14. :00401761 FF15F0214000            Call dword ptr [004021F0]
    15. :00401767 8BF0                    mov esi, eax
    16. :00401769 83C408                  add esp, 00000008
    17. :0040176C 83FEFF                  cmp esi, FFFFFFFF
    18. :0040176F 7509                    jne 0040177A
    19. :00401771 53                      push ebx
    20. :00401772 53                      push ebx

    21. * Possible StringData Ref from Data Obj ->"错误:注册系统失败"
    22.                                   |
    23. :00401773 6898304000              push 00403098
    24. :00401778 EB3A                    jmp 004017B4

    25. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
    26. |:0040176F(C)
    27. |
    28. :0040177A 6A1D                    push 0000001D
    29. :0040177C 53                      push ebx
    30. :0040177D 8D4C2414                lea ecx, dword ptr [esp+14]

    31. * Reference To: MFC42.Ordinal:0B63, Ord:0B63h
    32.                                   |
    33. :00401781 E83C030000              Call 00401AC2
    34. :00401786 50                      push eax
    35. :00401787 56                      push esi

    36. * Reference To: MSVCRT._write, Ord:0217h
    37.                                   |
    38. :00401788 FF1500224000            Call dword ptr [00402200]
    39. :0040178E 56                      push esi

    40. * Reference To: MSVCRT._close, Ord:00B3h
    41.                                   |
    42. :0040178F FF1508224000            Call dword ptr [00402208]
    43. :00401795 83C410                  add esp, 00000010
    44. :00401798 53                      push ebx
    45. :00401799 53                      push ebx

    46. * Possible StringData Ref from Data Obj ->"注册系统成功"
    47.                                   |
    48. :0040179A 6888304000              push 00403088

    49. * Reference To: MFC42.Ordinal:04B0, Ord:04B0h
    50.                                   |
    51. :0040179F E818030000              Call 00401ABC
    52. :004017A4 8BCF                    mov ecx, edi

    53. * Reference To: MFC42.Ordinal:12F5, Ord:12F5h
    54.                                   |
    55. :004017A6 E80B030000              Call 00401AB6
    56. :004017AB EB0C                    jmp 004017B9

    57. * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
    58. |:00401703(C), :0040170C(C)
    59. |
    60. :004017AD 53                      push ebx
    61. :004017AE 53                      push ebx

    62. * Possible StringData Ref from Data Obj ->"错误:请输入有效的序列号"
    63.                                   |
    64. :004017AF 686C304000              push 0040306C
    复制代码

    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-1-31 11:47:41 | 显示全部楼层
    明码比较...
    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-1-31 11:58:10 | 显示全部楼层
    00401741     FF15 EC214000   call dword ptr ds:[<&MSVCRT._mbs>; msvcrt._mbscmp  //明码
    00401747     83C4 14         add esp,14
    0040174A     85C0            test eax,eax
    0040174C     74 09           je short register.00401757

    文件不完整~~~做了个内存注册机见附件

    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-1-31 12:30:22 | 显示全部楼层
    对楼上的补充,怀疑原程序被修改过!
    具体如下:
    00401701   .  3BC3          CMP EAX,EBX
    00401703   .  0F84 A4000000 JE register.004017AD
    00401709   .  83F8 1D       CMP EAX,1D                               ;  看是不是29位!是就继续,不是就跳到004017AD
    0040170C   .  0F8C 9B000000 JL register.004017AD
    00401712   .  8B15 9C314000 MOV EDX,DWORD PTR DS:[40319C]
    00401718   .  A1 A0314000   MOV EAX,DWORD PTR DS:[4031A0]
    0040171D   .  52            PUSH EDX
    0040171E   .  50            PUSH EAX
    0040171F   .  E8 1CFCFFFF   CALL register.00401340
    00401724   .  83C4 08       ADD ESP,8                                ;  寄存器出现一组注册码!
    00401727   .  8D4C24 10     LEA ECX,DWORD PTR SS:[ESP+10]
    0040172B   .  50            PUSH EAX                                 ;  还是上面的注册码,怀疑可能是真码!
    0040172C   .  68 C0304000   PUSH register.004030C0                   ;  %s
    00401731   .  51            PUSH ECX
    00401732   .  E8 5B030000   CALL <JMP.&MFC42.#2818>
    00401737   .  8B5424 18     MOV EDX,DWORD PTR SS:[ESP+18]
    0040173B   .  8B4424 1C     MOV EAX,DWORD PTR SS:[ESP+1C]            ;  此处寄存器显示和我们的输入的注册码比较!
    0040173F   .  52            PUSH EDX                                 ; /s2
    00401740   .  50            PUSH EAX                                 ; |s1
    00401741   .  FF15 EC214000 CALL DWORD PTR DS:[<&MSVCRT._mbscmp>]    ; \_mbscmp
    00401747   .  83C4 14       ADD ESP,14
    0040174A   .  85C0          TEST EAX,EAX
    0040174C   .  74 09         JE SHORT register.00401757
    0040174E   .  53            PUSH EBX
    0040174F   .  53            PUSH EBX
    00401750   .  68 AC304000   PUSH register.004030AC                   ;  错误:无效的注册码
    00401755   .  EB 5D         JMP SHORT register.004017B4
    00401757   >  68 01030000   PUSH 301                                 ; |access = O_WRONLY|O_CREAT|O_TRUNC|SH_COMPAT0
    0040175C   .  68 50304000   PUSH register.00403050                   ; |d:/elib/conf/serial
    00401761   .  FF15 F0214000 CALL DWORD PTR DS:[<&MSVCRT._open>]      ; \_open
    00401767   .  8BF0          MOV ESI,EAX
    00401769   .  83C4 08       ADD ESP,8
    0040176C   .  83FE FF       CMP ESI,-1
    0040176F      75 09         JNZ SHORT register.0040177A
    00401771   .  53            PUSH EBX
    00401772   .  53            PUSH EBX
    00401773   .  68 98304000   PUSH register.00403098                   ;  错误:注册系统失败
    00401778      EB 3A         JMP SHORT register.004017B4
    0040177A   >  6A 1D         PUSH 1D
    0040177C   .  53            PUSH EBX
    0040177D   .  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
    00401781   .  E8 3C030000   CALL <JMP.&MFC42.#2915>
    00401786   .  50            PUSH EAX                                 ; |buf
    00401787   .  56            PUSH ESI                                 ; |handle
    00401788   .  FF15 00224000 CALL DWORD PTR DS:[<&MSVCRT._write>]     ; \_write
    0040178E   .  56            PUSH ESI                                 ; /handle
    0040178F   .  FF15 08224000 CALL DWORD PTR DS:[<&MSVCRT._close>]     ; \_close
    00401795   .  83C4 10       ADD ESP,10
    00401798   .  53            PUSH EBX
    00401799   .  53            PUSH EBX
    0040179A   .  68 88304000   PUSH register.00403088                   ;  注册系统成功
    0040179F   .  E8 18030000   CALL <JMP.&MFC42.#1200>
    004017A4   .  8BCF          MOV ECX,EDI
    004017A6   .  E8 0B030000   CALL <JMP.&MFC42.#4853>
    004017AB   .  EB 0C         JMP SHORT register.004017B9
    004017AD   >  53            PUSH EBX
    004017AE   .  53            PUSH EBX
    004017AF   .  68 6C304000   PUSH register.0040306C                   ;  错误:请输入有效的序列号
    004017B4   >  E8 03030000   CALL <JMP.&MFC42.#1200>
    004017B9   >  8D4C24 10     LEA ECX,DWORD PTR SS:[ESP+10]
    004017BD   .  885C24 1C     MOV BYTE PTR SS:[ESP+1C],BL
    004017C1   .  E8 BA020000   CALL <JMP.&MFC42.#800>
    004017C6   .  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C]
    004017CA   .  C74424 1C FFF>MOV DWORD PTR SS:[ESP+1C],-1
    004017D2   .  E8 A9020000   CALL <JMP.&MFC42.#800>
    004017D7   .  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]
    004017DB   .  5F            POP EDI
    004017DC   .  5E            POP ESI
    004017DD   .  5B            POP EBX
    004017DE   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
    004017E5   .  83C4 14       ADD ESP,14
    004017E8   .  C3            RETN

    ++++++++++++++++++++++++++++++++++++
    以上是简单分析,不对的地方请老大们指教,猫也不给评作业,这两天只能自学了!呵呵
    以下这行代码怀疑被修改过:(楼上的可以测试一下,你的注册机填入注册码,肯定不能注册成功)
    0040176F      75 09         JNZ SHORT register.0040177A    //应该为:JZ SHORT register.0040177A
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2018-6-20 16:25
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2007-1-31 14:27:25 | 显示全部楼层

    1. * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
    2. |:00401703(C), :0040170C(C)     //////错误是从这两个地方跳转来的
    3. |
    4. :004017AD 53                      push ebx
    5. :004017AE 53                      push ebx

    6. * Possible StringData Ref from Data Obj ->"错误:请输入有效的序列号"
    7.                                   |
    8. :004017AF 686C304000              push 0040306C
    复制代码

    好我们到00401703(C),看看:

    1. * Reference To: MFC42.Ordinal:0F22, Ord:0F22h
    2.                                   |
    3. :004016F5 E8CE030000              Call 00401AC8   //关键call
    4. :004016FA 8B4C240C                mov ecx, dword ptr [esp+0C]
    5. :004016FE 8B41F8                  mov eax, dword ptr [ecx-08]
    6. :00401701 3BC3                    cmp eax, ebx
    7. :00401703 0F84A4000000            je 004017AD
    8. :00401709 83F81D                  cmp eax, 0000001D
    9. :0040170C 0F8C9B000000            jl 004017AD
    10. :00401712 8B159C314000            mov edx, dword ptr [0040319C]
    11. :00401718 A1A0314000              mov eax, dword ptr [004031A0]
    12. :0040171D 52                      push edx
    13. :0040171E 50                      push eax
    14. :0040171F E81CFCFFFF              call 00401340    //高手们,这里也有一个Call,
    15.                   //0040153C等地方都调用过它,我就是从这里开始突破的
    16. :00401724 83C408                  add esp, 00000008
    17. :00401727 8D4C2410                lea ecx, dword ptr [esp+10]
    18. :0040172B 50                      push eax
    复制代码


    去看看这个call 00401340

    1. * Referenced by a CALL at Addresses:
    2. |:0040153C   , :0040171F   
    3. |
    4. :00401340 83EC5C                  sub esp, 0000005C
    5. :00401343 B906000000              mov ecx, 00000006
    6. :00401348 33C0                    xor eax, eax
    7. :0040134A 53                      push ebx
    8. :0040134B 55                      push ebp
    9. :0040134C 56                      push esi
    10. :0040134D 57                      push edi

    11. * Possible StringData Ref from Data Obj ->"HUAYUITDRNIARMOIDEMLAGOMG"
    12.                                   |
    13. :0040134E BE34304000              mov esi, 00403034
    14. :00401353 8D7C2410                lea edi, dword ptr [esp+10]
    15. :00401357 F3                      repz
    16. :00401358 A5                      movsd
    17. :00401359 66A5                    movsw
    18. :0040135B B907000000              mov ecx, 00000007
    19. :00401360 8D7C242C                lea edi, dword ptr [esp+2C]
    20. :00401364 F3                      repz
    21. :00401365 AB                      stosd
    22. :00401366 66AB                    stosw
    23. :00401368 B907000000              mov ecx, 00000007
    24. :0040136D 33C0                    xor eax, eax
    25. :0040136F 8D7C244C                lea edi, dword ptr [esp+4C]
    26. :00401373 8D5C244C                lea ebx, dword ptr [esp+4C]
    27. :00401377 F3                      repz
    28. :00401378 AB                      stosd
    29. :00401379 8B4C2470                mov ecx, dword ptr [esp+70]
    30. :0040137D 8D6C242C                lea ebp, dword ptr [esp+2C]
    31. :00401381 66AB                    stosw
    32. :00401383 8B442474                mov eax, dword ptr [esp+74]
    33. :00401387 8BD0                    mov edx, eax
    34. :00401389 2BD1                    sub edx, ecx
    35. :0040138B 03C8                    add ecx, eax
    36. :0040138D 52                      push edx
    37. :0040138E 51                      push ecx
    38. ////////中间省掉
    39. * Reference To: MSVCRT._strdup, Ord:01BFh
    40.                                   |
    41. :00401411 FF150C224000            Call dword ptr [0040220C]
    42. :00401417 83C404                  add esp, 00000004
    43. :0040141A 5F                      pop edi
    44. :0040141B 5E                      pop esi
    45. :0040141C 5D                      pop ebp
    46. :0040141D 5B                      pop ebx
    47. :0040141E 83C45C                  add esp, 0000005C
    48. :00401421 C3                      ret  //我是新手,以上算法不清楚,但猜想这一定                   //是注册码返回的地方
    复制代码

    接下用OD载入,在00401421处设置断点
    注册码果然在寄存器窗口显示出来了.

    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2018-6-20 16:25
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2007-1-31 14:31:04 | 显示全部楼层
    谢谢各位了,学习了很多东东。/:D /:D
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-1-31 15:14:33 | 显示全部楼层
    呵呵,单个测试不成功,估计是程序不完整!楼主给的是程序的一部分!
    wan的解答应该没错的,如果是单个程序,肯定是程序的问题的!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2018-6-20 16:25
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2007-1-31 15:25:00 | 显示全部楼层
    谁告诉我怎样写用刘健英注册机编写器生成一个另类注册机,主要是以下不知怎么填写

    中断地址为"00401421"

    [ 本帖最后由 4755 于 2007-1-31 15:37 编辑 ]

    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-1-31 16:25:22 | 显示全部楼层
    我上面那个作修改内存的的设置

    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-1-31 16:28:51 | 显示全部楼层
    原帖由 4755 于 2007-1-31 14:27 发表

    * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
    |:00401703(C), :0040170C(C)     //////错误是从这两个地方跳转来的
    |
    :004017AD 53                      push ebx
    :004017AE ...



    我为什么不成功阿?

    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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