V8主流发型设计软件破解祥解
大家好,这个是我进论坛以来首个发帖! 有什么不对,还望各位多指教!谢谢V8主流发型设计软件破解祥解
【软件名称】《V8主流发型设计软件》V8
【软件大小】19.6M
【运行平台】Win98/Win2K/WinXP
【编写语言】Microsoft Visual C++ 6.0
【破解平台】WinXP+SP3
【加壳方式】无
【脱壳方法】无
【加密方法】注册类
【加密强度】简单
【破解软件】C32Asm 、PEID0.95、OllyICE
【破解类型】爆破
【下载地址】http://www.v843.net/
【破 解 人】Mongolnet
【软件简介】
不做解释了,很复杂
【第一个破解过程---爆破】
=======================================================================================
=======================================================================================
=======================================================================================
=======================================================================================
【破解分析】
软件运行时,如果没有注册,会有弹出注册窗口,并且输入错误注册码后提示"注册失败"的提示,这为我们破解软件提供了很好的切入点。
1.用“PEiD v0.95”对原文件进行检查,发现没有加壳,哈哈,节省了不少时间。软件是用“C++”编写的。
2.用“C32Asm ”查找壳参考的所有字符串。
查到的字符串如下:
============================================
您还能试用%d次,请您尽快注册。
::0041CBBD->PUSH BD
试用已经到期,请您注册。
::0041CC2D->PUSH BE
注册失败。
::0041D022->PUSH BF
::0041D033->PUSH BF
注册成功,感谢您的注册 。祝您工作愉快 !
::0041D000->PUSH C0 PUSH 0C0
未注册
::0042AABB->PUSH C1
您的软件未注册不能使用这项功能!请您注册后再使用。
::0040C6C4->PUSH C2
::00425D1D->PUSH C2
==============================================
3.在“OllyICE”中调试找到代码如下:
第一个要解决的: 您还能试用%d次,请您尽快注册。
第二个要解决的: 试用已经到期,请您注册。
0041CC29 .85C0 test eax, eax
0041CC2B .7F 36 jg short 0041CC63 这里是关键跳(默认是不跳)
0041CC2D .68 BE000000 push 0BE ;试用已经到期,请您注册。
0041CC32 .8D4C24 0C lea ecx, dword ptr
0041CC36 .E8 D9230100 call <jmp.&MFC42.#4160_CString::LoadS>
0041CC3B .8B4424 08 mov eax, dword ptr
0041CC3F .8BCE mov ecx, esi
0041CC41 .50 push eax
0041CC42 .68 E6050000 push 5E6
0041CC47 .E8 BC230100 call <jmp.&MFC42.#5953_CWnd::SetDlgIt>
0041CC4C .6A 00 push 0
0041CC4E .8D4E 60 lea ecx, dword ptr
0041CC51 .E8 00240100 call <jmp.&MFC42.#6215_CWnd::ShowWind>
0041CC56 .6A 00 push 0
0041CC58 .8D8E 2C010000 lea ecx, dword ptr
0041CC5E .E8 FF230100 call <jmp.&MFC42.#2642_CWnd::EnableWi>
0041CC63 >8D4C24 0C lea ecx, dword ptr
0041CC67 .C68424 200100>mov byte ptr , 0
0041CC6F .E8 70230100 call <jmp.&MFC42.#800_CString::~CStri>
第三个要解决的: 注册失败。
0041CFD0 .85C0 test eax, eax
0041CFD2 .74 56 je short 0041D02A ;此处禁止跳
0041CFD4 .A1 AC6B4400 mov eax, dword ptr
0041CFD9 .85C0 test eax, eax
0041CFDB .74 3C je short 0041D019 ;此处禁止跳
0041CFDD .8B5424 08 mov edx, dword ptr
0041CFE1 .8D4424 0C lea eax, dword ptr
0041CFE5 .52 push edx ; /FileName
0041CFE6 .50 push eax ; |String
0041CFE7 .68 B8504400 push 004450B8 ; |info
0041CFEC .68 DC504400 push 004450DC ; |sys
0041CFF1 .FF15 34614300 call dword ptr [<&KERNEL32.WritePriva>; \WritePrivateProfileStringA
0041CFF7 .8B4E 20 mov ecx, dword ptr
第四个要解决的: 未注册
0042AA47 .85C0 test eax, eax
0042AA49 .75 2C jnz short 0042AA77 ;关键跳(默认是跳)
0042AA4B >8D4C24 14 lea ecx, dword ptr
0042AA4F .C68424 380100>mov byte ptr , 0
0042AA57 .E8 88450000 call <jmp.&MFC42.#800_CString::~CStri>
0042AA5C .8D4C24 10 lea ecx, dword ptr
0042AA60 .C78424 380100>mov dword ptr , -1
0042AA6B .E8 74450000 call <jmp.&MFC42.#800_CString::~CStri>
0042AA70 .33C0 xor eax, eax
0042AA72 .E9 57010000 jmp 0042ABCE
0042AA77 >8B4C24 24 mov ecx, dword ptr
0042AA7B .8B5424 1C mov edx, dword ptr
0042AA7F .8BC1 mov eax, ecx
0042AA81 .83C1 FE add ecx, -2
0042AA84 .2BC2 sub eax, edx
0042AA86 .8B5424 28 mov edx, dword ptr
0042AA8A .2D D9010000 sub eax, 1D9
0042AA8F .81C2 9CFDFFFF add edx, -264
0042AA95 .53 push ebx
0042AA96 .2BC8 sub ecx, eax
0042AA98 .52 push edx
0042AA99 .51 push ecx
0042AA9A .68 4F020000 push 24F
0042AA9F .50 push eax
0042AAA0 .8BCF mov ecx, edi
0042AAA2 .E8 99460000 call <jmp.&MFC42.#4299_CWnd::MoveWind>
0042AAA7 .6A 05 push 5
0042AAA9 .8BCF mov ecx, edi
0042AAAB .E8 A6450000 call <jmp.&MFC42.#6215_CWnd::ShowWind>
0042AAB0 .B9 40000000 mov ecx, 40
0042AAB5 .33C0 xor eax, eax
0042AAB7 .8D7C24 30 lea edi, dword ptr
0042AABB .68 C1000000 push 0C1 ;未注册
0042AAC0 .F3:AB rep stos dword ptr es:
0042AAC2 .8D4C24 14 lea ecx, dword ptr
0042AAC6 .E8 49450000 call <jmp.&MFC42.#4160_CString::LoadS>
注释:上面的很显然,0042AA49地址的关键跳,如果跳那么0042AA72处的JMP将不起作用,软件就提示未注册
如果是不跳那么0042AA72处的JMP将直接跳过未注册这个部分!
第五个要解决的: 您的软件未注册不能使用这项功能!请您注册后再使用。
未注册版本将有很多限制比如:"您的软件未注册不能使用这项功能!请您注册后再使用。"之类的
因此我们将要解决掉这些繁琐的试用部分。
00425D12 .6A 00 push 0
00425D14 .75 2C jnz short 00425D42 ;关键跳,默认是不跳 改为跳
00425D16 .8B41 20 mov eax, dword ptr
00425D19 .6A 00 push 0
00425D1B .6A 00 push 0
00425D1D .68 C2000000 push 0C2 您的软件未注册不能使用这项功能!请您注册后再使用。
00425D22 .50 push eax
00425D23 .B9 78674400 mov ecx, 00446778
00425D28 .E8 E3370000 call 00429510
00425D2D .8B8C24 B00500>mov ecx, dword ptr
00425D34 .64:890D 00000>mov dword ptr fs:, ecx
00425D3B .81C4 BC050000 add esp, 5BC
00425D41 .C3 retn
00425D42 >8D4C24 0C lea ecx, dword ptr
关键跳地址是00425D14 ,此处的JNZ默认是不跳的,此处改为JMP ,那么下面00425D1D处的提示将失效。
因此我们就达到爆破的效果了。
0040C69D .85C0 test eax, eax
0040C69F .0F8C E6000000 jl 0040C78B ;这里是关键跳,默认为跳
0040C6A5 .8B9424 000400>mov edx, dword ptr
0040C6AC .6A 00 push 0
0040C6AE .C702 01000000 mov dword ptr , 1
0040C6B4 .A1 AC6B4400 mov eax, dword ptr
0040C6B9 .85C0 test eax, eax
0040C6BB .75 1C jnz short 0040C6D9 ;关键
0040C6BD .8B46 20 mov eax, dword ptr
0040C6C0 .6A 00 push 0
0040C6C2 .6A 00 push 0
0040C6C4 .68 C2000000 push 0C2
0040C6C9 .50 push eax
0040C6CA .B9 78674400 mov ecx, 00446778
0040C6CF .E8 3CCE0100 call 00429510 ;您的软件未注册不能使用这项功能!请您注册后再使用。
0040C6D4 .E9 B2000000 jmp 0040C78B
0040C6D9 >8D4C24 0C lea ecx, dword ptr
0040C6DD .E8 EEB6FFFF call 00407DD0
0040C6E2 .8D4C24 04 lea ecx, dword ptr
0040C6E6 .C68424 E00300>mov byte ptr , 1
0040C6EE .51 push ecx
0040C6EF .8D4C24 70 lea ecx, dword ptr
0040C6F3 .E8 002A0200 call <jmp.&MFC42.#858_CString::operat>
0040C6F8 .8D4C24 08 lea ecx, dword ptr
0040C6FC .E8 BD270200 call <jmp.&MFC42.#2514_CDialog::DoMod>
0040C701 .8B5424 68 mov edx, dword ptr
0040C705 .8956 60 mov dword ptr , edx
0040C708 .8D8C24 980300>lea ecx, dword ptr
0040C70F .C68424 E00300>mov byte ptr , 7
0040C717 .E8 1E2A0200 call <jmp.&MFC42.#765_CProgressCtrl::>
0040C71C .8D8C24 A00200>lea ecx, dword ptr
0040C723 .C68424 E00300>mov byte ptr , 6
0040C72B .E8 70000200 call 0042C7A0
0040C730 .8D8C24 A80100>lea ecx, dword ptr
0040C737 .C68424 E00300>mov byte ptr , 5
0040C73F .E8 5C000200 call 0042C7A0
0040C744 .8D8C24 680100>lea ecx, dword ptr
0040C74B .C68424 E00300>mov byte ptr , 4
0040C753 .E8 DC290200 call <jmp.&MFC42.#692_CListBox::~CLis>
0040C758 .8D4C24 70 lea ecx, dword ptr
0040C75C .C68424 E00300>mov byte ptr , 3
0040C764 .E8 37000200 call 0042C7A0
0040C769 .8D4C24 6C lea ecx, dword ptr
0040C76D .C68424 E00300>mov byte ptr , 2
0040C775 .E8 6A280200 call <jmp.&MFC42.#800_CString::~CStri>
0040C77A .8D4C24 08 lea ecx, dword ptr
0040C77E .C68424 E00300>mov byte ptr , 0
0040C786 .E8 2F280200 call <jmp.&MFC42.#641_CDialog::~CDial>
0040C78B >8D4C24 04 lea ecx, dword ptr
0040C78F .C78424 E00300>mov dword ptr , -1
注释:0040C69F处的跳改为JMP这样无条件专挑,那么就可以解决掉0040C6CF处的提示。
-------------------------------
经过以上分析,我们看出,关键点有5个
【破解方法】
0041CC2B处 jg改为 JMP ;必须跳
0041CFD2处 je改为 JNZ ;此处禁止跳或者NOP
0041CFDB处 je改为 JNZ ;此处禁止跳或者NOP
0042AA49处 jnz 改为 JE ;禁止跳或者NOP
00425D14处 jnz 改为 JMP ;必须跳
0040C69F处 jl改为 JMP ;必须跳
0040C6BB处 jnz 改为 JMP ;必须跳
经过以上的改动,软件就可以正常使用了!!!!!!!!!!!!
=======================================================================================
=======================================================================================
======================================================================================= 无敌爆破/:L 我也载个玩玩···
期待CRfile到我区 难道是内版?
没找到哪下载·· 不错啊,学习了,顶 但我在OD下找不字符串呀. 倒,标题看错,以为是VB的,原是V8/:L 不错啊,学习了,顶:loveliness: 堪称最原始的破解方法了,哈哈 学习了,谢谢楼主分享
页:
[1]
2