吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10051|回复: 10
收起左侧

[分享] 转的 没看懂 我太笨。希望有人能明白 QQ四国军棋 皇族外挂1.9.9.5

[复制链接]
zombie 发表于 2010-3-21 18:09
【文章标题】: 破解皇族软件-QQ四国军棋刷分v1.9.9.9.5最新版
【文章作者】: alic0ol
【作者QQ号】: 1050475658
【软件名称】: 皇族软件-QQ四国军棋刷分v1.9.9.9.5
【软件大小】: 170 KB
【下载地址】: 自己搜索下载
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【保护方式】: 脱壳+自校验
【编写语言】: VC8 -> Microsoft Corporation *
【使用工具】: PEid,OD,LordPE,ImportREC
【操作平台】: XP sp3
--------------------------------------------------------------------------------
【详细过程】
一.查壳
     PEid查壳为 ASPack 2.12 -> Alexey Solodovnikov
二.脱壳
     ESP 定律脱壳,找到OEP:0042A4D9
     0042A4D9    E8 A6890000     call 皇族软件.00432E84
三.转存,修复输入表
     LordPE 完整转存,ImportREC修复,没有无效的指针,运行,哈哈,成功脱壳
四.破解
     点“点击注册”,随便输入注册码“123456”,提示“注册码不正确”,点提示框的 确定时,弹出一个破网站,我们就先把这个破网站给搞掉吧
     OD 加载,懂得VC的都知道,一般加载程序的函数也就是 CreateProcess,CreateThread,WinExecute,ShellExecute,OpenProcess等,我们ctrl+n,
     找到 ShellExecuteA 函数,下断,运行到上次操作,堆栈窗口出现:
     0012AE88   000E0352 |hWnd = 000E0352 ('皇族外挂-天空软件注册-www.sky...',class='#32770',parent=000E0614)
     0012AE8C   00000000 |Operation = NULL
     0012AE90   009952C0 |FileName = "http://shareware.skycn.com/orderform.php?purtype=unreg&soft_id=5760"
     0012AE94   00000000 |Parameters = NULL
     0012AE98   00000000 |DefDir = NULL
     0012AE9C   00000001 \IsShown = 1
    就是这个啦,我们把
    0040B19E |. FF15 84034400 call dword ptr ds:[<&shell32.ShellExecut>; \ShellExecuteA
    NOP掉就可以啦,复制保存,当我们再次运行该程序的时候,关机重启,说明程序有自校验,在VC中,关机函数一般就是
    BOOL ExitWindowsEx(
     UINT uFlags,
     DWORD dwReserved
    );
   好了,那我们就在OD中ctrl+n,找到函数下断点吧,提示有7个断点
   1.
   00401B80 /$ 83EC 14       sub esp,14
00401B83 |. 8D0424        lea eax,dword ptr ss:[esp]
00401B86 |. 50            push eax                                 ; /phToken
00401B87 |. 6A 28         push 28                                  ; |DesiredAccess = TOKEN_QUERY|TOKEN_ADJUST_PRIVILEGES
00401B89 |. FF15 28034400 call dword ptr ds:[<&kernel32.GetCurrent>; |[GetCurrentProcess
00401B8F |. 50            push eax                                 ; |hProcess
00401B90 |. FF15 28004400 call dword ptr ds:[<&advapi32.OpenProces>; \OpenProcessToken
00401B96 |. 8D4C24 08     lea ecx,dword ptr ss:[esp+8]
00401B9A |. 51            push ecx                                 ; /pLocalId
00401B9B |. 68 C80D4400   push dump_.00440DC8                      ; |SeShutdownPrivilege
00401BA0 |. 6A 00         push 0                                   ; |SystemName = NULL
00401BA2 |. FF15 2C004400 call dword ptr ds:[<&advapi32.LookupPriv>; \LookupPrivilegeValueA
00401BA8 |. 8B0424        mov eax,dword ptr ss:[esp]
00401BAB |. 6A 00         push 0                                   ; /pRetLen = NULL
00401BAD |. 6A 00         push 0                                   ; |pPrevState = NULL
00401BAF |. 6A 00         push 0                                   ; |PrevStateSize = 0
00401BB1 |. 8D5424 10     lea edx,dword ptr ss:[esp+10]            ; |
00401BB5 |. 52            push edx                                 ; |pNewState
00401BB6 |. 6A 00         push 0                                   ; |DisableAllPrivileges = FALSE
00401BB8 |. 50            push eax                                 ; |hToken
00401BB9 |. C74424 1C 010>mov dword ptr ss:[esp+1C],1              ; |
00401BC1 |. C74424 28 020>mov dword ptr ss:[esp+28],2              ; |
00401BC9 |. FF15 14004400 call dword ptr ds:[<&advapi32.AdjustToke>; \AdjustTokenPrivileges
00401BCF |. 6A 00         push 0                                   ; /Reserved = 0
00401BD1 |. 6A 01         push 1                                   ; |Options = EWX_SHUTDOWN
00401BD3 |. FF15 44054400 call dword ptr ds:[<&user32.ExitWindowsE>; \ExitWindowsEx
00401BD9 |. 83C4 14       add esp,14
00401BDC \. C3            retn

   这个就是简单的“提权”函数,说白了,就是通过AdjustTokenPrivileges让程序具有一定的权限,例如重启,打开,查询,提权,就这几个函数啦
这个不用改,我们看看下面一个
00403405   > /68 4C040000   push 44C                                 ; /Timeout = 1100. ms
0040340A   . |FF15 1C034400 call dword ptr ds:[<&kernel32.Sleep>]    ; \Sleep
00403410   . |FF15 D4024400 call dword ptr ds:[<&kernel32.IsDebugger>; [IsDebuggerPresent
00403416   . |85C0          test eax,eax
00403418   . |74 0A         je short dump_.00403424
0040341A   . |6A 00         push 0                                   ; /Reserved = 0
0040341C   . |6A 02         push 2                                   ; |Options = EWX_REBOOT
0040341E   . |FF15 44054400 call dword ptr ds:[<&user32.ExitWindowsE>; \ExitWindowsEx

通过 IsDebuggerPresent 来检验是否存在调试器,就是检测我们OD的,如果存在就重启,比较恨的,呵呵,这里有个关键跳,我们把je改为jmp,就跳
过ExitWindowsEx 了,接下来的几个断点对照上面修改,我们保存一份,可以正常运行啦

OD加载,查找字符串,“点击注册”,发现是个大跳转跳过来的
00407D13     /0F84 7E000000 je crack_2.00407D97
如果跳转实现,就要注册,那么我们试着把它NOP掉,保存一份看看,运行,呵呵,这个软件显示已注册了,唉,无语了....

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
cfc1680 发表于 2010-3-21 20:13
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| zombie 发表于 2010-3-22 16:24
不客气噢! 嘿嘿!! 我转的啦 希望对你们有帮助
   
    我按照他所说的 破解    是破解成功了  但是还是存在最后所说的  自动重启

有人试过么??  谁测试过的 发上来一份可以么???
zailai8888 发表于 2010-3-26 23:36
头像被屏蔽
wushimo 发表于 2010-3-27 05:03
提示: 作者被禁止或删除 内容自动屏蔽
李东国 发表于 2010-3-27 06:20
好像只是去除了提示函数和自校验
qsz1209 发表于 2010-6-16 12:34
谢谢分享,高手啊
曹无咎 发表于 2010-6-16 14:41
晕,连个软件样本都不发上来,还都说好,跟风啊
qq20048888 发表于 2010-6-16 21:40
不错的一篇文章
alic0ol 发表于 2010-6-25 14:07
呵呵,可以的了...
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 22:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表