Nisy 发表于 2008-6-5 16:56:15

Internet Download Manager 简单分析

小Q下午给的一个下载工具:Internet Download Manager不清楚怎么用

官方:http://www.internetdownloadmanager.com/
Download:http://www.internetdownloadmanager.com/idman512.exe

注册后将信息保存到注册表中:

Windows Registry Editor Version 5.00


"FName"="Nisy"
"LName"="Bbs.ChinaPYG.CoM"
"Email"="[email protected]"
"Serial"="11111-22222-33333-44444"

KEY格式是这样的:
00426ED1   .83F9 17          CMP ECX,17
00426ED4   .75 1C            JNZ SHORT IDMan.00426EF2
00426ED6   .807D 8D 2D       CMP BYTE PTR SS:,2D
00426EDA   .75 16            JNZ SHORT IDMan.00426EF2
00426EDC   .807D 93 2D       CMP BYTE PTR SS:,2D
00426EE0   .75 10            JNZ SHORT IDMan.00426EF2
00426EE2   .807D 99 2D       CMP BYTE PTR SS:,2D
00426EE6   .75 0A            JNZ SHORT IDMan.00426EF2
00426EE8   .C705 443C5A00 00>MOV DWORD PTR DS:,0                     ;下方对这个0还做判断

程序启动的时候有两次调用注册信息:

00426CA0      55               PUSH EBP                                          ;01
00426CA1      8BEC             MOV EBP,ESP

0042D2A0      55               PUSH EBP                                          ;02
0042D2A1      8BEC             MOV EBP,ESP

但验证有点奇怪,一会我继续搞搞,这两处调用都需要返回数据为EAX=0,比较方法有点象那个字体试衣间:

第一处:

0042D842      8DB5 50FEFFFF    LEA ESI,DWORD PTR SS:                  ;把这里修改为
0042D848   .8D45 94          LEA EAX,DWORD PTR SS:
0042D84B      8A10             MOV DL,BYTE PTR DS:                        ;以下是对两组字符串做比较
0042D84D   .8A1E             MOV BL,BYTE PTR DS:
0042D84F   .8ACA             MOV CL,DL
0042D851   .3AD3             CMP DL,BL
0042D853   .75 1E            JNZ SHORT IDMan.0042D873
0042D855   .84C9             TEST CL,CL
0042D857   .74 16            JE SHORT IDMan.0042D86F
0042D859      8A50 01          MOV DL,BYTE PTR DS:
0042D85C   .8A5E 01          MOV BL,BYTE PTR DS:
0042D85F   .8ACA             MOV CL,DL
0042D861   .3AD3             CMP DL,BL
0042D863   .75 0E            JNZ SHORT IDMan.0042D873
0042D865   .83C0 02          ADD EAX,2
0042D868   .83C6 02          ADD ESI,2
0042D86B   .84C9             TEST CL,CL
0042D86D   .^ 75 DC            JNZ SHORT IDMan.0042D84B
0042D86F   >33C0             XOR EAX,EAX
0042D871   .EB 05            JMP SHORT IDMan.0042D878
0042D873      1BC0             SBB EAX,EAX
0042D875   .83D8 FF          SBB EAX,-1
0042D878   >85C0             TEST EAX,EAX
0042D87A   .75 25            JNZ SHORT IDMan.0042D8A1
0042D87C   .8D8D 6CFAFFFF    LEA ECX,DWORD PTR SS:
0042D882   .C745 FC FFFFFFFF MOV DWORD PTR SS:,-1
0042D889   .E8 C2810700      CALL IDMan.004A5A50
0042D88E   .33C0             XOR EAX,EAX                                       ;这里就返回EAX=0了
0042D890   .8B4D F4          MOV ECX,DWORD PTR SS:
0042D893   .64:890D 00000000 MOV DWORD PTR FS:,ECX
0042D89A   .5F               POP EDI
0042D89B   .5E               POP ESI
0042D89C   .5B               POP EBX
0042D89D   .8BE5             MOV ESP,EBP
0042D89F   .5D               POP EBP
0042D8A0   .C3               RETN

第二处:

0042762E      8DB5 88FEFFFF    LEA ESI,DWORD PTR SS:                  ;这里修改为
00427634      8D45 88          LEA EAX,DWORD PTR SS:


提取一个特征码好了 方便以后的定位:8D B5 ?? ?? FF FF 8D 45

small-q 发表于 2008-6-5 17:02:23

呵呵,占楼,以后补充信息!!/:good

Luckly 发表于 2008-6-5 17:33:10

IDM... 这个很好用...

pentacle 发表于 2008-6-5 17:53:01

好像有网络验证的。。用过。。后来因为破解的失败就没用过了。。
有迅雷。。这个也懒的用。。

Nisy 发表于 2008-6-5 18:07:05

原帖由 pentacle 于 2008-6-5 17:53 发表 https://www.chinapyg.com/images/common/back.gif
好像有网络验证的。。用过。。后来因为破解的失败就没用过了。。
有迅雷。。这个也懒的用。。

没看到网络验证呀 ~~ 小Q给了我一个国外的补丁 那个补丁是这样的

将这两个CALL直接 XOR EAX,EAX RETN

最后修改一个字节 使注册那个按钮成为灰钮 那个字节不知道是用怎么找到的

ljfu 发表于 2008-6-5 18:20:49

谢谢分享,学习一下!

Luckly 发表于 2008-6-5 18:22:41

原帖由 pentacle 于 2008-6-5 17:53 发表 https://www.chinapyg.com/images/common/back.gif
好像有网络验证的。。用过。。后来因为破解的失败就没用过了。。
有迅雷。。这个也懒的用。。

的确是有网络验证的....Nisy兄再看看...

Nisy 发表于 2008-6-5 19:33:37

原帖由 Luckly 于 2008-6-5 18:22 发表 https://www.chinapyg.com/images/common/back.gif


的确是有网络验证的....Nisy兄再看看...


网络验证的症状是什么 我这里没有反应呀 /:L调整日期后照旧可以使用

冷血书生 发表于 2008-6-5 20:08:40

我记得黑防某期有这个软件的算法分析!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Luckly 发表于 2008-6-5 21:06:59

http://www.pediy.com/bbshtml/BBS6/pediy6139.htm

找到了3.15的算法.还是03年的东西...汗..参考.标 题:与RC加密算法的第一次亲密接触  
发信人:newlaos
时 间:2003/06/30 10:46am
详细信息:


软件信息
========
软件名称:Internet Download Manager
软件版本:3.15
软件大小:833KB
应用平台:Windows 9x/Me/2k/XP
下载地址:http://www.internetdownloadmanager.com/idman315.exe

填入注册码部分的算法比较简单,考虑篇幅这里就不说了,只说它的重启和RC加密算法
1、

"idmvers"="3.16 Trial"                <===体验版,意思是说不是正式版了
"Serial"="ABCDE-GHIJK-MNOPQ-STUVW"

2、软件一见到注册表里的Serial键值,立马就报是60天试用版,肯定有问题(估计只是在体验版里加的)
"Serial"="ABCDE-GHIJK-MNOPQ-STUVW"


3、但是,程序里依然有核心校验部分(而且用的是RC的加密算法)
0041249F   . 68 A0674C00    PUSH IDMAN.004C67A0                      ; |valueName = "Serial"
004124A4   . 897D FC      MOV DWORD PTR SS:,EDI             ; |
004124A7   . 52             PUSH EDX                                 ; |hKey => 0
004124A8   . 897D EC      MOV DWORD PTR SS:,EDI            ; |
004124AB   . C645 FC 01   MOV BYTE PTR SS:,1                ; |
004124AF   . C685 5CFFFFFF >MOV BYTE PTR SS:,0               ; |
004124B6   . C645 B0 00   MOV BYTE PTR SS:,0               ; |
004124BA   . 895D E8      MOV DWORD PTR SS:,EBX            ; |
004124BD   . FFD6         CALL ESI                                 ; \RegQueryvalueExA
004124BF   . 85C0         TEST EAX,EAX
004124C1   . 75 1D          JNZ SHORT IDMAN.004124E0
004124C3   . 8D85 5CFFFFFFLEA EAX,DWORD PTR SS:         <===在这里可以看到注册码
004124C9   . 50             PUSH EAX                                 ; /Arg1
004124CA   . E8 21050000    CALL IDMAN.004129F0         <===跟进   ; \IDMAN.004129F0
004124CF   . 83C4 04      ADD ESP,4
004124D2   . 84C0         TEST AL,AL   <===要想成功,则AL必须为0
004124D4   . 75 0A          JNZ SHORT IDMAN.004124E0
004124D6   . C745 EC 010000>MOV DWORD PTR SS:,1
004124DD   . 8B7D EC      MOV EDI,DWORD PTR SS:
004124E0   > A1 9CB74D00    MOV EAX,DWORD PTR DS:

---------------004124CA CALL IDMAN.004129F0 跟进----------------
004129F0/$ 55             PUSH EBP
004129F1|. 8BEC         MOV EBP,ESP
004129F3|. 6A FF          PUSH -1
004129F5|. 68 F8CD4900    PUSH IDMAN.0049CDF8                               ;SE handler installation
004129FA|. 64:A1 00000000 MOV EAX,DWORD PTR FS:
00412A00|. 50             PUSH EAX
00412A01|. 64:8925 000000>MOV DWORD PTR FS:,ESP
00412A08|. 83EC 58      SUB ESP,58
00412A0B|. 8B55 08      MOV EDX,DWORD PTR SS:
00412A0E|. 53             PUSH EBX
00412A0F|. 56             PUSH ESI
00412A10|. 57             PUSH EDI
00412A11|. 8BFA         MOV EDI,EDX
00412A13|. 83C9 FF      OR ECX,FFFFFFFF
00412A16|. 33C0         XOR EAX,EAX
00412A18|. 33DB         XOR EBX,EBX
00412A1A|. F2:AE          REPNE SCAS BYTE PTR ES:
00412A1C|. F7D1         NOT ECX
00412A1E|. 49             DEC ECX
00412A1F|. 8965 F0      MOV DWORD PTR SS:,ESP
00412A22|. 83F9 32      CMP ECX,32
00412A25|. 895D FC      MOV DWORD PTR SS:,EBX
00412A28|. 0F87 B0010000JA IDMAN.00412BDE
00412A2E|. B9 0D000000    MOV ECX,0D
00412A33|. 8D7D 9C      LEA EDI,DWORD PTR SS:
00412A36|. F3:AB          REP STOS DWORD PTR ES:
00412A38|. 8BFA         MOV EDI,EDX
00412A3A|. 83C9 FF      OR ECX,FFFFFFFF
00412A3D|. F2:AE          REPNE SCAS BYTE PTR ES:
00412A3F|. F7D1         NOT ECX
00412A41|. 8D75 9C      LEA ESI,DWORD PTR SS:
00412A44|. 2BF9         SUB EDI,ECX
00412A46|. 8BD6         MOV EDX,ESI
00412A48|. 8BC1         MOV EAX,ECX
00412A4A|. 8BF7         MOV ESI,EDI
00412A4C|. 8BFA         MOV EDI,EDX
00412A4E|. C1E9 02      SHR ECX,2
00412A51|. F3:A5          REP MOVS DWORD PTR ES:,DWORD PTR DS:
00412A53|. 8BC8         MOV ECX,EAX
00412A55|. 83E1 03      AND ECX,3
00412A58|. F3:A4          REP MOVS BYTE PTR ES:,BYTE PTR DS:
00412A5A|. 8D4D EC      LEA ECX,DWORD PTR SS:
00412A5D|. E8 AE9B0200    CALL IDMAN.0043C610
00412A62|. BF 64734C00    MOV EDI,IDMAN.004C7364                            ;ASCII "506938841"
00412A67|. 83C9 FF      OR ECX,FFFFFFFF
00412A6A|. 33C0         XOR EAX,EAX
00412A6C|. C645 FC 01   MOV BYTE PTR SS:,1
00412A70|. F2:AE          REPNE SCAS BYTE PTR ES:
00412A72|. 8B7D 08      MOV EDI,DWORD PTR SS:
00412A75|. F7D1         NOT ECX
00412A77|. 49             DEC ECX
00412A78|. 51             PUSH ECX
00412A79|. 83C9 FF      OR ECX,FFFFFFFF
00412A7C|. F2:AE          REPNE SCAS BYTE PTR ES:
00412A7E|. F7D1         NOT ECX
00412A80|. 49             DEC ECX
00412A81|. 68 64734C00    PUSH IDMAN.004C7364                               ;ASCII "506938841"(估计就是密钥)
00412A86|. 8D45 9C      LEA EAX,DWORD PTR SS:
00412A89|. 51             PUSH ECX
00412A8A|. 50             PUSH EAX               <===EAX="ABCDE-GHIJK-MNOPQ-STUVW"(假注册码)
00412A8B|. 8D4D EC      LEA ECX,DWORD PTR SS:
00412A8E|. E8 0D9F0200    CALL IDMAN.0043C9A0      <===一个很关键的CALL,对数据加密的CALL(用的RC2的加密方式)
00412A93|. B2 C6          MOV DL,0C6
00412A95|. B9 11000000    MOV ECX,11
00412A9A|. 8D7D D8      LEA EDI,DWORD PTR SS:
00412A9D|. 8D75 9C      LEA ESI,DWORD PTR SS:<===ESI为加密后的数据
00412AA0|. 33C0         XOR EAX,EAX
00412AA2|. C645 D8 2B   MOV BYTE PTR SS:,2B
00412AA6|. C645 D9 52   MOV BYTE PTR SS:,52
00412AAA|. C645 DA D1   MOV BYTE PTR SS:,0D1
00412AAE|. C645 DB 9E   MOV BYTE PTR SS:,9E
00412AB2|. C645 DC 8A   MOV BYTE PTR SS:,8A
00412AB6|. C645 DD 82   MOV BYTE PTR SS:,82
00412ABA|. C645 DE DE   MOV BYTE PTR SS:,0DE
00412ABE|. C645 DF EB   MOV BYTE PTR SS:,0EB
00412AC2|. C645 E0 EE   MOV BYTE PTR SS:,0EE
00412AC6|. C645 E1 62   MOV BYTE PTR SS:,62
00412ACA|. C645 E2 A4   MOV BYTE PTR SS:,0A4
00412ACE|. 8855 E3      MOV BYTE PTR SS:,DL
00412AD1|. C645 E4 84   MOV BYTE PTR SS:,84
00412AD5|. C645 E5 99   MOV BYTE PTR SS:,99
00412AD9|. C645 E6 8F   MOV BYTE PTR SS:,8F
00412ADD|. C645 E7 1F   MOV BYTE PTR SS:,1F
00412AE1|. 885D E8      MOV BYTE PTR SS:,BL
00412AE4|. F3:A6          REPE CMPS BYTE PTR ES:,BYTE PTR DS:
<===ESI为我们注册码加密后的结果,EDI就是上面的内定列表:(两者要相等)
********************************************
0074DDD42B 52 D1 9E 8A 82 DE EB+R褳妭揠
0074DDDCEE 62 A4 C6 84 99 8F 1F頱て剻?
********************************************
00412AE6|. 0F84 E7000000JE IDMAN.00412BD3
00412AEC|. B0 BE          MOV AL,0BE
00412AEE|. 8855 E1      MOV BYTE PTR SS:,DL
00412AF1|. B9 19000000    MOV ECX,19
00412AF6|. 8D7D D0      LEA EDI,DWORD PTR SS:
00412AF9|. 8D75 9C      LEA ESI,DWORD PTR SS:
00412AFC|. 33D2         XOR EDX,EDX
00412AFE|. C645 D0 92   MOV BYTE PTR SS:,92
00412B02|. C645 D1 F5   MOV BYTE PTR SS:,0F5
00412B06|. C645 D2 25   MOV BYTE PTR SS:,25
00412B0A|. C645 D3 CD   MOV BYTE PTR SS:,0CD
00412B0E|. C645 D4 78   MOV BYTE PTR SS:,78
00412B12|. 8845 D5      MOV BYTE PTR SS:,AL
00412B15|. C645 D6 4A   MOV BYTE PTR SS:,4A
00412B19|. C645 D7 04   MOV BYTE PTR SS:,4
00412B1D|. C645 D8 6A   MOV BYTE PTR SS:,6A
00412B21|. C645 D9 FF   MOV BYTE PTR SS:,0FF
00412B25|. C645 DA A3   MOV BYTE PTR SS:,0A3
00412B29|. C645 DB 2C   MOV BYTE PTR SS:,2C
00412B2D|. C645 DC 9C   MOV BYTE PTR SS:,9C
00412B31|. C645 DD 96   MOV BYTE PTR SS:,96
00412B35|. C645 DE 28   MOV BYTE PTR SS:,28
00412B39|. C645 DF B0   MOV BYTE PTR SS:,0B0
00412B3D|. C645 E0 26   MOV BYTE PTR SS:,26
00412B41|. C645 E2 A6   MOV BYTE PTR SS:,0A6
00412B45|. C645 E3 D5   MOV BYTE PTR SS:,0D5
00412B49|. C645 E4 D8   MOV BYTE PTR SS:,0D8
00412B4D|. C645 E5 E3   MOV BYTE PTR SS:,0E3
00412B51|. C645 E6 EF   MOV BYTE PTR SS:,0EF
00412B55|. C645 E7 07   MOV BYTE PTR SS:,7
00412B59|. 885D E8      MOV BYTE PTR SS:,BL
00412B5C|. F3:A6          REPE CMPS BYTE PTR ES:,BYTE PTR DS:
<===ESI为我们注册码加密后的结果,EDI就是上面的内定列表:(两者要相等)
********************************************
0074DDCC92 F5 25 CD 78 BE 4A 04掯%蛒綣
0074DDD46A FF A3 2C 9C 96 28 B0j
页: [1] 2
查看完整版本: Internet Download Manager 简单分析