首页
社区
课程
招聘
[原创]PDF Split-Merge V3.1 算法简单分析
发表于: 2008-11-17 23:30 6347

[原创]PDF Split-Merge V3.1 算法简单分析

2008-11-17 23:30
6347

【文章标题】: PDF Split-Merge V3.1 算法简单分析
【文章作者】: qifeon
【软件名称】: PDF Split-Merge
【下载地址】: http://tele.skycn.com/soft/28472.html
【加壳方式】: ASProtect 2.1x SKE
【保护方式】: 壳+注册码
【编写语言】: Borland C++ 1999
【使用工具】: OD,PEID
【操作平台】: WINXP SP2
【软件介绍】: 一个用来分解/合并PDF文件的工具。支持拖拽功能,
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  一、PEID查壳,为 ASProtect 2.1x SKE -> Alexey Solodovnikov,猛壳。我用脚本来脱掉,也可以直接带壳调试。
  
  脱壳后显示为Borland C++ 1999。
  
  二、试运行软件。有试用版显示,输入试炼码“123456”,有错误提示框出现。
  
  三、好了,了解这么多我们可以下手了。用DEDE找按钮事件;0040E5D8
  
  OD载入程序,F9运行,有异常,俩次“SHIFT+F9”,出现注册对话框。“CTRL+G”输入0040E5D8,来到反汇编后此处下断。
  
  输入试炼码“123456”点注册按钮,断下,OK。
  

 0040E5D8  /.  55            push    ebp                                  按钮事件
  0040E5D9  |.  8BEC          mov     ebp, esp
  0040E5DB  |.  83C4 BC       add     esp, -44
  0040E5DE  |.  53            push    ebx
  0040E5DF  |.  56            push    esi
  0040E5E0  |.  8BD8          mov     ebx, eax
  0040E5E2  |.  BE D3EE6600   mov     esi, 0066EED3
  0040E5E7  |.  B8 E0F06600   mov     eax, 0066F0E0
  0040E5EC  |.  E8 CF5D2300   call    006443C0
  0040E5F1  |.  66:C745 E0 14>mov     word ptr [ebp-20], 14
  0040E5F7  |.  33D2          xor     edx, edx
  0040E5F9  |.  8955 FC       mov     dword ptr [ebp-4], edx
  0040E5FC  |.  8D55 FC       lea     edx, dword ptr [ebp-4]
  0040E5FF  |.  FF45 EC       inc     dword ptr [ebp-14]
  0040E602  |.  8B83 18030000 mov     eax, dword ptr [ebx+318]
  0040E608  |.  E8 B7D21D00   call    005EB8C4                         ;  取注册码长度
  0040E60D  |.  66:C745 E0 08>mov     word ptr [ebp-20], 8
  0040E613  |.  837D FC 00    cmp     dword ptr [ebp-4], 0             ;  注册码是否为空?
  0040E617  |.  74 05         je      short 0040E61E
  0040E619  |.  8B55 FC       mov     edx, dword ptr [ebp-4]           ;  EDX指向注册码
  0040E61C  |.  EB 03         jmp     short 0040E621
  0040E61E  |>  8D56 1D       lea     edx, dword ptr [esi+1D]
  0040E621  |>  8BC3          mov     eax, ebx
  0040E623  |.  E8 40040000   call    0040EA68                            关键call,跟进
  0040E628  |.  84C0          test    al, al                           ;  标志位
  0040E62A  |.  75 67         jnz     short 0040E693                   ;  关键跳转
  0040E62C  |.  66:C745 E0 20>mov     word ptr [ebp-20], 20
  0040E632  |.  8D56 1E       lea     edx, dword ptr [esi+1E]
  0040E635  |.  8D45 F8       lea     eax, dword ptr [ebp-8]
  0040E638  |.  E8 07562400   call    00653C44
  0040E63D  |.  FF45 EC       inc     dword ptr [ebp-14]
  0040E640  |.  8B10          mov     edx, dword ptr [eax]
  0040E642  |.  8B83 20030000 mov     eax, dword ptr [ebx+320]
  0040E648  |.  E8 A7D21D00   call    005EB8F4
  0040E64D  |.  FF4D EC       dec     dword ptr [ebp-14]
  0040E650  |.  8D45 F8       lea     eax, dword ptr [ebp-8]
  0040E653  |.  BA 02000000   mov     edx, 2
  0040E658  |.  E8 47572400   call    00653DA4
  0040E65D  |.  6A 10         push    10
  0040E65F  |.  8D4E 5F       lea     ecx, dword ptr [esi+5F]
  0040E662  |.  51            push    ecx
  0040E663  |.  8D46 2C       lea     eax, dword ptr [esi+2C]
  0040E666  |.  50            push    eax
  0040E667  |.  8BC3          mov     eax, ebx
  0040E669  |.  E8 6A391E00   call    005F1FD8
  0040E66E  |.  50            push    eax                              ; |hOwner
  0040E66F  |.  E8 78962500   call    <jmp.&user32.MessageBoxA>        ; \错误对话框
  0040E674  |.  FF4D EC       dec     dword ptr [ebp-14]
  0040E677  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
  0040E67A  |.  BA 02000000   mov     edx, 2
  0040E67F  |.  E8 20572400   call    00653DA4
  0040E684  |.  8B4D D0       mov     ecx, dword ptr [ebp-30]
  0040E687  |.  64:890D 00000>mov     dword ptr fs:[0], ecx
  0040E68E  |.  E9 9F000000   jmp     0040E732
  0040E693  |>  837D FC 00    cmp     dword ptr [ebp-4], 0
  0040E697  |.  74 05         je      short 0040E69E
  0040E699  |.  8B4D FC       mov     ecx, dword ptr [ebp-4]
  0040E69C  |.  EB 03         jmp     short 0040E6A1
  0040E69E  |>  8D4E 65       lea     ecx, dword ptr [esi+65]
  0040E6A1  |>  33D2          xor     edx, edx
  0040E6A3  |.  8BC3          mov     eax, ebx
  0040E6A5  |.  E8 5E020000   call    0040E908
  0040E6AA  |.  66:C745 E0 2C>mov     word ptr [ebp-20], 2C
  0040E6B0  |.  8D56 66       lea     edx, dword ptr [esi+66]
  0040E6B3  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
  0040E6B6  |.  E8 89552400   call    00653C44
  0040E6BB  |.  FF45 EC       inc     dword ptr [ebp-14]
  0040E6BE  |.  8B10          mov     edx, dword ptr [eax]
  0040E6C0  |.  8B83 20030000 mov     eax, dword ptr [ebx+320]
  0040E6C6  |.  E8 29D21D00   call    005EB8F4
  0040E6CB  |.  FF4D EC       dec     dword ptr [ebp-14]
  0040E6CE  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
  0040E6D1  |.  BA 02000000   mov     edx, 2
  0040E6D6  |.  E8 C9562400   call    00653DA4
  0040E6DB  |.  8D8E B7000000 lea     ecx, dword ptr [esi+B7]
  0040E6E1  |.  6A 40         push    40
  0040E6E3  |.  51            push    ecx
  0040E6E4  |.  8D46 79       lea     eax, dword ptr [esi+79]
  0040E6E7  |.  50            push    eax
  0040E6E8  |.  8BC3          mov     eax, ebx
  0040E6EA  |.  C705 40816600>mov     dword ptr [668140], 2710
  0040E6F4  |.  E8 DF381E00   call    005F1FD8
  0040E6F9  |.  50            push    eax                              ; |hOwner
  0040E6FA  |.  E8 ED952500   call    <jmp.&user32.MessageBoxA>        ; \成功对话框
  0040E6FF  |.  6A 00         push    0
  0040E701  |.  68 60F00000   push    0F060
  0040E706  |.  68 12010000   push    112
  0040E70B  |.  8BC3          mov     eax, ebx
  0040E70D  |.  E8 C6381E00   call    005F1FD8
  0040E712  |.  50            push    eax                              ; |hWnd
  0040E713  |.  E8 52962500   call    <jmp.&user32.SendMessageA>       ; \SendMessageA
  0040E718  |.  FF4D EC       dec     dword ptr [ebp-14]
  0040E71B  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
  0040E71E  |.  BA 02000000   mov     edx, 2
  0040E723  |.  E8 7C562400   call    00653DA4
  0040E728  |.  8B4D D0       mov     ecx, dword ptr [ebp-30]
  0040E72B  |.  64:890D 00000>mov     dword ptr fs:[0], ecx
  0040E732  |>  5E            pop     esi
  0040E733  |.  5B            pop     ebx
  0040E734  |.  8BE5          mov     esp, ebp
  0040E736  |.  5D            pop     ebp
  0040E737  \.  C3            retn

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

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
真是不简单,一点也看不懂
2008-11-22 17:18
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
3
支持支持....1234
2008-11-22 17:31
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
4
支持一下楼主,(*^__^*) 嘻嘻……
2008-11-22 17:54
0
雪    币: 340
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
qifeon偷偷闭关,我竟然不知道...

现在竟然如此厉害..

我到现在还是对算法没感觉,甚为头痛..
2008-11-22 18:21
0
游客
登录 | 注册 方可回帖
返回
//