一款JPG转PDF软件的破解+追码分析过程
本帖最后由 小Cold 于 2017-4-9 09:43 编辑本教程由学逆向Thx赞助播出(“哎呀我摔倒了要你们评分Thx给我才能起来{:5_187:}”) 看见别人都带这个,我也带一个吧~~
首先说一下,本人专业是做FZ,所以对逆向方面肯定没有各位专业搞逆向的大神厉害,教程中哪里有高见的还往指出~~我弄逆向只是锻炼逆向思维能力,所以以后我发布的教程,大多都是一些追码教程,爆破这些就不发了,没技术含量~
1.这是一款VB程序,同时假码注册后会提示“注册码错”!所以这里有二个思路:①下VB信息框断点。②搜索字符串。搜到可用信息位置跳过去如下:
注意这个红色的线,说明前面有地方跳到这里来的。
-----------------------------------------------------------------------------------------------------------------------------
2.来到这里如下图,发现是这个跳转跳过去的,同时下面还有几个比较都是跳到同一位置,所以这里也就是关键跳转了,如果要爆破,直接把这里的几个JNZ全部NOP了,就OK了额。{:5_193:}
---------------------------------------------------------------------------------------------------------------------------
3.分析注册行为,追出注册码。
一、首先分析一下这里比较的是 ebp-3C/38/34/40,那么看看是谁给他赋值的呢?
初始化待比较局部变量:
0045B5CB .C745 FC 03000>mov dword ptr ss:,0x3
0045B5D2 .66:C745 C4 00>mov word ptr ss:,0x0
0045B5D8 .C745 FC 04000>mov dword ptr ss:,0x4
0045B5DF .66:C745 C0 00>mov word ptr ss:,0x0
0045B5E5 .C745 FC 05000>mov dword ptr ss:,0x5
0045B5EC .66:C745 C8 00>mov word ptr ss:,0x0
0045B5F2 .C745 FC 06000>mov dword ptr ss:,0x6
0045B5F9 .66:C745 CC 00>mov word ptr ss:,0x0
0045B5FF .C745 FC 07000>mov dword ptr ss:,0x7
0045B606 .8B55 08 mov edx,dword ptr ss:
0045B609 .8B02 mov eax,dword ptr ds:
0045B60B .8B4D 08 mov ecx,dword ptr ss:
0045B60E .51 push ecx
0045B60F .FF90 0C030000 call dword ptr ds:
二、既然找到初始化了,那么就看是哪里在赋值的:
0045B7A7 .83C4 0C add esp,0xC
0045B7AA .0FBF8D 1CFFFF>movsx ecx,word ptr ss:
0045B7B1 .85C9 test ecx,ecx
0045B7B3 .74 0D je short JPG2PDF.0045B7C2
0045B7B5 .C745 FC 0A000>mov dword ptr ss:,0xA
0045B7BC .66:C745 C4 FF>mov word ptr ss:,0xFFFF
0045B849 .0FBF95 1CFFFF>movsx edx,word ptr ss:
0045B850 .85D2 test edx,edx
0045B852 .74 0D je short JPG2PDF.0045B861
0045B854 .C745 FC 0D000>mov dword ptr ss:,0xD
0045B85B .66:C745 CC FF>mov word ptr ss:,0xFFFF
0045B8E5 .83C4 0C add esp,0xC
0045B8E8 .0FBF85 1CFFFF>movsx eax,word ptr ss:
0045B8EF .85C0 test eax,eax
0045B8F1 .74 0D je short JPG2PDF.0045B900
0045B8F3 .C745 FC 10000>mov dword ptr ss:,0x10
0045B8FA .66:C745 C0 FF>mov word ptr ss:,0xFFFF
0045B984 .83C4 0C add esp,0xC
0045B987 .0FBF8D 1CFFFF>movsx ecx,word ptr ss:
0045B98E .85C9 test ecx,ecx
0045B990 .74 0D je short JPG2PDF.0045B99F
0045B992 .C745 FC 13000>mov dword ptr ss:,0x13
0045B999 .66:C745 C8 FF>mov word ptr ss:,0xFFFF
总结:
发现是以上4处赋值的,同时发现一个函数:0045B78A __vbaVarTstEq,说到这里大家知道他的注册算法了吗?就是一个一个字符比较,其中前4位字符很重要,决定注册是否成功,至于4位后的字符可以自己随便添加,这个可能是他注册软件的一个BUG吧~~
注册码:WD86www.xuepojie.com
来学习下思路 感觉学到了,逆向分析思路很重要,本菜鸟要多多学习才是。 过来看看………… 我还只会简单的爆破。你这个有点难!!! 厉害厉害~~~~学习一下 没看到有分析算法的 好强悍 直接后面几乎看不懂了 不过追码很不错的 以后我也要达到这个程度 收藏,学习了,感谢分享