- UID
- 45008
注册时间2008-2-9
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 奋斗 2017-4-21 10:43 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
【破文标题】爆Logicon Trial 破文
【破文作者】Tiany
【作者邮箱】[email protected]
【作者主页】
【破解工具】OD
【破解平台】盗版XP sp2
【软件名称】Logicon Trial
【软件大小】
【原版下载】搜一下吧!
【保护方式】
【软件简介】一个游戏的软件
【破解声明】我是一名大老菜,老鸟别踩!
------------------------------------------------------------------------
【破解过程】软件是E文的 我自己E文真的不行! 打开程序 没一个ABCD....是我看得懂的!本来没耐心去弄下去了的!但是是xxxx老大给我 玩的个游戏!“要尊重前辈”哈哈 那我就认真的给瞧一瞧!
查了一下壳 Microsoft Visual C++ 7.0 写的
没壳 我直接运行看了一下 没有注册的按钮 点 START 是进入游戏 有次数的限制 !! 来回几次下来 就进不了游戏了 提示要购买软件 一点就打开点网页 !
看来要注册码来破解的 希望破灭 但是软件原来运行的时候 并没有什么功能上的限制 那我们就来找他的次数限制 (废话了一堆 现在才开始 兄弟别丢菜..蛋..啊什么的 留着自己吃 砸我浪费了)
用OD载入 先前下 读取文件断点
004072C6 L> 6A 60 push 60 ---------------》程序入口
004072C8 68 C0F64000 push Logicon_.0040F6C0
004072CD E8 6A3F0000 call Logicon_.0040B23C
004072D2 BF 94000000 mov edi,94
004072D7 8BC7 mov eax,edi
bp CreateFileA 可是找不到什么可用的信息
下个注册表断点 我直接用插件下断的 运行程序 直接断下
堆栈显示:
0013FE00 004054D9 /CALL 到 RegOpenKeyExA 来自 Logicon_.004054D7
0013FE04 80000002 |hKey = HKEY_LOCAL_MACHINE
0013FE08 0040F4C0 |Subkey = "Software\GNKJN"
0013FE0C 00000000 |Reserved = 0
0013FE10 00020019 |Access = KEY_READ
0013FE14 0013FE28 \pHandle = 0013FE28
0013FE18 7C80B6A1 kernel32.GetModuleHandleA
Software\GNKJN // 注册表 大家可以去看一下 里面记录了我们运行的次数!把次数改成“0” 游戏又可以玩了! 大家可以看到这里 就不看下去了! 但是玩几次 又要去改一下 那不是很麻烦! 跟着来 让你连修改注册表的功夫都省了
77DA761B A> 8BFF mov edi,edi // 这里是前面断下来的地方
77DA761D 55 push ebp
77DA761E 8BEC mov ebp,esp //Ctrl + F9 运行到返回
77DA7620 83EC 0C sub esp,0C
77DA7623 8365 FC 00 and dword ptr ss:[ebp-4],0
77DA7627 53 push ebx
77DA7628 56 push esi
77DA7629 8B75 08 mov esi,dword ptr ss:[ebp+8]
77DA762C 81FE 04000080 cmp esi,80000004
77DA7632 57 push edi
77DA7633 0F84 0A180200 je ADVAPI32.77DC8E43
77DA7639 81FE 50000080 cmp esi,80000050
77DA763F 0F84 FE170200 je ADVAPI32.77DC8E43
77DA7645 81FE 60000080 cmp esi,80000060
77DA764B 0F84 F2170200 je ADVAPI32.77DC8E43
77DA7651 8B5D 18 mov ebx,dword ptr ss:[ebp+18]
77DA7654 85DB test ebx,ebx
77DA7656 0F84 23ED0200 je ADVAPI32.77DD637F
77DA765C 8B7D 0C mov edi,dword ptr ss:[ebp+C]
77DA765F 85FF test edi,edi
77DA7661 0F84 985C0000 je ADVAPI32.77DAD2FF
77DA7667 B8 00000080 mov eax,80000000
77DA766C 3BF0 cmp esi,eax
77DA766E 74 14 je short ADVAPI32.77DA7684
77DA7670 81FE 01000080 cmp esi,80000001
77DA7676 74 0C je short ADVAPI32.77DA7684
77DA7678 81FE 02000080 cmp esi,80000002
77DA767E 0F85 525C0000 jnz ADVAPI32.77DAD2D6
77DA7684 F645 15 03 test byte ptr ss:[ebp+15],3
77DA7688 75 11 jnz short ADVAPI32.77DA769B
77DA768A 85FF test edi,edi
77DA768C 0F84 F1EC0200 je ADVAPI32.77DD6383
77DA7692 803F 00 cmp byte ptr ds:[edi],0
77DA7695 0F84 E8EC0200 je ADVAPI32.77DD6383
77DA769B 85FF test edi,edi
77DA769D 0F84 09ED0200 je ADVAPI32.77DD63AC
77DA76A3 8D45 FC lea eax,dword ptr ss:[ebp-4]
77DA76A6 50 push eax
77DA76A7 56 push esi
77DA76A8 E8 13F2FFFF call ADVAPI32.77DA68C0
77DA76AD 8BD8 mov ebx,eax
77DA76AF 85DB test ebx,ebx
77DA76B1 0F84 FFEC0200 je ADVAPI32.77DD63B6
77DA76B7 57 push edi
77DA76B8 8D45 F4 lea eax,dword ptr ss:[ebp-C]
77DA76BB 50 push eax
77DA76BC FF15 A011DA77 call dword ptr ds:[<&ntdll.RtlCreateUnico>; ntdll.RtlCreateUnicodeStringFromAsciiz
77DA76C2 84C0 test al,al
77DA76C4 0F84 F4EC0200 je ADVAPI32.77DD63BE
77DA76CA 66:8345 F4 02 add word ptr ss:[ebp-C],2
77DA76CF F6C3 01 test bl,1
77DA76D2 8D45 F4 lea eax,dword ptr ss:[ebp-C]
77DA76D5 0F85 F5EC0200 jnz ADVAPI32.77DD63D0
77DA76DB FF75 18 push dword ptr ss:[ebp+18]
77DA76DE FF75 14 push dword ptr ss:[ebp+14]
77DA76E1 FF75 10 push dword ptr ss:[ebp+10]
77DA76E4 50 push eax
77DA76E5 53 push ebx
77DA76E6 E8 84F2FFFF call ADVAPI32.77DA696F
77DA76EB 8BF0 mov esi,eax
77DA76ED 8D45 F4 lea eax,dword ptr ss:[ebp-C]
77DA76F0 50 push eax
77DA76F1 FF15 8813DA77 call dword ptr ds:[<&ntdll.RtlFreeUnicode>; ntdll.RtlFreeUnicodeString
77DA76F7 837D FC 00 cmp dword ptr ss:[ebp-4],0
77DA76FB 0F85 34170200 jnz ADVAPI32.77DC8E35
77DA7701 8BC6 mov eax,esi
77DA7703 5F pop edi
77DA7704 5E pop esi
77DA7705 5B pop ebx
77DA7706 C9 leave
77DA7707 C2 1400 retn 14
004054D9 8B2D 0CF04000 mov ebp,dword ptr ds:[<&ADVAPI32.RegQuery>; ADVAPI32.RegQueryValueExA
004054DF 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
004054E3 51 push ecx
004054E4 8B4C24 14 mov ecx,dword ptr ss:[esp+14]
004054E8 8D5424 20 lea edx,dword ptr ss:[esp+20]
004054EC 52 push edx
004054ED 8D4424 20 lea eax,dword ptr ss:[esp+20]
004054F1 50 push eax
004054F2 53 push ebx
004054F3 68 BCF44000 push Logicon_.0040F4BC ; ASCII "USE"
004054F8 51 push ecx
004054F9 C74424 2C 640000>mov dword ptr ss:[esp+2C],64
00405501 FFD5 call ebp
00405503 85C0 test eax,eax
00405505 74 14 je short Logicon_.0040551B
00405507 33C0 xor eax,eax
00405509 8DA424 00000000 lea esp,dword ptr ss:[esp]
00405510 8A08 mov cl,byte ptr ds:[eax]
00405512 884C04 1C mov byte ptr ss:[esp+eax+1C],cl
00405516 40 inc eax
00405517 3ACB cmp cl,bl
00405519 ^ 75 F5 jnz short Logicon_.00405510
0040551B 56 push esi
0040551C 8D5424 10 lea edx,dword ptr ss:[esp+10]
00405520 52 push edx
00405521 8D4424 24 lea eax,dword ptr ss:[esp+24]
00405525 50 push eax
00405526 E8 55D4FFFF call Logicon_.00402980 //上面的代码都是在读取
0040552B 83C4 08 add esp,8 //Software\GNKJN\USE里的值
0040552E 8BF0 mov esi,eax //然后进行比较
00405530 46 inc esi
00405531 83FE 05 cmp esi,5 //比较是否大于 5
00405534 895C24 10 mov dword ptr ss:[esp+10],ebx
00405538 7E 07 jle short Logicon_.00405541 //关键跳
0040553A C605 C0334100 01 mov byte ptr ds:[4133C0],1
00405541 8B4C24 14 mov ecx,dword ptr ss:[esp+14]
00405545 51 push ecx
00405546 FF15 08F04000 call dword ptr ds:[<&ADVAPI32.RegCloseKey>; ADVAPI32.RegCloseKey
0040554C 381D C0334100 cmp byte ptr ds:[4133C0],bl
00405552 75 5F jnz short Logicon_.004055B3
00405538 7E 07 jle short Logicon_.00405541 //关键跳
改jmp 无条件跳
程序就爆破成功了!
------------------------------------------------------------------------
【破解总结】总结一下 在破这个程序的时候 我的心态非常不好! 看到是E文 自己看不懂! 开始没认真去跟
再来就是 这几天碰到的软件 都是牛生的啊B 强壳不说 补了30几个区段了 可程序还是跑没起来 !搞得自己看到OD 就有点烦!
有时候要破什么东东 也要看看心态的 如果都是心不在焉的 只会什么都做不好!
------------------------------------------------------------------------ |
|