飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5590|回复: 2

[原创] Batch DOCX to DOC Converter 2010.2.531.1404暴破

[复制链接]

该用户从未签到

发表于 2010-6-1 21:22:47 | 显示全部楼层 |阅读模式
本帖最后由 ifox 于 2010-6-1 21:28 编辑

这个公司的其他各个软件,修改方法类似,有兴趣的自己分析其他的,对比下不同的地方。

http://batchwork.com/en/doc2doc/download.htm
刚去站点看了下到1407了,其实修改点和方法一样。


未注册版本,生成的文件名带“- Unlicensed”字样,OD载入后直接找“- Unlicensed”字样找不到,程序是运行中才把相关字符串资源释放出来,不如直接C32ASM查找。
定位到下面的代码:

0048B67F  |.  E8 0043FEFF   call    0046F984                         ;  是否注册授权,核心CALL,跟进
0048B684  |.  84C0          test    al, al
0048B686  |.  75 21         jnz     short 0048B6A9
0048B688  |.  8D55 F0       lea     edx, dword ptr [ebp-10]
0048B68B  |.  8BC3          mov     eax, ebx
0048B68D  |.  E8 8A17FCFF   call    0044CE1C
0048B692  |.  8D45 F0       lea     eax, dword ptr [ebp-10]
0048B695  |.  BA 04B74800   mov     edx, 0048B704                    ;  ASCII " - Unlicensed"
0048B69A  |.  E8 3D96F7FF   call    00404CDC
0048B69F  |.  8B55 F0       mov     edx, dword ptr [ebp-10]
0048B6A2  |.  8BC3          mov     eax, ebx
0048B6A4  |.  E8 A317FCFF   call    0044CE4C

0046F984有多个地方调用,是注册与否的部分判断调用,分析下,直接处理如下:

=========================================================
跟踪调试发现未注册则返回eax=0,因此我们只需要在这里修改入口代码如下:

0046F984      33C0          xor     eax, eax                         ;  注册判断,直接返回EAX=1,启动注册,关于显示搞定。
0046F986      B0 01         mov     al, 1
0046F988      C3            retn

相关代码如下:
0046F984  /$  55            push    ebp                              ;  注册相关判断,本地调用来自 0046FD07, 0046FE07, 004702B5, 00488EDD, 00488F12, 00489066, 004892DF, 0048AEAD, 0048AEC9, 0048B67F
0046F985  |.  8BEC          mov     ebp, esp
0046F987  |.  6A 00         push    0
0046F989  |.  6A 00         push    0
0046F98B  |.  53            push    ebx
0046F98C  |.  8BD8          mov     ebx, eax
0046F98E  |.  33C0          xor     eax, eax
0046F990  |.  55            push    ebp
0046F991  |.  68 02FA4600   push    0046FA02
0046F996  |.  64:FF30       push    dword ptr fs:[eax]
0046F999  |.  64:8920       mov     dword ptr fs:[eax], esp
0046F99C  |.  8D4D FC       lea     ecx, dword ptr [ebp-4]
0046F99F  |.  BA 18FA4600   mov     edx, 0046FA18
0046F9A4  |.  8B83 4C040000 mov     eax, dword ptr [ebx+44C]
0046F9AA  |.  E8 95D5FAFF   call    0041CF44
0046F9AF  |.  837D FC 00    cmp     dword ptr [ebp-4], 0
0046F9B3  |.  75 15         jnz     short 0046F9CA
0046F9B5  |.  B9 24FA4600   mov     ecx, 0046FA24
0046F9BA  |.  BA 18FA4600   mov     edx, 0046FA18
0046F9BF  |.  8B83 4C040000 mov     eax, dword ptr [ebx+44C]
0046F9C5  |.  E8 52DDFAFF   call    0041D71C
0046F9CA  |>  8D4D F8       lea     ecx, dword ptr [ebp-8]
0046F9CD  |.  BA 18FA4600   mov     edx, 0046FA18
0046F9D2  |.  8B83 4C040000 mov     eax, dword ptr [ebx+44C]
0046F9D8  |.  E8 67D5FAFF   call    0041CF44
0046F9DD  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
0046F9E0  |.  E8 8399F9FF   call    00409368
0046F9E5  |.  8BD8          mov     ebx, eax
0046F9E7  |.  33C0          xor     eax, eax
0046F9E9  |.  5A            pop     edx
0046F9EA  |.  59            pop     ecx
0046F9EB  |.  59            pop     ecx
0046F9EC  |.  64:8910       mov     dword ptr fs:[eax], edx
0046F9EF  |.  68 09FA4600   push    0046FA09
0046F9F4  |>  8D45 F8       lea     eax, dword ptr [ebp-8]
0046F9F7  |.  BA 02000000   mov     edx, 2
0046F9FC  |.  E8 3350F9FF   call    00404A34
0046FA01  \.  C3            retn
0046FA02   .^ E9 BD48F9FF   jmp     004042C4
0046FA07   .^ EB EB         jmp     short 0046F9F4
0046FA09   .  8BC3          mov     eax, ebx
0046FA0B   .  5B            pop     ebx
0046FA0C   .  59            pop     ecx
0046FA0D   .  59            pop     ecx
0046FA0E   .  5D            pop     ebp
0046FA0F   .  C3            retn

====================================================
修改后保存为新程序,然后转换DOC文件,发现转出的文件在页眉有水印“Generated by Unregistered Batch DOC & DOCX Converter 2010.2.531.1404, please register!”

直接查找字符参考找不到此字符串,经过动态跟踪调试发现作者在软件中对字符串进行了乱序存储,然后再动态组合成水印。

00490758      55            push    ebp
00490759      8BEC          mov     ebp, esp
0049075B   .  33C0          xor     eax, eax
0049075D   .  55            push    ebp
0049075E   .  68 17084900   push    00490817
00490763   .  64:FF30       push    dword ptr fs:[eax]
00490766   .  64:8920       mov     dword ptr fs:[eax], esp
00490769   .  832D D8754900>sub     dword ptr [4975D8], 1
00490770      0F83 93000000 jnb     00490809                        ;直接跳走即可
00490776   .  B2 01         mov     dl, 1
00490778   .  A1 00BE4600   mov     eax, dword ptr [46BE00]
0049077D   .  E8 3E33F7FF   call    00403AC0
00490782   .  BA 01000000   mov     edx, 1
00490787   .  E8 60BAFDFF   call    0046C1EC
0049078C   .  A3 DC754900   mov     dword ptr [4975DC], eax
00490791   .  B8 E0754900   mov     eax, 004975E0
00490796   .  BA 28084900   mov     edx, 00490828                    ;   t,senyln! %er sies ddresigarrtepese geer %betaug
0049079B   .  E8 C442F7FF   call    00404A64
004907A0   .  BA 01000000   mov     edx, 1
004907A5   .  A1 DC754900   mov     eax, dword ptr [4975DC]
004907AA   .  E8 3DBAFDFF   call    0046C1EC
004907AF   .  50            push    eax
004907B0   .  6A 01         push    1
004907B2   .  A1 E0754900   mov     eax, dword ptr [4975E0]
004907B7   .  E8 1445F7FF   call    00404CD0
004907BC   .  8BC8          mov     ecx, eax                         ; |
004907BE   .  BA E0754900   mov     edx, 004975E0                    ; |
004907C3   .  A1 00BE4600   mov     eax, dword ptr [46BE00]          ; |
004907C8   .  E8 37BBFDFF   call    0046C304                         ; \doc2doc.0046C304
004907CD   .  B8 E4754900   mov     eax, 004975E4
004907D2   .  BA 64084900   mov     edx, 00490864                    ;  inscduenle
004907D7   .  E8 8842F7FF   call    00404A64
004907DC   .  BA 01000000   mov     edx, 1
004907E1   .  A1 DC754900   mov     eax, dword ptr [4975DC]
004907E6   .  E8 01BAFDFF   call    0046C1EC
004907EB   .  50            push    eax
004907EC   .  6A 01         push    1
004907EE   .  A1 E4754900   mov     eax, dword ptr [4975E4]
004907F3   .  E8 D844F7FF   call    00404CD0
004907F8   .  8BC8          mov     ecx, eax                         ; |
004907FA   .  BA E4754900   mov     edx, 004975E4                    ; |
004907FF   .  A1 00BE4600   mov     eax, dword ptr [46BE00]          ; |
00490804   .  E8 FBBAFDFF   call    0046C304                         ; \doc2doc.0046C304
00490809   >  33C0          xor     eax, eax

=========================================================================================
进行批量转换时,出现“skipped,please register!”提示,转换失败,同样是乱序后的字符,直接C32ASM找吧,有两处:

00470568  |.  E8 93BCFFFF   call    0046C200
0047056D  |.  83F8 03       cmp     eax, 3
00470570  |.  75 7E         jnz     short 004705F0
00470572  |.  807B 68 00    cmp     byte ptr [ebx+68], 0
00470576  |.  75 78         jnz     short 004705F0
00470578  |.  8B43 44       mov     eax, dword ptr [ebx+44]
0047057B  |.  8B40 08       mov     eax, dword ptr [eax+8]
0047057E  |.  84C0          test    al, al
00470580      74 6E         je      short 004705F0                   ;这里跳或者上面条都行。   
00470582  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
00470585  |.  BA 3C064700   mov     edx, 0047063C                    ;  rs tdili,s pekpgeaees!pre
0047058A  |.  E8 1945F9FF   call    00404AA8
0047058F  |.  8B43 44       mov     eax, dword ptr [ebx+44]
---------------------------------------------------------------------
00470B60  /$  55            push    ebp
00470B61  |.  8BEC          mov     ebp, esp
00470B63  |.  83C4 EC       add     esp, -14
00470B66  |.  53            push    ebx
00470B67  |.  56            push    esi
00470B68  |.  33DB          xor     ebx, ebx
00470B6A  |.  895D FC       mov     dword ptr [ebp-4], ebx
00470B6D  |.  8BF1          mov     esi, ecx
00470B6F  |.  33C0          xor     eax, eax
00470B71  |.  55            push    ebp
00470B72  |.  68 120C4700   push    00470C12
00470B77  |.  64:FF30       push    dword ptr fs:[eax]
00470B7A  |.  64:8920       mov     dword ptr fs:[eax], esp
00470B7D  |.  84D2          test    dl, dl
00470B7F      74 46         je      short 00470BC7                   ;跳走
00470B81  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
00470B84  |.  BA 280C4700   mov     edx, 00470C28                    ;  rs tdili,s pekpgeaees!pre
00470B89  |.  E8 1A3FF9FF   call    00404AA8
00470B8E  |.  8B5D FC       mov     ebx, dword ptr [ebp-4]
00470B91  |.  85DB          test    ebx, ebx
00470B93  |.  74 05         je      short 00470B9A
00470B95  |.  83EB 04       sub     ebx, 4






==========================================================================================
转换的文件名前有"--"字符,找创建文件的相关内容

00470946   .  E8 F18DF9FF   call    0040973C
0047094B   .  84C0          test    al, al
0047094D   .  75 1B         jnz     short 0047096A                   ;创建文件是否成功判断
0047094F   .  8D45 C8       lea     eax, dword ptr [ebp-38]
00470952   .  8B4D FC       mov     ecx, dword ptr [ebp-4]
00470955   .  BA 7C0A4700   mov     edx, 00470A7C                    ;  createdir failed:
0047095A   .  E8 C143F9FF   call    00404D20
0047095F   .  8B55 C8       mov     edx, dword ptr [ebp-38]
00470962   .  8B45 F4       mov     eax, dword ptr [ebp-C]
00470965   .  E8 AAC3FFFF   call    0046CD14
0047096A   >  8B45 F8       mov     eax, dword ptr [ebp-8]
0047096D   .  8078 68 00    cmp     byte ptr [eax+68], 0
00470971      75 30         jnz     short 004709A3                   ;非注册就在生成的文件名前+上"--"字符串,跳走即可。
00470973   .  FF75 FC       push    dword ptr [ebp-4]
00470976   .  68 980A4700   push    00470A98                         ;  -
0047097B   .  FF35 E4754900 push    dword ptr [4975E4]
00470981   .  68 980A4700   push    00470A98                         ;  -
00470986   .  8D55 C4       lea     edx, dword ptr [ebp-3C]
00470989   .  8B45 08       mov     eax, dword ptr [ebp+8]
0047098C   .  8B00          mov     eax, dword ptr [eax]
0047098E   .  E8 7191F9FF   call    00409B04
00470993   .  FF75 C4       push    dword ptr [ebp-3C]
00470996   .  8B45 08       mov     eax, dword ptr [ebp+8]
00470999   .  BA 05000000   mov     edx, 5
0047099E   .  E8 F143F9FF   call    00404D94
004709A3   >  8B45 08       mov     eax, dword ptr [ebp+8]
004709A6   .  8B00          mov     eax, dword ptr [eax]
004709A8   .  E8 6B8DF9FF   call    00409718
004709AD   .  84C0          test    al, al
004709AF   .  74 68         je      short 00470A19
004709B1   .  A1 882F4900   mov     eax, dword ptr [492F88]
004709B6   .  8B00          mov     eax, dword ptr [eax]
004709B8   .  E8 EBDAFFFF   call    0046E4A8
004709BD   .  84C0          test    al, al
004709BF   .  75 36         jnz     short 004709F7
004709C1   .  FF75 FC       push    dword ptr [ebp-4]
004709C4   .  68 980A4700   push    00470A98                         ;  -
004709C9   .  A1 882F4900   mov     eax, dword ptr [492F88]
004709CE   .  8B00          mov     eax, dword ptr [eax]
004709D0   .  FF70 28       push    dword ptr [eax+28]
004709D3   .  68 980A4700   push    00470A98                         ;  -
004709D8   .  8D55 C0       lea     edx, dword ptr [ebp-40]
004709DB   .  8B45 08       mov     eax, dword ptr [ebp+8]
004709DE   .  8B00          mov     eax, dword ptr [eax]
004709E0   .  E8 1F91F9FF   call    00409B04
004709E5   .  FF75 C0       push    dword ptr [ebp-40]
004709E8   .  8B45 08       mov     eax, dword ptr [ebp+8]
004709EB   .  BA 05000000   mov     edx, 5
004709F0   .  E8 9F43F9FF   call    00404D94
004709F5   .  EB 22         jmp     short 00470A19
004709F7   >  A1 882F4900   mov     eax, dword ptr [492F88]
004709FC   .  8B00          mov     eax, dword ptr [eax]
004709FE   .  E8 A5DAFFFF   call    0046E4A8
00470A03   .  3C 09         cmp     al, 9
00470A05   .  75 12         jnz     short 00470A19
00470A07   .  8B45 08       mov     eax, dword ptr [ebp+8]
00470A0A   .  E8 0140F9FF   call    00404A10
00470A0F   .  8B45 F0       mov     eax, dword ptr [ebp-10]
00470A12   .  C740 04 01000>mov     dword ptr [eax+4], 1
00470A19   >  33C0          xor     eax, eax
00470A1B   .  5A            pop     edx
00470A1C   .  59            pop     ecx
00470A1D   .  59            pop     ecx
00470A1E   .  64:8910       mov     dword ptr fs:[eax], edx
00470A21   .  68 430A4700   push    00470A43
00470A26   >  8D45 C0       lea     eax, dword ptr [ebp-40]
00470A29   .  BA 0C000000   mov     edx, 0C
00470A2E   .  E8 0140F9FF   call    00404A34
00470A33   .  8D45 FC       lea     eax, dword ptr [ebp-4]
00470A36   .  E8 D53FF9FF   call    00404A10
00470A3B   .  C3            retn
00470A3C   .^ E9 8338F9FF   jmp     004042C4
00470A41   .^ EB E3         jmp     short 00470A26
00470A43   .  5F            pop     edi
00470A44   .  5E            pop     esi
00470A45   .  5B            pop     ebx
00470A46   .  8BE5          mov     esp, ebp
00470A48   .  5D            pop     ebp
00470A49   .  C2 0400       retn    4

=============================================================
查看关于里的信息不美观,找到相关内容,直接去软件里修改字符串吧。
00488F12   .  E8 6D6AFEFF   call    0046F984
00488F17   .  84C0          test    al, al
00488F19   .  74 5A         je      short 00488F75
00488F1B   .  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  (initial cpu selection)
00488F1E   .  8B80 6C030000 mov     eax, dword ptr [eax+36C]
00488F24   .  BA F48F4800   mov     edx, 00488FF4                    ;  the software licensed to:
00488F29   .  E8 1E3FFCFF   call    0044CE4C
00488F2E   .  8D55 EC       lea     edx, dword ptr [ebp-14]
00488F31   .  A1 C42F4900   mov     eax, dword ptr [492FC4]
00488F36   .  8B00          mov     eax, dword ptr [eax]
00488F38   .  E8 136BFEFF   call    0046FA50
00488F3D   .  FF75 EC       push    dword ptr [ebp-14]
00488F40   .  68 18904800   push    00489018                         ;  ,
00488F45   .  8D55 E8       lea     edx, dword ptr [ebp-18]
00488F48   .  A1 C42F4900   mov     eax, dword ptr [492FC4]
00488F4D   .  8B00          mov     eax, dword ptr [eax]
00488F4F   .  E8 D46AFEFF   call    0046FA28
00488F54   .  FF75 E8       push    dword ptr [ebp-18]

到此,所存在的限制基本都已经去掉了,有需要的可自行修改测试。

附上对应版本吧。

setupdoc2doc.part7.rar

13.95 KB, 下载次数: 8, 下载积分: 飘云币 -2 枚

setupdoc2doc.part1.rar

244.14 KB, 下载次数: 15, 下载积分: 飘云币 -2 枚

setupdoc2doc.part2.rar

244.14 KB, 下载次数: 13, 下载积分: 飘云币 -2 枚

setupdoc2doc.part3.rar

244.14 KB, 下载次数: 11, 下载积分: 飘云币 -2 枚

setupdoc2doc.part4.rar

244.14 KB, 下载次数: 6, 下载积分: 飘云币 -2 枚

setupdoc2doc.part5.rar

244.14 KB, 下载次数: 6, 下载积分: 飘云币 -2 枚

setupdoc2doc.part6.rar

244.14 KB, 下载次数: 6, 下载积分: 飘云币 -2 枚

评分

参与人数 1威望 +40 收起 理由
月之精灵 + 40 您的贴子很精彩,希望能再次分享!

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2010-6-2 00:22:49 | 显示全部楼层
强,我只是把注册信息爆了。但是水印一直搞不定。看后启发很大。
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-8-25 15:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-12-19 21:33:00 | 显示全部楼层
    不错,确实不错
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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