• 标 题:picturetoexe v3.60 beta #2不完全破解 (2千字)
  • 作 者:kingtall
  • 时 间:2001-4-30 13:28:53
  • 链 接:http://bbs.pediy.com

本篇破解并不完全,希望起到抛砖引玉的作用。
作者:kingtall

软件名称:picturetoexe v3.60 beta #2
URL ftp://ftp.download.com.cn/pub/new_multimedia/apr_beta.zip
工具:trw2000,superbpm,dede

未注册时有三个限制。
每次运行程序,有nag,提示注册;
选中图片后,按preview按钮,有对话框,说你没注册;
运行create做出的文件,画面上有提示注册文字。


首先脱壳。因为用bo2k找不到入口点,所以手动跟踪,找到入口为517648。
用trw pedump命令脱壳。脱壳后的文件没有修复注册表,不能运行,但可以反汇编。
用dede反汇编,不用管出错信息,一路按确定,最后dump successful。

选中procedure/tform1/button7click,右键选show additonal data,显示caption='preview',这就是我们要找的。右键选disassemble,可见
00504F5C  803D81C3510000        cmp    byte ptr [$51C381], $00  <==注册标志,非0表示注册。
00504F63  7516                  jnz    00504F7B
00504F65  B940000000            mov    ecx, $00000040
00504F6A  8B1568C65100          mov    edx, [$51C668]
00504F70  A104C65100            mov    eax, dword ptr [$51C604]

|
00504F75  E842AAFBFF            call    004BF9BC
00504F7A  C3                    ret

00504F7B  E926000000            jmp    00504FA6    <==直接跳到ret,难道注册后也不能preview?
00504F80  46                    inc    esi
00504F81  F1                    DB  $F1  //
00504F82  4F                    dec    edi
00504F83  8DF6                  lea    esi, esi
00504F85  E9565968B1            jmp    B1B8A8E0
00504F8A  D5                    aad
00504F8B  9C                    pushf 
00504F8C  A2428B9357            mov    byte ptr [$57938B42], al
00504F91  F60C5C                DB  $F6, $0C, $5C  //      byte ptr [esp+ebx*2]
00504F94  AC                    lodsb
00504F95  16                    push    ss
00504F96  F6A375F515C5          mul    byte ptr [ebx+$C515F575], al
00504F9C  9B                    wait
00504F9D  B456                  mov    ah, $56
00504F9F  131B                  adc    ebx, [ebx]
00504FA1  5F                    pop    edi
00504FA2  2B4424AA              sub    eax, dword ptr [esp-$56]
00504FA6  C3                    ret

现在找一找程序对[51C381]进行修改的地方。
用trw 装入 apr.exe,下bpm 51c381 ,g。trw第二次弹出时
0167:005043CA C60581C3510000  MOV      BYTE [0051C381],00    <==改为1
0167:005043D1 E945000000      JMP      0050441B

只要在这里把[0051C381]改为1,做出的幻灯片就不包含提示注册信息,按preview按钮时没有响应。
只有开始的nag无法去掉。