能力值:
( LV2,RANK:10 )
|
-
-
2 楼
第二次破解了。。。
坐一下沙发,不违规吧。有的话斑竹请提示,下次定改。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
其实我也对生成的程序分析,出现提示的代码和bpi文件的中的一样。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
再补一个suipack的破解过程。。
官网下载。。。安装。
也是在lib里破解。
SUIPackC6.Lib
OD打一个新建立的程序
查找suipack trial edition(标题名)字串找到相应的位置。。
00437DF0 > $ 55 PUSH EBP
00437DF1 . 8BEC MOV EBP,ESP
00437DF3 . 832D 1CF24300>SUB DWORD PTR [$115678332],1
00437DFA . 73 73 JNB SHORT Project1.00437E6F ; 估计这里是判断是否程序第一次运行
00437DFC . A1 243F4400 MOV EAX,DWORD PTR [<&rtl60.@Classes@Curr>
00437E01 . 8338 FF CMP DWORD PTR [EAX],-1;是否注册
00437E04 . 75 69 jnz SHORT Project1.00437E6F ;jmp过去就可以成功了。
00437E06 . 33C9 XOR ECX,ECX
00437E08 . B2 01 MOV DL,1
00437E0A . A1 9CB24000 MOV EAX,DWORD PTR [40B29C]
00437E0F . E8 7443FDFF CALL Project1.@Suidlg@TsuiMessageDialog@>
00437E14 . A3 20F24300 MOV DWORD PTR [@Suiresdef@Msg],EAX
00437E19 . A1 20F24300 MOV EAX,DWORD PTR [@Suiresdef@Msg]
00437E1E . 83C0 68 ADD EAX,68
00437E21 . BA 7C7E4300 MOV EDX,Project1.00437E7C ; 您使用的是suipack的试用版本!\n\n\n\n如果您喜欢它,清注册。\n\n\n\n注册后可以得到免费升级服务。\n\n\n\n请访问东日软件中文网站 http://www.sunisoft.cn/suipack/\n\nsupport@sunisoft.cn
00437E26 . E8 E9540000 CALL <JMP.&rtl60.@System@@LStrAsg$qqrpvp>
00437E2B . A1 20F24300 MOV EAX,DWORD PTR [@Suiresdef@Msg]
00437E30 . C640 48 01 MOV BYTE PTR [EAX+48],1
00437E34 . B2 01 MOV DL,1
00437E36 . A1 20F24300 MOV EAX,DWORD PTR [@Suiresdef@Msg]
00437E3B . E8 AC42FDFF CALL Project1.@Suidlg@TsuiDialog@SetUISt>
00437E40 . A1 20F24300 MOV EAX,DWORD PTR [@Suiresdef@Msg]
00437E45 . C640 64 03 MOV BYTE PTR [EAX+64],3
00437E49 . A1 20F24300 MOV EAX,DWORD PTR [@Suiresdef@Msg]
00437E4E . 83C0 34 ADD EAX,34
00437E51 . BA 2C7F4300 MOV EDX,Project1.00437F2C ; suipack trial edition
00437E56 . E8 B9540000 CALL <JMP.&rtl60.@System@@LStrAsg$qqrpvp>
00437E5B . A1 20F24300 MOV EAX,DWORD PTR [@Suiresdef@Msg]
00437E60 . 8B10 MOV EDX,DWORD PTR [EAX]
00437E62 . FF52 30 CALL NEAR DWORD PTR [EDX+30]
00437E65 . A1 20F24300 MOV EAX,DWORD PTR [@Suiresdef@Msg]
00437E6A . E8 35550000 CALL <JMP.&rtl60.@System@TObject@Free$qq>
00437E6F > 5D POP EBP
00437E70 . C3 RETN
00437E04 . 75 69 jnz SHORT Project1.00437E6F ;jmp过去就可以成功了。
00437E51 . BA 2C7F4300 MOV EDX,Project1.00437F2C ; suipack trial edition
二个关键点:
地址一:00437E04 跳转地址。
地址二:Project1.00437F2C ; suipack trial edition 字串所在位址。
偏移值=地址二-地址一=0x0128
打找lib文件。查找suipack trial edition得 新地址二1897760
这一值减去0x0128(16进制C语言表达法)
得1897464
查看这一位置刚好是 75 69
修改75==》EB 存盘,重建,成功。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
总结一下吧.
对于delphi和 bcb的控件其 lib文件和生成的程序中关于注册的代码是类似的,是类似不是相同。。。。
而且不可能相同,因为涉及winapi及相关VCL操作或是语言内置函数都要重定位。。。
而短跳,如 push eax操作为寄存器的,则代码是相同。
立即数相关的一般不同。
这二次都遇到有个jnz可以改成jmp跳过的。。。如果没有这个语句的就要自己构造了。。。
如何构造,要注意函数调用压入参数前跳过如以下
push eax
push edx
push ecx
call xxxxx
假设有三个参数。在压第一个参数地方就要jmp不能简单的nop 掉call
|