首页
社区
课程
招聘
[求助]OD逆向一个软件的注册算法遇到的苦恼和困难,求教!
发表于: 2015-6-28 15:59 8741

[求助]OD逆向一个软件的注册算法遇到的苦恼和困难,求教!

2015-6-28 15:59
8741
最近一直在逆向附件,附件是我已经脱壳的执行文件,用OD一直想找到注册用户名和序列号的方法,并破解此软件,由于里面用到了RSA算法(一位大牛说的,我也是第一次逆向RSA算法),逆向中出现了很多的CALL,而且是一个CALL嵌套很多的CALL,并且这些CALL看不懂是什么意思,我对序列号使用Hardware Breakpoints,也是对查找注册用户名和序列号的逻辑地方毫无进展。
   目前我的进展是:
   1.004AF0EE  DEC EAX (即图片中“Register”按钮处理函数)
   
   2.序列号的长度要大于171,代码中会有一个比较,要求6倍的序列号长度要大于400(16进制)
   3.004AF191  CALL test.0047B0B0,
   这个函数是向系统注册表中创建键,并写入用户名和序列号值的
   4.004AF1A3  CALL test.0047B61C
     这个函数有两个参数,这两个参数都是系统内固定地址的数值,函数内部我能看懂的就是打开注册表,获取用户名和序列号的值,然后还有一些CALL没看懂
   5.地址004AF24A~004AF2D9这个区间
   是用来比对用户名黑名单和一个序列号的,如果在内名单内就跳转到错误处理程序地址: test.004AF3C3
     6.函数:004AE794
     应该是正确的序列号处理程序,因为在这里面有一个messagebox调用,有一些信息如下:
   004AE794  PUSH EBP
    004AEA97  PUSH ECX                     ; /<%s> => "11ccccccccccc9"
    004AEA98  PUSH test.0071263F           ; |Format = "This software is registered to %s."
    004AEA9D  MOV EAX,DWORD PTR SS:[EBP-20]; |
    004AEAA0  PUSH EAX                     ; |s
    004AEAA1  CALL <JMP.&USER32.wsprintfA> ; \wsprintfA
    这个信息是我鼠标右键查找出来的信息,但是不知道是在什么时候调用此函数,如果能够调用此函数就能够跟踪进去,并破解此软件了!

以上就是我这几天总结的一些逆向信息,但是无法找到用户名和序列号比对和加密的逻辑,很郁闷

请教各位大牛,如何找到加密的地方(这么多的CALL,到底怎么找啊!)?如何找到序列号比对的地方(我用Hardware Breakpoints一直没找到)?
敬请各位大牛指导!谢谢!附注:test是我调试时执行文件的名称,我给的附件中把执行文件的名字改为正确的本名了!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 133
活跃值: (471)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
那个是在 打开关于对话框 的时候调的,找注册流程,可以跳到004AF030这个函数,断下看看。
2015-6-28 17:37
0
雪    币: 1556
活跃值: (878)
能力值: ( LV9,RANK:320 )
在线值:
发帖
回帖
粉丝
3
继续加油:) OD弄不清楚试着用IDA吧
2015-6-28 20:31
0
雪    币: 75
活跃值: (105)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
    我上面说的1-5点都是在004AF030这个函数里面。
2015-6-28 20:37
0
雪    币: 75
活跃值: (105)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
加油好几天了!头昏昏,脑大大!
2015-6-28 20:43
0
雪    币: 4495
活跃值: (1561)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
看不懂,,不过,,还是支持楼主的精神。。
2015-6-28 21:40
0
雪    币: 2882
活跃值: (1267)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
8
nimei,山寨老毛桃都能广告做到这。。。真服了
2015-6-28 22:19
0
雪    币: 220
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
建议学习一下RSA算法。还可以查一下本软件都用了什么加密算法,可以定位到算法处。RSA有会有一个大数N,找找看
2015-6-28 23:00
0
雪    币: 20
活跃值: (42)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
如果只是为了破解软件,爆破最好,你不需要了解他的算法。如果是为了学飞算法来的,可以深入了解下算法的实现。
2015-6-29 05:04
0
雪    币: 75
活跃值: (105)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
    也想爆破,可是找不到序列号比对的地方,里面的函数嵌套太多了,也很复杂!另外存储用户名和序列号的地址在运行过程中会出现多个的情况!
2015-6-29 08:27
0
雪    币: 225
活跃值: (188)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
如果是RSA,看一下模的长度,如果超过512就放弃吧
2015-6-29 09:03
0
雪    币: 807
活跃值: (2248)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个函数是当你在点击“about”按钮的时候会执行到这里,当然,前提是要能通过一系列注册码检查。
004AE794  /.  55                         PUSH EBP
004AE795  |.  8BEC                       MOV EBP,ESP
004AE797  |.  83C4 AC                    ADD ESP,-54
004AE79A  |.  53                         PUSH EBX
004AE79B  |.  56                         PUSH ESI
004AE79C  |.  57                         PUSH EDI
004AE79D  |.  8945 B0                    MOV DWORD PTR SS:[EBP-50],EAX
004AE7A0  |.  B8 F4267100                MOV EAX,MagicISO.007126F4
004AE7A5  |.  E8 F68D1900                CALL MagicISO.006475A0
004AE7AA  |.  8B55 B0                    MOV EDX,DWORD PTR SS:[EBP-50]
004AE7AD  |.  8B0D A85A7500              MOV ECX,DWORD PTR DS:[755AA8]
004AE7B3  |.  81C1 E8070000              ADD ECX,7E8
004AE7B9  |.  52                         PUSH EDX                                             ; /Arg2
004AE7BA  |.  51                         PUSH ECX                                             ; |Arg1
004AE7BB  |.  E8 845E0300                CALL MagicISO.004E4644                               ; \MagicISO.004E4644
004AE7C0  |.  83C4 08                    ADD ESP,8
004AE7C3  |.  66:C745 C4 0800            MOV WORD PTR SS:[EBP-3C],8
004AE7C9  |.  BB 00040000                MOV EBX,400
004AE7CE  |.  6A 01                      PUSH 1
004AE7D0  |.  E8 1F34F5FF                CALL MagicISO.00401BF4
004AE7D5  |.  8BF0                       MOV ESI,EAX
004AE7D7  |.  59                         POP ECX
004AE7D8  |.  8975 F4                    MOV DWORD PTR SS:[EBP-C],ESI
004AE7DB  |.  85DB                       TEST EBX,EBX
004AE7DD  |.  C706 01000000              MOV DWORD PTR DS:[ESI],1
004AE7E3  |.  7F 0B                      JG SHORT MagicISO.004AE7F0
004AE7E5  |.  33C0                       XOR EAX,EAX
004AE7E7  |.  8945 F8                    MOV DWORD PTR SS:[EBP-8],EAX
004AE7EA  |.  33D2                       XOR EDX,EDX
004AE7EC  |.  89D3                       MOV EBX,EDX
004AE7EE  |.  EB 0A                      JMP SHORT MagicISO.004AE7FA
004AE7F0  |>  53                         PUSH EBX                                             ; /Arg1
004AE7F1  |.  E8 DE33F5FF                CALL MagicISO.00401BD4                               ; \MagicISO.00401BD4
004AE7F6  |.  59                         POP ECX
004AE7F7  |.  8945 F8                    MOV DWORD PTR SS:[EBP-8],EAX
004AE7FA  |>  895D FC                    MOV DWORD PTR SS:[EBP-4],EBX
004AE7FD  |.  FF45 D0                    INC DWORD PTR SS:[EBP-30]
004AE800  |.  33DB                       XOR EBX,EBX
004AE802  |.  66:C745 C4 1400            MOV WORD PTR SS:[EBP-3C],14
004AE808  |.  66:C745 C4 2000            MOV WORD PTR SS:[EBP-3C],20
004AE80E  |.  6A 01                      PUSH 1
004AE810  |.  E8 DF33F5FF                CALL MagicISO.00401BF4
004AE815  |.  8BF0                       MOV ESI,EAX
004AE817  |.  59                         POP ECX
004AE818  |.  8975 E8                    MOV DWORD PTR SS:[EBP-18],ESI
004AE81B  |.  85DB                       TEST EBX,EBX
004AE81D  |.  C706 01000000              MOV DWORD PTR DS:[ESI],1
004AE823  |.  7F 0B                      JG SHORT MagicISO.004AE830
004AE825  |.  33C0                       XOR EAX,EAX
004AE827  |.  8945 EC                    MOV DWORD PTR SS:[EBP-14],EAX
004AE82A  |.  33D2                       XOR EDX,EDX
004AE82C  |.  89D3                       MOV EBX,EDX
004AE82E  |.  EB 0A                      JMP SHORT MagicISO.004AE83A
004AE830  |>  53                         PUSH EBX                                             ; /Arg1
004AE831  |.  E8 9E33F5FF                CALL MagicISO.00401BD4                               ; \MagicISO.00401BD4
004AE836  |.  59                         POP ECX
004AE837  |.  8945 EC                    MOV DWORD PTR SS:[EBP-14],EAX
004AE83A  |>  895D F0                    MOV DWORD PTR SS:[EBP-10],EBX
004AE83D  |.  FF45 D0                    INC DWORD PTR SS:[EBP-30]
004AE840  |.  66:C745 C4 1400            MOV WORD PTR SS:[EBP-3C],14
004AE846  |.  C645 AF 00                 MOV BYTE PTR SS:[EBP-51],0                           <--- 注册标志初始化为“未注册”
004AE84A  |.  803D 08E96F00 01           CMP BYTE PTR DS:[6FE908],1 
004AE851  |.  0F85 73010000              JNZ MagicISO.004AE9CA
004AE857  |.  68 F0257100                PUSH MagicISO.007125F0                               ; /String2 = "Thomas Zauche"
004AE85C  |.  8B0D EC5C7500              MOV ECX,DWORD PTR DS:[755CEC]                        ; |
004AE862  |.  51                         PUSH ECX                                             ; |String1 => ""
004AE863  |.  E8 F2B22300                CALL <JMP.&KERNEL32.lstrcmpA>                        ; \lstrcmpA
004AE868  |.  85C0                       TEST EAX,EAX
004AE86A  |.  0F84 5A010000              JE MagicISO.004AE9CA
004AE870  |.  68 FE257100                PUSH MagicISO.007125FE                               ; /String2 = "softex team"
004AE875  |.  A1 EC5C7500                MOV EAX,DWORD PTR DS:[755CEC]                        ; |
004AE87A  |.  50                         PUSH EAX                                             ; |String1 => ""
004AE87B  |.  E8 DAB22300                CALL <JMP.&KERNEL32.lstrcmpA>                        ; \lstrcmpA
004AE880  |.  85C0                       TEST EAX,EAX
004AE882  |.  0F84 42010000              JE MagicISO.004AE9CA
004AE888  |.  68 0A267100                PUSH MagicISO.0071260A                               ; /String2 = "Steven Di Loreto"
004AE88D  |.  8B15 EC5C7500              MOV EDX,DWORD PTR DS:[755CEC]                        ; |
004AE893  |.  52                         PUSH EDX                                             ; |String1 => ""
004AE894  |.  E8 C1B22300                CALL <JMP.&KERNEL32.lstrcmpA>                        ; \lstrcmpA
004AE899  |.  85C0                       TEST EAX,EAX
004AE89B  |.  0F84 29010000              JE MagicISO.004AE9CA
004AE8A1  |.  68 1B267100                PUSH MagicISO.0071261B                               ; /String2 = "Myra Healy"
004AE8A6  |.  8B0D EC5C7500              MOV ECX,DWORD PTR DS:[755CEC]                        ; |
004AE8AC  |.  51                         PUSH ECX                                             ; |String1 => ""
004AE8AD  |.  E8 A8B22300                CALL <JMP.&KERNEL32.lstrcmpA>                        ; \lstrcmpA
004AE8B2  |.  85C0                       TEST EAX,EAX
004AE8B4  |.  0F84 10010000              JE MagicISO.004AE9CA
004AE8BA  |.  68 26267100                PUSH MagicISO.00712626                               ; /String2 = "Sven Gustavsen"
004AE8BF  |.  A1 EC5C7500                MOV EAX,DWORD PTR DS:[755CEC]                        ; |
004AE8C4  |.  50                         PUSH EAX                                             ; |String1 => ""
004AE8C5  |.  E8 90B22300                CALL <JMP.&KERNEL32.lstrcmpA>                        ; \lstrcmpA
004AE8CA  |.  85C0                       TEST EAX,EAX
004AE8CC  |.  0F84 F8000000              JE MagicISO.004AE9CA
004AE8D2  |.  6A 09                      PUSH 9                                               ; /Arg3 = 00000009
004AE8D4  |.  68 35267100                PUSH MagicISO.00712635                               ; |Arg2 = 00712635 ASCII "123456789"
004AE8D9  |.  8B15 F85C7500              MOV EDX,DWORD PTR DS:[755CF8]                        ; |
004AE8DF  |.  52                         PUSH EDX                                             ; |Arg1 => 010137FC
004AE8E0  |.  E8 C3881900                CALL MagicISO.006471A8                               ; \MagicISO.006471A8
004AE8E5  |.  83C4 0C                    ADD ESP,0C
004AE8E8  |.  85C0                       TEST EAX,EAX
004AE8EA  |.  0F84 DA000000              JE MagicISO.004AE9CA
004AE8F0  |.  8B0D EC5C7500              MOV ECX,DWORD PTR DS:[755CEC]
004AE8F6  |.  51                         PUSH ECX                                             ; /Arg1 => 010133EC
004AE8F7  |.  E8 F0D1FCFF                CALL MagicISO.0047BAEC                               ; \MagicISO.0047BAEC
004AE8FC  |.  59                         POP ECX
004AE8FD  |.  84C0                       TEST AL,AL
004AE8FF  |.  0F85 C5000000              JNZ MagicISO.004AE9CA
004AE905  |.  33C9                       XOR ECX,ECX
004AE907  |.  33FF                       XOR EDI,EDI
004AE909  |.  33F6                       XOR ESI,ESI
004AE90B  |.  A1 EC5C7500                MOV EAX,DWORD PTR DS:[755CEC]
004AE910  |.  8BD0                       MOV EDX,EAX
004AE912  |.  EB 3F                      JMP SHORT MagicISO.004AE953
004AE914  |>  3C 20                      /CMP AL,20
004AE916  |.  72 1C                      |JB SHORT MagicISO.004AE934
004AE918  |.  3C 22                      |CMP AL,22
004AE91A  |.  74 18                      |JE SHORT MagicISO.004AE934
004AE91C  |.  3C 27                      |CMP AL,27
004AE91E  |.  74 14                      |JE SHORT MagicISO.004AE934
004AE920  |.  3C 3A                      |CMP AL,3A
004AE922  |.  74 10                      |JE SHORT MagicISO.004AE934
004AE924  |.  3C 3F                      |CMP AL,3F
004AE926  |.  74 0C                      |JE SHORT MagicISO.004AE934
004AE928  |.  3C 2A                      |CMP AL,2A
004AE92A  |.  74 08                      |JE SHORT MagicISO.004AE934
004AE92C  |.  3C 2F                      |CMP AL,2F
004AE92E  |.  74 04                      |JE SHORT MagicISO.004AE934
004AE930  |.  3C 5C                      |CMP AL,5C
004AE932  |.  75 04                      |JNZ SHORT MagicISO.004AE938
004AE934  |>  33C9                       |XOR ECX,ECX
004AE936  |.  EB 21                      |JMP SHORT MagicISO.004AE959
004AE938  |>  A8 80                      |TEST AL,80
004AE93A  |.  75 04                      |JNZ SHORT MagicISO.004AE940
004AE93C  |.  B1 01                      |MOV CL,1
004AE93E  |.  EB 01                      |JMP SHORT MagicISO.004AE941
004AE940  |>  47                         |INC EDI
004AE941  |>  85FF                       |TEST EDI,EDI
004AE943  |.  75 08                      |JNZ SHORT MagicISO.004AE94D
004AE945  |.  81FE 80000000              |CMP ESI,80
004AE94B  |.  72 04                      |JB SHORT MagicISO.004AE951
004AE94D  |>  33C9                       |XOR ECX,ECX
004AE94F  |.  EB 08                      |JMP SHORT MagicISO.004AE959
004AE951  |>  46                         |INC ESI
004AE952  |.  42                         |INC EDX
004AE953  |>  8A02                        MOV AL,BYTE PTR DS:[EDX]
004AE955  |.  84C0                       |TEST AL,AL
004AE957  |.^ 75 BB                      \JNZ SHORT MagicISO.004AE914
004AE959  |>  80F9 01                    CMP CL,1
004AE95C  |.  75 6C                      JNZ SHORT MagicISO.004AE9CA
004AE95E  |.  8B15 F85C7500              MOV EDX,DWORD PTR DS:[755CF8]
004AE964  |.  52                         PUSH EDX                                             ; /String => ""
004AE965  |.  E8 08B22300                CALL <JMP.&KERNEL32.lstrlenA>                        ; \lstrlenA
004AE96A  |.  8BF0                       MOV ESI,EAX
004AE96C  |.  8BC6                       MOV EAX,ESI
004AE96E  |.  03C0                       ADD EAX,EAX
004AE970  |.  8D0440                     LEA EAX,DWORD PTR DS:[EAX+EAX*2]
004AE973  |.  3D 00040000                CMP EAX,400
004AE978  |.  72 50                      JB SHORT MagicISO.004AE9CA
004AE97A  |.  8B55 F8                    MOV EDX,DWORD PTR SS:[EBP-8]
004AE97D  |.  8B0D F85C7500              MOV ECX,DWORD PTR DS:[755CF8]
004AE983  |.  52                         PUSH EDX                                             ; /Arg3
004AE984  |.  56                         PUSH ESI                                             ; |Arg2
004AE985  |.  51                         PUSH ECX                                             ; |Arg1 => 010137FC
004AE986  |.  E8 D5D0FCFF                CALL MagicISO.0047BA60                               ; \MagicISO.0047BA60
004AE98B  |.  83C4 0C                    ADD ESP,0C
004AE98E  |.  3C 01                      CMP AL,1
004AE990  |.  75 38                      JNZ SHORT MagicISO.004AE9CA
004AE992  |.  A1 0CE96F00                MOV EAX,DWORD PTR DS:[6FE90C]
004AE997  |.  8D55 E8                    LEA EDX,DWORD PTR SS:[EBP-18]
004AE99A  |.  50                         PUSH EAX                                             ; /Arg5 => 0000008C
004AE99B  |.  68 7CE86F00                PUSH MagicISO.006FE87C                               ; |Arg4 = 006FE87C
004AE9A0  |.  52                         PUSH EDX                                             ; |Arg3
004AE9A1  |.  68 80000000                PUSH 80                                              ; |Arg2 = 00000080
004AE9A6  |.  8B4D F8                    MOV ECX,DWORD PTR SS:[EBP-8]                         ; |
004AE9A9  |.  51                         PUSH ECX                                             ; |Arg1
004AE9AA  |.  E8 61602000                CALL MagicISO.006B4A10                               ; \MagicISO.006B4A10
004AE9AF  |.  83C4 14                    ADD ESP,14
004AE9B2  |.  A1 EC5C7500                MOV EAX,DWORD PTR DS:[755CEC]
004AE9B7  |.  50                         PUSH EAX                                             ; /String2 => ""
004AE9B8  |.  8B55 EC                    MOV EDX,DWORD PTR SS:[EBP-14]                        ; |
004AE9BB  |.  42                         INC EDX                                              ; |
004AE9BC  |.  52                         PUSH EDX                                             ; |String1
004AE9BD  |.  E8 98B12300                CALL <JMP.&KERNEL32.lstrcmpA>                        ; \lstrcmpA
004AE9C2  |.  85C0                       TEST EAX,EAX
004AE9C4  |.  75 04                      JNZ SHORT MagicISO.004AE9CA
004AE9C6  |.  C645 AF 01                 MOV BYTE PTR SS:[EBP-51],1                           <--- 置已经注册标志
004AE9CA  |>  FF4D D0                    DEC DWORD PTR SS:[EBP-30]
004AE9CD  |.  8B45 E8                    MOV EAX,DWORD PTR SS:[EBP-18]
004AE9D0  |.  85C0                       TEST EAX,EAX
004AE9D2  |.  74 2D                      JE SHORT MagicISO.004AEA01
004AE9D4  |.  FF08                       DEC DWORD PTR DS:[EAX]
004AE9D6  |.  75 29                      JNZ SHORT MagicISO.004AEA01
004AE9D8  |.  8B55 E8                    MOV EDX,DWORD PTR SS:[EBP-18]
004AE9DB  |.  52                         PUSH EDX                                             ; /Arg1
004AE9DC  |.  E8 2732F5FF                CALL MagicISO.00401C08                               ; \MagicISO.00401C08
004AE9E1  |.  59                         POP ECX
004AE9E2  |.  33C9                       XOR ECX,ECX
004AE9E4  |.  894D E8                    MOV DWORD PTR SS:[EBP-18],ECX
004AE9E7  |.  837D EC 00                 CMP DWORD PTR SS:[EBP-14],0
004AE9EB  |.  74 14                      JE SHORT MagicISO.004AEA01
004AE9ED  |.  8B45 EC                    MOV EAX,DWORD PTR SS:[EBP-14]
004AE9F0  |.  50                         PUSH EAX                                             ; /Arg1
004AE9F1  |.  E8 EE31F5FF                CALL MagicISO.00401BE4                               ; \MagicISO.00401BE4
004AE9F6  |.  59                         POP ECX
004AE9F7  |.  33D2                       XOR EDX,EDX
004AE9F9  |.  8955 EC                    MOV DWORD PTR SS:[EBP-14],EDX
004AE9FC  |.  33C9                       XOR ECX,ECX
004AE9FE  |.  894D F0                    MOV DWORD PTR SS:[EBP-10],ECX
004AEA01  |>  66:C745 C4 1400            MOV WORD PTR SS:[EBP-3C],14
004AEA07  |.  FF4D D0                    DEC DWORD PTR SS:[EBP-30]
004AEA0A  |.  8B45 F4                    MOV EAX,DWORD PTR SS:[EBP-C]
004AEA0D  |.  85C0                       TEST EAX,EAX
004AEA0F  |.  74 2D                      JE SHORT MagicISO.004AEA3E
004AEA11  |.  FF08                       DEC DWORD PTR DS:[EAX]
004AEA13  |.  75 29                      JNZ SHORT MagicISO.004AEA3E
004AEA15  |.  8B55 F4                    MOV EDX,DWORD PTR SS:[EBP-C]
004AEA18  |.  52                         PUSH EDX                                             ; /Arg1
004AEA19  |.  E8 EA31F5FF                CALL MagicISO.00401C08                               ; \MagicISO.00401C08
004AEA1E  |.  59                         POP ECX
004AEA1F  |.  33C9                       XOR ECX,ECX
004AEA21  |.  894D F4                    MOV DWORD PTR SS:[EBP-C],ECX
004AEA24  |.  837D F8 00                 CMP DWORD PTR SS:[EBP-8],0
004AEA28  |.  74 14                      JE SHORT MagicISO.004AEA3E
004AEA2A  |.  8B45 F8                    MOV EAX,DWORD PTR SS:[EBP-8]
004AEA2D  |.  50                         PUSH EAX                                             ; /Arg1
004AEA2E  |.  E8 B131F5FF                CALL MagicISO.00401BE4                               ; \MagicISO.00401BE4
004AEA33  |.  59                         POP ECX
004AEA34  |.  33D2                       XOR EDX,EDX
004AEA36  |.  8955 F8                    MOV DWORD PTR SS:[EBP-8],EDX
004AEA39  |.  33C9                       XOR ECX,ECX
004AEA3B  |.  894D FC                    MOV DWORD PTR SS:[EBP-4],ECX
004AEA3E  |>  66:C745 C4 0000            MOV WORD PTR SS:[EBP-3C],0
004AEA44  |.  807D AF 01                 CMP BYTE PTR SS:[EBP-51],1                           <--- 判定是否注册
004AEA48  |.  0F85 D2000000              JNZ MagicISO.004AEB20                                <--- 未注册,跳走!
004AEA4E  |.  66:C745 C4 4400            MOV WORD PTR SS:[EBP-3C],44
004AEA54  |.  BB 00040000                MOV EBX,400
004AEA59  |.  6A 01                      PUSH 1
004AEA5B  |.  E8 9431F5FF                CALL MagicISO.00401BF4
004AEA60  |.  8BF0                       MOV ESI,EAX
004AEA62  |.  59                         POP ECX
004AEA63  |.  8975 DC                    MOV DWORD PTR SS:[EBP-24],ESI
004AEA66  |.  85DB                       TEST EBX,EBX
004AEA68  |.  C706 01000000              MOV DWORD PTR DS:[ESI],1
004AEA6E  |.  7F 0B                      JG SHORT MagicISO.004AEA7B
004AEA70  |.  33C0                       XOR EAX,EAX
004AEA72  |.  8945 E0                    MOV DWORD PTR SS:[EBP-20],EAX
004AEA75  |.  33D2                       XOR EDX,EDX
004AEA77  |.  89D3                       MOV EBX,EDX
004AEA79  |.  EB 0A                      JMP SHORT MagicISO.004AEA85
004AEA7B  |>  53                         PUSH EBX                                             ; /Arg1
004AEA7C  |.  E8 5331F5FF                CALL MagicISO.00401BD4                               ; \MagicISO.00401BD4
004AEA81  |.  59                         POP ECX
004AEA82  |.  8945 E0                    MOV DWORD PTR SS:[EBP-20],EAX
004AEA85  |>  895D E4                    MOV DWORD PTR SS:[EBP-1C],EBX
004AEA88  |.  8B0D EC5C7500              MOV ECX,DWORD PTR DS:[755CEC]
004AEA8E  |.  FF45 D0                    INC DWORD PTR SS:[EBP-30]
004AEA91  |.  66:C745 C4 5000            MOV WORD PTR SS:[EBP-3C],50
004AEA97  |.  51                         PUSH ECX                                             ; /<%s> => ""
004AEA98  |.  68 3F267100                PUSH MagicISO.0071263F                               ; |Format = "This software is registered to %s."
004AEA9D  |.  8B45 E0                    MOV EAX,DWORD PTR SS:[EBP-20]                        ; |
004AEAA0  |.  50                         PUSH EAX                                             ; |s
004AEAA1  |.  E8 E2B82300                CALL <JMP.&USER32.wsprintfA>                         ; \wsprintfA
004AEAA6  |.  66:C745 C4 5C00            MOV WORD PTR SS:[EBP-3C],5C
004AEAAC  |.  8B55 E0                    MOV EDX,DWORD PTR SS:[EBP-20]
004AEAAF  |.  83C4 0C                    ADD ESP,0C
004AEAB2  |.  8D45 D8                    LEA EAX,DWORD PTR SS:[EBP-28]
004AEAB5  |.  E8 96601A00                CALL MagicISO.00654B50
004AEABA  |.  FF45 D0                    INC DWORD PTR SS:[EBP-30]
004AEABD  |.  8B10                       MOV EDX,DWORD PTR DS:[EAX]
004AEABF  |.  8B45 B0                    MOV EAX,DWORD PTR SS:[EBP-50]
004AEAC2  |.  8B80 04030000              MOV EAX,DWORD PTR DS:[EAX+304]
004AEAC8  |.  E8 A7FF1500                CALL MagicISO.0060EA74
004AEACD  |.  FF4D D0                    DEC DWORD PTR SS:[EBP-30]
004AEAD0  |.  8D45 D8                    LEA EAX,DWORD PTR SS:[EBP-28]
004AEAD3  |.  BA 02000000                MOV EDX,2
004AEAD8  |.  E8 0F621A00                CALL MagicISO.00654CEC
004AEADD  |.  FF4D D0                    DEC DWORD PTR SS:[EBP-30]
004AEAE0  |.  8B45 DC                    MOV EAX,DWORD PTR SS:[EBP-24]
004AEAE3  |.  85C0                       TEST EAX,EAX
004AEAE5  |.  74 2D                      JE SHORT MagicISO.004AEB14
004AEAE7  |.  FF08                       DEC DWORD PTR DS:[EAX]
004AEAE9  |.  75 29                      JNZ SHORT MagicISO.004AEB14
004AEAEB  |.  8B55 DC                    MOV EDX,DWORD PTR SS:[EBP-24]
004AEAEE  |.  52                         PUSH EDX                                             ; /Arg1
004AEAEF  |.  E8 1431F5FF                CALL MagicISO.00401C08                               ; \MagicISO.00401C08
004AEAF4  |.  59                         POP ECX
004AEAF5  |.  33C9                       XOR ECX,ECX
004AEAF7  |.  894D DC                    MOV DWORD PTR SS:[EBP-24],ECX
004AEAFA  |.  837D E0 00                 CMP DWORD PTR SS:[EBP-20],0
004AEAFE  |.  74 14                      JE SHORT MagicISO.004AEB14
004AEB00  |.  8B45 E0                    MOV EAX,DWORD PTR SS:[EBP-20]
004AEB03  |.  50                         PUSH EAX                                             ; /Arg1
004AEB04  |.  E8 DB30F5FF                CALL MagicISO.00401BE4                               ; \MagicISO.00401BE4
004AEB09  |.  59                         POP ECX
004AEB0A  |.  33D2                       XOR EDX,EDX
004AEB0C  |.  8955 E0                    MOV DWORD PTR SS:[EBP-20],EDX
004AEB0F  |.  33C9                       XOR ECX,ECX
004AEB11  |.  894D E4                    MOV DWORD PTR SS:[EBP-1C],ECX
004AEB14  |>  66:C745 C4 5000            MOV WORD PTR SS:[EBP-3C],50
004AEB1A  |.  66:C745 C4 0000            MOV WORD PTR SS:[EBP-3C],0
004AEB20  |>  8B45 B4                    MOV EAX,DWORD PTR SS:[EBP-4C]
004AEB23  |.  64:A3 00000000             MOV DWORD PTR FS:[0],EAX
004AEB29  |.  5F                         POP EDI
004AEB2A  |.  5E                         POP ESI
004AEB2B  |.  5B                         POP EBX
004AEB2C  |.  8BE5                       MOV ESP,EBP
004AEB2E  |.  5D                         POP EBP
004AEB2F  \.  C3                         RETN


      这个程序比较变态,一共设置了25处注册码检查,这25处检查相互独立,每处自成一体,是程序在调用特定的功能时分别进行的,这就意味着如果要爆破,至少要“关照”到25个关键点。不才水平有限,玩不了算法,只能玩玩爆破,就是不知是否有留下“暗桩”,楼主可以测试一下看看。
上传的附件:
2015-6-29 14:38
0
雪    币: 75
活跃值: (105)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
老伙计能否指点一下其中的一个爆破点呢?
2015-6-29 15:52
0
雪    币: 807
活跃值: (2248)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
        很简单啦,每个点只需要把注册标志初始化成“已注册即可”:
【原始】:
004AE846  |.  C645 AF 00                 MOV BYTE PTR SS:[EBP-51],0                           <--- 注册标志初始化为“未注册”
【修改】:
004AE846  |.  C645 AF 01                 MOV BYTE PTR SS:[EBP-51],1                           <--- 注册标志初始化为“已注册”
2015-6-29 16:33
0
雪    币: 75
活跃值: (105)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
感谢大家的关注和帮助,这几天对算法的研究依然没有进展,基础不够,打算继续学习,放弃研究这个算法了!
2015-7-2 08:27
0
雪    币: 71
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
变态的编码~~~
2015-7-2 09:45
0
雪    币: 627
活跃值: (663)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
18
楼主PM了,再回一个。以前我的两个回复:
脱壳后,用OD无法调试程序,请教!
请问用OLLDBG怎么判定是RSA加密算法?

用我第一个回复里,替换了RSA Key的主程序进行调试,并用我提供的用户名和注册码,这样会保证整个流程是正确的。
[FONT="Courier"]006B4AF7  E8 A0FDFDFF      CALL    0069489C             ; RSA Decrypt
        0012F28C   01002FA8  |Arg1 = 01002FA8           ; E & N
        0012F290   0104E838  |Arg2 = 0104E838           ; pIn
        0012F294   00000080  |Arg3 = 00000080           ; InSize
        0012F298   010033AC  |Arg4 = 010033AC           ; pOut
        0012F29C   0012F2AC  \Arg5 = 0012F2AC           ; pOutSize[/FONT]

楼主可能需要加强基础知识的学习,有个过程。
不应尝试“爆破”;换Key是最安全的。

RSA本身没什么可逆的,公开的算法。
是的,它的Base64编码、解码有点另类,花了我一些时间。
2015-7-2 10:39
0
游客
登录 | 注册 方可回帖
返回
//