- UID
- 2185
注册时间2005-6-29
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【破解作者】 magei
【作者邮箱】 [email protected]
【使用工具】 od c32asm
【破解平台】 Win9x/NT/2000/XP
【软件名称】 南方周易程序
【下载地址】 http://www.nfbazi.com/
【软件简介】 南方周易程序是面向周易及数术的基础和专业软件,目前有子平八字类、周易断卦类、姓名类、风水类、星座类、六壬课类、择吉类等
【软件大小】 4.7m
【破解声明】 我是一只小菜鸟,只为了加入PYG,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
用GetVBRes载入主程序,找到"注册码不对"字样,把他修改为magei
用od载入,搜查文本字符"magei"找到
文本字符串参考位于 Name:.text,项目 968
地址=00481315
反汇编=mov eax,Name.004168FC
文本字符串=UNICODE "magei "
双击到
00481315 B8 FC684100 mov eax,Name.004168FC ; UNICODE "magei "
0048131A 83EC 10 sub esp,10
0048131D B9 08000000 mov ecx,8
对照c32asm 找到跳转
::004810A9:: 83F8 06 CMP EAX,6 比较假码是不是大于6位
::004810AC:: 0F8C 63020000 JL 00481315 \:JMPDOWN,小于出错
::004810B2:: 8D45 E8 LEA EAX,[EBP-18]
::004810B5:: 8D4D E4 LEA ECX,[EBP-1C]
::004810B8:: 50 PUSH EAX
::004810B9:: 51 PUSH ECX
::004810BA:: E8 B12CFFFF CALL 00473D70 \:JMPUP 关键CALL 跟进
::004810BF:: 66:3D FFFF CMP AX,FFFF
::004810C3:: 0F85 4C020000 JNZ 00481315 \:JMPDOWN
关键CALL 跟进
00473D70 83EC 10 sub esp,10
00473D73 53 push ebx
00473D74 55 push ebp
00473D75 56 push esi
00473D76 8B7424 24 mov esi,dword ptr ss:[esp+24]
00473D7A 57 push edi
00473D7B 8B3D C8104000 mov edi,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaStrCmp
00473D81 8B06 mov eax,dword ptr ds:[esi]
00473D83 C74424 10 00000000 mov dword ptr ss:[esp+10],0
00473D8B 50 push eax
00473D8C 68 780C4100 push Name.00410C78
00473D91 FFD7 call edi /验证有没有输入假码
00473D93 8BE8 mov ebp,eax
00473D95 8B5C24 24 mov ebx,dword ptr ss:[esp+24]
00473D99 F7DD neg ebp
00473D9B 8B0B mov ecx,dword ptr ds:[ebx]
00473D9D 1BED sbb ebp,ebp
00473D9F 51 push ecx
00473DA0 68 780C4100 push Name.00410C78
00473DA5 F7DD neg ebp
00473DA7 FFD7 call edi /验证有没有机器码
00473DA9 F7D8 neg eax
00473DAB 1BC0 sbb eax,eax
00473DAD F7D8 neg eax
00473DAF 85E8 test eax,ebp
00473DB1 74 7D je short Name.00473E30
00473DB3 8B3D E4104000 mov edi,dword ptr ds:[<&MSVBVM60.#561>; MSVBVM60.rtcIsNumeric
00473DB9 8D5424 10 lea edx,dword ptr ss:[esp+10]
00473DBD BD 08400000 mov ebp,4008
00473DC2 52 push edx
00473DC3 897424 1C mov dword ptr ss:[esp+1C],esi
00473DC7 896C24 14 mov dword ptr ss:[esp+14],ebp
00473DCB FFD7 call edi
00473DCD 66:85C0 test ax,ax
00473DD0 74 31 je short Name.00473E03
00473DD2 8B06 mov eax,dword ptr ds:[esi]
00473DD4 8B35 9C114000 mov esi,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaI4Str /把假码转换为16进制
00473DDA 50 push eax
00473DDB FFD6 call esi
00473DDD 8B0B mov ecx,dword ptr ds:[ebx]
00473DDF 8BF8 mov edi,eax
00473DE1 81EF E3D22700 sub edi,27D2E3 /转换为16进制假码-27d2e3
00473DE7 51 push ecx /压入机器码
00473DE8 70 52 jo short Name.00473E3C
00473DEA FFD6 call esi /把机器码转为16进制
00473DEC 33F8 xor edi,eax /异或上面的两个数据
00473DEE 81FF B4503E00 cmp edi,3E50B4 /得到的值是不是3e50b4
00473DF4 75 3A jnz short Name.00473E30
0
--------------------------------------------------------------------------------
【破解总结】
算法过程:转换16位(假码)=(转换16位(机器码) XOR 3E50B4)-27d2e3
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! ,本想上传注册机,可传不上 |
|