- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 DLL注入技术之三注入shellcode
以前两篇博客使用的注入方式都是远程调用了函数:LoadLibraryA,现在使用一种方法是写入一段shellcode然后远程运行它,shellcode会先从peb链表中找到kernel32.dll,然后查找其导出表,找到LoadLibraryA这个函数并调用,以达到加载DLL的目的。要讲的是我把dll的路径字符串配置到了shellcode的尾部,这样改动dll的路径时可以不用变动shellcode。我这里有32位的shellcode与64位的shellcode,都是久经考验过的代码。
2024-01-05 23:01:27 688 1
原创 DLL注入技术之二启动进程时注入
这篇博客其实和上一篇差不多,上一篇讲是进程在完全运行时注入,这一篇是在启动进程时,先暂停了进程,然后注入了DLL后,再运行进程。这次就不传工程了,大家可以看我上一篇的文章,里面有个工程的链接。如果有什么问题的话,可以联系我的QQ:403887828。传入参数:CREATE_SUSPENDED,这样进程就会暂停住。第二步就是使用远程线程注入DLL的方法,将 DLL注入到进程里。第三步就是恢复目的进程执行。
2024-01-05 01:13:37 494 1
原创 DLL注入技术之一远程线程注入
这里要求打开进程的权限必须要有:PROCESS_VM_OPERATION,需要在目标进程里申请内存;这个代码里用到了sp_unique_ptr,这是自己实现的一个智能指针,所以我再传一个完整的工程上来,可以完整的编译,大家有什么需要交流的,可以加我QQ:403887828。这是一个古老的技术,网上也有大批的文章与代码,我这里只是再重新实现一次,力求的优点是可复用,代码整洁,可以让网友在需要的时候,直接把代码贴上就可以使用。注入的第三步是做一些收尾工作,将申请的内存释放掉,将进程句柄关掉。
2024-01-03 20:41:11 447 1
原创 LeetCode里马比赛的算法
void HorseRace(){ int horses[36]{}; for (int i = 0; i < 36; i++) { horses[i] = rand(); //随机马匹 } //分为6组,进行6次比赛,horses[i*6]是每组的冠军 for (int i = 0; i < 6; i++) { std::sort(&horses[i * 6], &ho...
2022-05-11 23:32:46 164
原创 PP保护5:中断与DebugPort
PP保护会处理中断1与中断3,试了一早上恢复中断表,结果都是重启,于是改成跳转,在PP保护的中断上写个jmp,跳到系统的中断处理上,就可以了. 先要找对代码的检测,在这个位置,找到它NOP掉就行了: 然后写跳转: PP保护还对进程结构体的DebugPort做了检测,如果发现不为零,也重启,我找到了它存放EPROCESS->DebugPort的偏移,把这个值改成EPROCESS->ExitTim
2017-03-06 13:27:41 720
原创 PP保护4:DbgkpProcessDebugPortMutex与DbgkDebugObjectType
PP保护对DbgkpProcessDebugPortMutex进行了处理,在其count里不停写入100,造成的后果就是OD一打开,就卡死了. PP保护还会遍历OBJECT,如果发现存在有DEBUG_OBJECT类型的OBJECT,就直接重启了。 所以要处理它们,处理互斥体的是这样的,自己申请一段内存,放在PP保护写入的地址处,然后把真正的MUTEX释放掉就OK了: 处理DbgkDebug
2017-03-05 20:46:35 1573
原创 PP保护3:HideFromDebugger
PP保护也会设置游戏线程的HideFromDebugger,不过它不是调用ZwSetInformationThread来设置,是用驱动遍历了游戏线程,直接线程的ETHREAD. 遍历线程的时候,它用到了PsLookupThreadByThreadId这个函数,所以我们要hook住这个函数,如果确定了当前是PP保护在调用这个函数,那么就把得到的线程对象的hidefromdebugger位去掉,切返回
2017-03-04 18:10:23 1229
原创 PP保护2:与调试相关的四个内核函数
看过《软件调试》一书的人都知道这几个内函数的重要性,它们是:NtCreateDebugObject,NtDebugActiveProcess,NtDebugContinue,NtWaitForDebugEvent 这几个函数被PP保护给inline hook,对付的办法是用SSDT对抗,直接跳过函数开头的jmp. 这里有个取巧的办法就是,PP保护inline hook了这四个函数,肯定在它的内存
2017-03-04 15:13:06 664
原创 PP保护1:读写进程内存
与众多保护一样,PP保护也是禁止游戏进程被打开的,像OpenProcess与Read/WriteProcessMemory内核的函数也是处理过的. 这几个函数是ssdt hook. 用windbg打开NtOpenProcess的hook,可以看到: PP会判断第二个参数与0x30做或运算,如果等于0的话,直接就跳走了.所以我们的解决办法是,inline NtOpenProcess,对这
2017-03-03 23:59:58 915
原创 让完美时空的游戏运行在vmware里
完美的游戏,有的会加一个保护:pp_data0,它会检测当前是否运行在虚拟机里. 检测方法有两种:1 检测系统内的驱动 2 调用中断.具体代码大家可以去百度. 用二进制工具打开pp_data0,可以看到,它检测了这些驱动: 将这些sys的名字改掉即可; 可以搜索”hxmv”,这是用中断的方法检测: 这里也改掉. 将改掉的pp_data0,改名为pp_data1,放在原来的目录里.
2017-03-02 21:36:43 848
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人