|
|
|
[原创]无需偷代码的API HOOK
可是DRX只支持4个断点啊~ |
|
|
|
[原创]无需偷代码的API HOOK
本身修改可执行代码的操作就不是原子操作,在HOOK的过程中就有可能会挂掉,多线程的问题,不解释 你在处理HOOK的过程中还要频繁去修改被挂钩函数的代码,这样太不稳定。 理论实验和真正的工程实践完全是两个东西 非常简单的一个测试办法就是,你把你的这个HOOK方式 写一个HOOK Send函数的HOOK 然后注入到一个网络游戏里面 保证你崩倒High,N年前调试游戏的时候为了图省事就用过一个你的这种思路的HOOK引擎,结果就是各种踩地雷式的崩溃,最后排查各种问题发现是这个恢复HOOK的问题 |
|
[求助]求指点 PsGetContextThread和Set函数的一些问题
亲 你没发烧吧 PsSetContextThread这个函数是ntoskrnl.exe导出的 跟ntdll有什么关系 一个内核态 一个用户态 |
|
[求助]ZwWriteVirtualMemory写内存导致蓝屏
ZwWriteVirtualMemory这个函数是个未导出的函数,你需要自己搜索 在调用这个函数之前 你先调试输出一下这个函数的地址 看看对不对 |
|
[求助]Delphi怎么判断一个Word类型的数据的高位和低位
WORD是16位数据类型,不知道LZ想表达什么意思,如果想关注第16位的值 只需要和$8000做and运算再右移就可以了。 var a:word; begin a:=(a and $8000) shr 15; end; |
|
可以添加杀掉敌对进程选项的加密壳
K进程那个貌似算是基本的ANTI吧 我记得好几年前有个壳是支持这个的~ |
|
求助:关于保护模式和GDT
当开启A20地址线、设置GDT、CR0.PE=1这些操作完成以后,这个时候CPU已经进入了保护模式,但是这个保护模式是16位保护模式,因为CS寄存器的状态还是16位状态下遗留下来的,那个jmp实际是个far jmp,far jmp的目的其实是刷新CPU的CS寄存器的Cache部分,这样能保证进入32位保护模式 CS在不同的模式下解释方式不一样,实地址模式下,是段寄存器,保护模式下是段选择子 |
|
[原创]简单调用任意未导出SSDT函数方法
我都是倾向搜索Zw*的函数,不过没楼主那么麻烦,你反汇编一下Zw*函数的内存你会发现所有的Zw*的函数从第一个到最后一个都在一段连续的内存里面,而且每个Zw*函数的开头都是MOV EAX,xxxxxxx 换成机器码就是B8 XXXXXXXX 我的办法是: 1.根据函数名从ntdll.dll中获取index XX XX XX XX 2.从第一个导出的Zw*函数开始向下搜索 B8 XX XX XX XX 搜索到的地址 就是那个Zw*函数在内核的地址,不管导出与否 |
|
[求助]软件加壳后怎么才能避过杀软的误报?
正版壳貌似不会报~ |
|
如何查看指令码对应的汇编
可以查询intel手册 或者是查询相关的文档定义 |
|
如何查看指令码对应的汇编
你这是16位的代码吧.... |
|
[原创]简单谈谈“游戏圈”所谓的神乎其技的行为检测(1)
我是来膜拜老V的 |
|
[求助]拦截ZwCreateThread之后主、从进程的判断
亲,NtCurrentProcess()的值是固定的0xFFFFFFFF |
|
[求助][讨论]看下我这种网络验证思路的强度如何
传输过程加密木有意义,你执行那个dll之前是要解密的吧,解密的时候就能扒下来 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值