随笔分类 -  Win32

摘要:(转载于breaksoftware的csdn博客)前几篇文章一直没有在源码级证明:DllMain在收到DLL_PROCESS_ATTACH和DLL_PROCESS_DETACH时会进入临界区。这个论证非常重要,因为它是使其他线程不能进入临界区从而导致死锁的关键。我构造了在DLL被映射到进程地址空间的... 阅读全文
posted @ 2015-02-02 21:21 Acg!Check 阅读(794) 评论(0) 推荐(0)
摘要:(转载于breaksoftware的csdn博客)《windows核心编程》作者在讨论DllMain执行序列化的时候,曾说过一个他的故事:他试图通过调用DisableThreadLibraryCalls以使得新线程不在调用DllMain从而解决死锁问题。但是该方案最后失败了。思考作者的思路,他可能一... 阅读全文
posted @ 2015-02-02 21:20 Acg!Check 阅读(824) 评论(0) 推荐(0)
摘要:(转载于breaksoftware的csdn博客)本文介绍使用Windbg去验证《DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子》中的结论,调试对象是文中刚开始那个例子。 1 g 让程序运行起来 2 ctrl+break 中断程序 3 ~ 查看... 阅读全文
posted @ 2015-02-02 21:16 Acg!Check 阅读(281) 评论(0) 推荐(0)
摘要:(转载于breaksoftware的csdn博客)有了前面两节的基础,我们现在切入正题:研究下DllMain为什么会因为不当操作导致死锁的问题。首先我们看一段比较经典的“DllMain中死锁”代码。//主线程中HMODULEh=LoadLibraryA(strDllName.c_str());//D... 阅读全文
posted @ 2015-02-02 21:15 Acg!Check 阅读(382) 评论(0) 推荐(0)
摘要:(转载于breaksoftware的csdn博客)不知道大家是否思考过一个过程:系统试图运行我们写的程序,它是怎么知道程序起始位置的?很多同学想到,我们在编写程序时有个函数,类似Main这样的名字。是的!这就是系统给我们提供的控制程序最开始的地方(注意这儿是提供给我们的,而实际有比这个还要靠前的ma... 阅读全文
posted @ 2015-02-02 21:14 Acg!Check 阅读(320) 评论(0) 推荐(0)
摘要:(转载于breaksoftware的csdn博客)最近在网上看到一些关于在DllMain中不当操作导致死锁的问题,也没找到比较确切的解答,这极大吸引了我研究这个问题的兴趣。我花了一点时间研究了下,正好也趁机研究了下进程对DllMain的调用规律。因为整个研究篇幅比较长,我觉得还是分开写比较能突出重点... 阅读全文
posted @ 2015-02-02 21:13 Acg!Check 阅读(205) 评论(0) 推荐(0)
摘要:转自:黑客反病毒DLL注入技术之输入法注入 输入法注入原理是利用Windows系统中在切换输入法需要输入字符时,系统就会把这个输入法需要的ime文件装载到当前进程中,而由于这个Ime文件本质上只是个存放在C:\WINDOWS\system32目录下的特殊的DLL文件,因此我们可以利用这个特性,在Im... 阅读全文
posted @ 2015-02-02 21:10 Acg!Check 阅读(1247) 评论(0) 推荐(0)
摘要:转自:黑客反病毒APC注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,其具体流程如下: 1)当EXE里某个线程执行到SleepEx()或者WaitForSingleObjectEx()时,系统就会产生一个软中断。 2... 阅读全文
posted @ 2015-02-02 21:09 Acg!Check 阅读(338) 评论(0) 推荐(0)
摘要:转自:黑客反病毒DLL注入技术之依赖可信进程注入 依赖可信进程注入原理是利用Windows 系统中Services.exe这个权限较高的进程,首先将a.dll远线程注入到Services.exe中,再利用a.dll将b.dll远线程注入到待注入进程中。具体过程如下图所示:这里提供一个小技巧,当注入到... 阅读全文
posted @ 2015-02-02 21:07 Acg!Check 阅读(464) 评论(0) 推荐(0)
摘要:转自:黑客反病毒DLL注入技术之远线程注入 DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等。 远线程注入原理是... 阅读全文
posted @ 2015-02-02 21:06 Acg!Check 阅读(269) 评论(0) 推荐(0)
摘要:转自:黑客反病毒DLL注入技术之劫持进程创建注入 劫持进程创建注入原理是利用Windows系统中CreateProcess()这个API创建一个进程,并将第6个参数设为CREATE_SUSPENDED,进而创建一个挂起状态的进程,利用这个进程状态进行远程线程注入DLL,然后用ResumeThread... 阅读全文
posted @ 2015-02-02 21:05 Acg!Check 阅读(1071) 评论(0) 推荐(0)
摘要:转自:黑客反病毒DLL注入技术之消息钩子注入 消息钩子注入原理是利用Windows 系统中SetWindowsHookEx()这个API,他可以拦截目标进程的消息到指定的DLL中导出的函数,利用这个特性,我们可以将DLL注入到指定进程中。主要流程如下图所示1.准备阶段 需要编写一个DLL,并且显... 阅读全文
posted @ 2015-02-02 21:04 Acg!Check 阅读(604) 评论(0) 推荐(0)
摘要:转自:黑客反病毒DLL注入技术之ComRes注入 ComRes注入的原理是利用Windows 系统中C:\WINDOWS\system32目录下的ComRes.dll这个文件,当待注入EXE如果使用CoCreateInstance()这个API时,COM服务器会加载ComRes.dll到EXE中... 阅读全文
posted @ 2015-02-02 21:03 Acg!Check 阅读(468) 评论(0) 推荐(0)
摘要:转自:黑客反病毒论坛DLL注入技术之REG注入 DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等。 REG注入... 阅读全文
posted @ 2015-02-02 21:02 Acg!Check 阅读(345) 评论(0) 推荐(1)
摘要:===========================================原文地址:点击打开链接最近读到windows核心编程 作者制作的chHANDLE_DLGMSG 对话框消息处理宏#definechHANDLE_DLGMSG(hWnd,message,fn)/case(messag... 阅读全文
posted @ 2015-02-02 20:56 Acg!Check 阅读(535) 评论(0) 推荐(0)
摘要:源自:http://bjwf.cndev.org/2004/06/03/559/http://bbs.csdn.net/topics/40214261======================================今天老玉米提了一个问题问为什么dll里malloc的内存如果在exe里fr... 阅读全文
posted @ 2015-02-02 17:17 Acg!Check 阅读(625) 评论(0) 推荐(0)
摘要:10.对话框管理器的内部工作 我认为许多对于对话框管理器的困惑,来自没有真正的理解它是怎么工作的.没有那么糟糕.在一些热身讨论之后,我走进对话框模板的历史,把它作为一个基础来理解对话框时怎么建立的,然后跟踪对话框消息循环,分成几个章节以便浏览.关于对话框过程 一个对话框过程真的没有多少东西.对于每条... 阅读全文
posted @ 2015-02-02 17:16 Acg!Check 阅读(479) 评论(0) 推荐(0)
摘要:#definechSTR2(x) #x这个是串化,chSTR2(1+1==2)替换成"1+1==2"其他的都是M$的扩展,不需要搞明白..#pragmawarning(push,3)//3级警告设置入栈#pragmawarning(pop)//警告设置出栈#pragmawarning(push,4)... 阅读全文
posted @ 2015-02-02 17:15 Acg!Check 阅读(267) 评论(0) 推荐(0)
摘要:Windows API 函数 GetProcAddress 被广泛用于取得函数指针地址。 例如:typedef BOOL (WINAPI*pfnGetProductInfo)(DWORD, DWORD, DWORD, DWORD, PDWORD);pGPI = (pfnGetProductInfo)... 阅读全文
posted @ 2015-02-02 17:11 Acg!Check 阅读(2451) 评论(0) 推荐(0)
摘要:RVA = 虚拟地址 - 基址 如: 00423562 - 00400000 = 23562 -------------------------------------------------- 作 者: LeoF时 间: 2010-03-23,17:53:48 链 接: http://bbs.pe... 阅读全文
posted @ 2015-02-02 17:09 Acg!Check 阅读(487) 评论(0) 推荐(0)