能力值:
( LV2,RANK:10 )
|
-
-
126 楼
楼主GPK保护搞定没?
|
能力值:
( LV2,RANK:10 )
|
-
-
127 楼
现在过不了
|
能力值:
( LV2,RANK:10 )
|
-
-
128 楼
学习了分析的真透彻
|
能力值:
( LV7,RANK:110 )
|
-
-
129 楼
楼主,你的方法太笨了点吧!我有办法,即不用干掉保护,又不用恢复HOOK,就可以过这个保护了(提示:我们自己构造一个新的函数调用流程,在调用完成原函数的头5个字节以后,用JMP 指令跳回原函数+5字节处,让原来的HOOK像个傻瓜一样,等我们调用的函数返回以后它都不知道我们的调用其实已经完成了)
|
能力值:
( LV7,RANK:110 )
|
-
-
130 楼
要的话,我可以写一个过NtOpenProcess的代码
|
能力值:
( LV8,RANK:120 )
|
-
-
131 楼
非常感谢,不知道你说的是不是我贴出来的这种办法。
static NAKED NTSTATUS __stdcall MyNtOpenProcess(PHANDLE ProcessHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, PCLIENT_ID ClientId) { //DbgPrint("NtOpenProcess() called"); __asm { push 0xC4 //push 0x804DB4C0 push 0x804F5308 //本机 jmp JmpNtOpenProcessAddress } } VOID ssdt_NtOpenProcess() { ULONG Local_NtOpenProcessAddress; KIRQL Irql;
//获取NtOpenProcess函数地址 Local_NtOpenProcessAddress = (ULONG)KeServiceDescriptorTable->ServiceTableBase+0x7A * 4; KdPrint(("Local_Address地址:%X",Local_NtOpenProcessAddress));
//保存NtOpenProcess函数的原始地址 NtOpenProcessAddress = *(ULONG*)Local_NtOpenProcessAddress; KdPrint(("NtOpenProcess地址:%X",NtOpenProcessAddress));
KdPrint(("MyNtOpenProcess地址:%X",(ULONG)MyNtOpenProcess));
//保存从中继函数中跳转到NtOpenProcess函数的什么位置,以达到绕过INLINE HOOK 的目的 JmpNtOpenProcessAddress = (ULONG)NtOpenProcess + 15; KdPrint(("JmpNtOpenProcessAddress:%X",JmpNtOpenProcessAddress));
WPOFF(); //清除CR0 //提升IRQL中断级 Irql=KeRaiseIrqlToDpcLevel();
//完成SSDT HOOK *(ULONG*)Local_NtOpenProcessAddress = (ULONG)MyNtOpenProcess;
//恢复Irql KeLowerIrql(Irql); WPON(); //恢复CR0 }
|
能力值:
( LV7,RANK:110 )
|
-
-
132 楼
不是,但是我的办法更加好,也不用修改原来的SSDT,处理好以后,在应用程序那里直接调用如下代码:
_asm
{
mov eax,我们的处理函数在SSDT表中的索引,这个索引是我们自己新建的一个NtOpenProcess函数 这个函数的参数和调用方式,返回值和原来的函数是一样的
call dword ptr[KiFastCallSystem]
ret 8
}
即可,如果想调用原函数,就请在应用程序中直接调用原来的NtOpenProcess即可
|
能力值:
( LV7,RANK:110 )
|
-
-
133 楼
这样的话,你就是再如何监控SSDT 也没有办法知道我什么时候调用了NtOpenProcess了
|
能力值:
( LV7,RANK:110 )
|
-
-
134 楼
你又部分代码和我想的一样,但是其余的都不一样了
|
能力值:
( LV7,RANK:110 )
|
-
-
135 楼
而且你的代码在多核心机器上又可能会BOSD哦
|
能力值:
( LV3,RANK:20 )
|
-
-
136 楼
好长....Mark下....
|
能力值:
( LV2,RANK:10 )
|
-
-
137 楼
回复比较精彩些
|
能力值:
( LV2,RANK:10 )
|
-
-
138 楼
很好,很强大。顶。。
|
能力值:
( LV3,RANK:20 )
|
-
-
139 楼
呃...最近看雪也有很多研究游戏保护的
|
能力值:
( LV2,RANK:10 )
|
-
-
140 楼
好高深, 菜鸟中, 学习
|
能力值:
( LV7,RANK:110 )
|
-
-
141 楼
按楼主方法od符加成功, 用ce非法,自己写个简单的搜索工具可以成功搜索了。
不过后来又试了几次od一符加,游戏就退出!!!
我都是直接ret的
先去监视在偏移0x41e0处,然后去重启0x163c,去debugport 2处。。。0x2638 0x4f2c;
只成功过2次,后来od一符加游戏就退出了不知道为什么.....
|
能力值:
( LV2,RANK:10 )
|
-
-
142 楼
MARK,我**了 LZ
|
能力值:
( LV9,RANK:450 )
|
-
-
143 楼
mark mark
|
能力值:
( LV2,RANK:10 )
|
-
-
144 楼
这么好的资料不顶对不起楼主了
|
能力值:
( LV2,RANK:10 )
|
-
-
145 楼
如果有时间的话,我会将其他几个游戏保护的分析资料也放出来
什么GPK\HP\HS的。大家不要催不要急,一定会放出来的。等到我觉得这些东西都没有挑战性的时候那么也就不会再有资料陆续放出来了……:
楼主已给TX通缉
SD估计也要发通缉令了
学习
|
能力值:
( LV5,RANK:60 )
|
-
-
146 楼
mark 学习。。
|
能力值:
( LV2,RANK:10 )
|
-
-
147 楼
膜拜楼主,仰望楼主
|
能力值:
( LV2,RANK:10 )
|
-
-
148 楼
markkaaaaaa
|
能力值:
( LV2,RANK:10 )
|
-
-
149 楼
留个记号,有不少东西可以学习的。
|
能力值:
( LV2,RANK:10 )
|
-
-
150 楼
内核小菜鸟非常感谢楼主
|
|
|