wjmjkd 发表于 2007-4-2 15:20:35

某表格算量软件破解过程

【软件名称】 **表格算量2006
【下载地址】 为了保护国产软件,减少不必要的麻烦,不指出了
【软件简介】 无狗试用版,NAG,无法打印
【使用工具】 PEiD、OllyDbg
【破解平台】 Win9x/NT/2000/XP
--------------------------------------------------------------------------------
【破解过程】

查壳:PEid 侦测PASPack 2.12 -> Alexey Solodovnikov
有壳,是个简单的壳,脱壳过程就不说了。
脱壳后:Borland Delphi 6.0 - 7.0
////////////////////////////////////////////////////////////////////////////
OD载入如下:
0094F288 >55            push ebp                            ; ;程序入口
0094F289    8BEC            mov ebp,esp
0094F28B    B9 0E000000   mov ecx,0E
0094F290    6A 00         push 0
0094F292    6A 00         push 0
0094F294    49            dec ecx
0094F295^ 75 F9         jnz short GCLCal.0094F290
0094F297    53            push ebx
0094F298    56            push esi
0094F299    57            push edi
0094F29A    B8 18E69400   mov eax,GCLCal.0094E618
0094F29F    E8 2C82ABFF   call GCLCal.004074D0
0094F2A4    8B35 74019600   mov esi,dword ptr ds:       ; GCLCal.00961C1C
0094F2AA    33C0            xor eax,eax
0094F2AC    55            push ebp
0094F2AD    68 72F69400   push GCLCal.0094F672
0094F2B2    64:FF30         push dword ptr fs:
0094F2B5    64:8920         mov dword ptr fs:,esp

插件查找字符串:
00900DA6   push GCLCal.00900E38   尊敬用户:\n\n\n\n没有找到软件加密狗,软件将为试用版,试用版将有数量限制 \n\n\n\n请您购买正版软件,将获得更好的技术支持和服务!\n\n\n\n

在代码中跟随进来到这儿
00900D90    55            push ebp                           ;注意本处地址
00900D91    8BEC            mov ebp,esp
00900D93    6A 00         push 0
00900D95    6A 00         push 0
00900D97    53            push ebx
00900D98    33C0            xor eax,eax
00900D9A    55            push ebp
00900D9B    68 230E9000   push GCLCal.00900E23
00900DA0    64:FF30         push dword ptr fs:
00900DA3    64:8920         mov dword ptr fs:,esp
00900DA6    68 380E9000   push GCLCal.00900E38                ; 尊敬用户:\n\n\n\n没有找到软件加密狗,软件将为试用版,试用版将有数量限制 \n\n\n\n请您购买正版软件,将获得更好的技术支持和服务!\n\n\n\n
00900DAB    8D45 FC         lea eax,dword ptr ss:
00900DAE    50            push eax
00900DAF    A1 94039600   mov eax,dword ptr ds:
00900DB4    8B00            mov eax,dword ptr ds:
00900DB6    B9 BC0E9000   mov ecx,GCLCal.00900EBC             ; 没有找到狗
00900DBB    BA D00E9000   mov edx,GCLCal.00900ED0             ; 文字说明
00900DC0    8B18            mov ebx,dword ptr ds:
00900DC2    FF13            call dword ptr ds:
00900DC4    A0 DC0E9000   mov al,byte ptr ds:
00900DC9    50            push eax
00900DCA    8D45 F8         lea eax,dword ptr ss:
00900DCD    50            push eax
00900DCE    B9 E80E9000   mov ecx,GCLCal.00900EE8             ; \n\n\n\n

在这儿F2下断:
00900D90    55            push ebp
F9运行至下断处停止,查看EAX值为:FFFFFFFF
查看友好提示:
ebp=0012FF30
本地调用来自 00900F37, 0090E9F4
Ctrl+G输入00900F37来到这里:
00900F04    D0C5            rol ch,1
00900F06    CF            iretd
00900F07    A2 00000000   mov byte ptr ds:,al
00900F0C    55            push ebp
00900F0D    8BEC            mov ebp,esp
00900F0F    51            push ecx
00900F10    53            push ebx
00900F11    8845 FF         mov byte ptr ss:,al
00900F14    33C0            xor eax,eax
00900F16    55            push ebp
00900F17    68 4A0F9000   push GCLCal.00900F4A
00900F1C    64:FF30         push dword ptr fs:
00900F1F    64:8920         mov dword ptr fs:,esp
00900F22    33DB            xor ebx,ebx
00900F24    E8 D7FCFFFF   call GCLCal.00900C00            ;关键call 将eax值变为FFFFFFF跟随
00900F29    85C0            test eax,eax
00900F2B    75 04         jnz short GCLCal.00900F31
00900F2D    B3 01         mov bl,1
00900F2F    EB 0B         jmp short GCLCal.00900F3C
00900F31    807D FF 00      cmp byte ptr ss:,0
00900F35    74 05         je short GCLCal.00900F3C          ;
00900F37    E8 54FEFFFF   call GCLCal.00900D90            ;调用未注册信息
00900F3C    33C0            xor eax,eax
00900F3E    5A            pop edx
00900F3F    59            pop ecx
00900F40    59            pop ecx
00900F41    64:8910         mov dword ptr fs:,edx
00900F44    68 510F9000   push GCLCal.00900F51
00900F49    C3            retn



00900F24    E8 D7FCFFFF   call GCLCal.00900C00            ;关键call 将eax值变为FFFFFFF跟随
回车跟随来到
00900C00    53            push ebx
00900C01    56            push esi
00900C02    57            push edi
00900C03    55            push ebp
00900C04    81C4 D0FEFFFF   add esp,-130
00900C0A    BB 7CE49500   mov ebx,GCLCal.0095E47C
00900C0F    BF 78E49500   mov edi,GCLCal.0095E478
00900C14    8D6C24 08       lea ebp,dword ptr ss:
00900C18    33C0            xor eax,eax
00900C1A    890424          mov dword ptr ss:,eax
00900C1D    C645 00 1C      mov byte ptr ss:,1C
00900C21    C645 01 5A      mov byte ptr ss:,5A
00900C25    C645 02 4B      mov byte ptr ss:,4B
00900C29    C645 03 0B      mov byte ptr ss:,0B


00900C00    53            push ebx
00900C01    56            push esi
改为
00900C00    33C0            xor eax,eax
00900C02    C3            retn

保存到可执行文件


成功!!!!!

----------------------------------------------------------------
这是我学习破解后第一个独立完成的软件!!

fyxt2033 发表于 2007-4-2 18:24:40

主要是学习破的过程和思路,其它并不重要

wang8858275 发表于 2007-4-2 21:16:24

看不太懂。。。哎。。。还有的学啊。。。

windtrace 发表于 2007-4-3 09:57:31

学习了,谢谢分享

dangdang 发表于 2007-4-3 16:39:49

看不太懂,看来破解是一件难事,要好好学习一下。

zsns1010 发表于 2007-4-4 08:17:34

我来学习

yanjinhua 发表于 2019-7-31 14:26:30

主要是学习破的过程和思路,其它并不重要
页: [1]
查看完整版本: 某表格算量软件破解过程