小儿垂钓 发表于 2007-1-5 15:03:29

对PYGcrackme1.0的简单分析(适合菜鸟哦)

对PYGcrackme1.0的简单分析(适合菜鸟哦)

【破文标题】对PYGcrackme1.0的简单分析
【破文作者】小儿垂钓
【作者邮箱】[email protected]
【作者主页】
【破解工具】PEiD,W32DASM,UC32,OD
【破解平台】Windows 2K&XP
【软件名称】PYGcrackme1.0
【保护方式】注册码
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
-----------------------------------------------------------------------------------------------------------------------------------------
经过在飘云阁长时间学习,学到了不少知识,感谢飘云阁所有的朋友~
经过数日的苦战,终于将PYGcrackme1.0搞定!现将过程详细写出来~~以便和大家分享破解过程的酸与甜~~~

首先,我要说明的是,我应该多谢谢菜儿,我从他的《VB断点杀手》一文获益匪浅,因为我以前总是不知道怎么找VB程序的关键注册算法部分~~~(除了明码比较以外),因为无法用字符串参考功能吗!!学习之后,我不敢怠慢,立即找到一个crackme进行了实验~~果然很灵验,至此对菜儿大师佩服的是五体投地,惊天地,泣鬼神~希望菜儿老师以后多多指点小弟,奢求之中~~

一、快速定位爆破点,爆破程序!
下断:BP __vbaFreeStr
运行程序,第一次就运行起来了,我们输入假码!
User:abcde
Sn:987654321
程序被中断
00404707    FF15 B8104000   call dword ptr ds:[<&MSVBVM60.__>; MSVBVM60.__vbaFreeStr
0040470D    8D55 B0         lea edx,dword ptr ss:
00404710    8D45 C0         lea eax,dword ptr ss:
00404713    52                push edx
00404714    50                push eax
00404715    6A 02             push 2
00404717    FFD3             call ebx

向上看看,就会找找到注册算法的开始:

004044D0    55                push ebp
004044D1    8BEC            mov ebp,esp
004044D3    83EC 0C         sub esp,0C
004044D6    68 F6104000       push <jmp.&MSVBVM60.__vbaExceptH>
004044DB    64:A1 00000000    mov eax,dword ptr fs:
004044E1    50                push eax
004044E2    64:8925 00000000mov dword ptr fs:,esp
004044E9    81EC C0000000   sub esp,0C0
004044EF    53                push ebx
004044F0    56                push esi
004044F1    57                push edi
004044F2    8965 F4         mov dword ptr ss:,esp

(省略部分代码)

第一次,我们粗略的跟踪程序!!
发现在00404878处,程序用msgbox函数调出错信息!“继续加油吧”

0040482E      8B3D 9C104000   mov edi,dword ptr ds:[<&MSVBVM60.__>; MSVBVM60.__vbaVarDup
00404834      BE 08000000       mov esi,8
00404839      8D95 70FFFFFF   lea edx,dword ptr ss:
0040483F      8D4D B0         lea ecx,dword ptr ss:
00404842      C785 78FFFFFF E82>mov dword ptr ss:,a.004022E>
0040484C      89B5 70FFFFFF   mov dword ptr ss:,esi
00404852      FFD7            call edi
00404854      8D55 80         lea edx,dword ptr ss:
00404857      8D4D C0         lea ecx,dword ptr ss:
0040485A      C745 88 D4224000mov dword ptr ss:,a.004022D>
00404861      8975 80         mov dword ptr ss:,esi
00404864      FFD7            call edi
00404866      8D4D 90         lea ecx,dword ptr ss:
00404869      8D55 A0         lea edx,dword ptr ss:
0040486C      51                push ecx
0040486D      8D45 B0         lea eax,dword ptr ss:
00404870      52                push edx
00404871      50                push eax
00404872      8D4D C0         lea ecx,dword ptr ss:
00404875      6A 00             push 0
00404877      51                push ecx
00404878      FF15 30104000   call dword ptr ds:[<&MSVBVM60.#595>>; MSVBVM60.rtcMsgBox
0040487E      8D55 90         lea edx,dword ptr ss:
00404881      8D45 A0         lea eax,dword ptr ss:
00404884      52                push edx
00404885      8D4D B0         lea ecx,dword ptr ss:
00404888      50                push eax
00404889      8D55 C0         lea edx,dword ptr ss:
0040488C      51                push ecx
0040488D      52                push edx
0040488E      6A 04             push 4

我们向上看看,是从哪儿跳来的呀?

004047CA   /74 62             je short a.0040482E   《————跳向错误,我们nop掉
004047CC    |8B3D 9C104000mov edi,dword ptr ds:[<&MSVBVM60.__>; MSVBVM60.__vbaVarDup
004047D2   |BE 08000000       mov esi,8
004047D7   |8D95 70FFFFFF   lea edx,dword ptr ss:

我们在004047CA行进行爆破~~je-jne   或者 je-nop

保存之后!我们试试看!
我输入我的邮箱作为用户名:
Xecd@163.com(其他的也可以,不要少于5位)
见图......

好了下面我们就开始我们的算法分析之旅吧~~

二、算法分析
有了上面的爆破过程,下面的算法分析也不会很难的,但是需要我们的耐心和时间~~
取用户名的 每位字符的ascii十六进制,然后相加~~~
add eax,edi
abcde
a eax=62
b   63
c   64
d   65
e   66
62+63+64+65+66=320

User:abcde
SN:320

-----------------------------------------------------------------------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[ 本帖最后由 小儿垂钓 于 2007-1-5 15:06 编辑 ]

没有说话 发表于 2007-1-5 17:31:51

:L 我确实是菜鸟,可不适合我啊

情天下雪 发表于 2007-1-5 18:23:38

我也菜.需要努力

avel 发表于 2007-1-30 19:30:23

支持加油~
一起努力~
:lol:
页: [1]
查看完整版本: 对PYGcrackme1.0的简单分析(适合菜鸟哦)