上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: (转载于breaksoftware的csdn博客)《windows核心编程》作者在讨论DllMain执行序列化的时候,曾说过一个他的故事:他试图通过调用DisableThreadLibraryCalls以使得新线程不在调用DllMain从而解决死锁问题。但是该方案最后失败了。思考作者的思路,他可能一... 阅读全文
posted @ 2015-02-02 21:20 Acg!Check 阅读(833) 评论(0) 推荐(0)
摘要: (转载于breaksoftware的csdn博客)本文介绍使用Windbg去验证《DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子》中的结论,调试对象是文中刚开始那个例子。 1 g 让程序运行起来 2 ctrl+break 中断程序 3 ~ 查看... 阅读全文
posted @ 2015-02-02 21:16 Acg!Check 阅读(282) 评论(0) 推荐(0)
摘要: (转载于breaksoftware的csdn博客)有了前面两节的基础,我们现在切入正题:研究下DllMain为什么会因为不当操作导致死锁的问题。首先我们看一段比较经典的“DllMain中死锁”代码。//主线程中HMODULEh=LoadLibraryA(strDllName.c_str());//D... 阅读全文
posted @ 2015-02-02 21:15 Acg!Check 阅读(388) 评论(0) 推荐(0)
摘要: (转载于breaksoftware的csdn博客)不知道大家是否思考过一个过程:系统试图运行我们写的程序,它是怎么知道程序起始位置的?很多同学想到,我们在编写程序时有个函数,类似Main这样的名字。是的!这就是系统给我们提供的控制程序最开始的地方(注意这儿是提供给我们的,而实际有比这个还要靠前的ma... 阅读全文
posted @ 2015-02-02 21:14 Acg!Check 阅读(323) 评论(0) 推荐(0)
摘要: (转载于breaksoftware的csdn博客)最近在网上看到一些关于在DllMain中不当操作导致死锁的问题,也没找到比较确切的解答,这极大吸引了我研究这个问题的兴趣。我花了一点时间研究了下,正好也趁机研究了下进程对DllMain的调用规律。因为整个研究篇幅比较长,我觉得还是分开写比较能突出重点... 阅读全文
posted @ 2015-02-02 21:13 Acg!Check 阅读(211) 评论(0) 推荐(0)
摘要: 转自:黑客反病毒DLL注入技术之输入法注入 输入法注入原理是利用Windows系统中在切换输入法需要输入字符时,系统就会把这个输入法需要的ime文件装载到当前进程中,而由于这个Ime文件本质上只是个存放在C:\WINDOWS\system32目录下的特殊的DLL文件,因此我们可以利用这个特性,在Im... 阅读全文
posted @ 2015-02-02 21:10 Acg!Check 阅读(1253) 评论(0) 推荐(0)
摘要: 转自:黑客反病毒APC注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,其具体流程如下: 1)当EXE里某个线程执行到SleepEx()或者WaitForSingleObjectEx()时,系统就会产生一个软中断。 2... 阅读全文
posted @ 2015-02-02 21:09 Acg!Check 阅读(340) 评论(0) 推荐(0)
摘要: 转自:黑客反病毒DLL注入技术之依赖可信进程注入 依赖可信进程注入原理是利用Windows 系统中Services.exe这个权限较高的进程,首先将a.dll远线程注入到Services.exe中,再利用a.dll将b.dll远线程注入到待注入进程中。具体过程如下图所示:这里提供一个小技巧,当注入到... 阅读全文
posted @ 2015-02-02 21:07 Acg!Check 阅读(466) 评论(0) 推荐(0)
摘要: 转自:黑客反病毒DLL注入技术之远线程注入 DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等。 远线程注入原理是... 阅读全文
posted @ 2015-02-02 21:06 Acg!Check 阅读(270) 评论(0) 推荐(0)
摘要: 转自:黑客反病毒DLL注入技术之劫持进程创建注入 劫持进程创建注入原理是利用Windows系统中CreateProcess()这个API创建一个进程,并将第6个参数设为CREATE_SUSPENDED,进而创建一个挂起状态的进程,利用这个进程状态进行远程线程注入DLL,然后用ResumeThread... 阅读全文
posted @ 2015-02-02 21:05 Acg!Check 阅读(1076) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页