
Win32
文章平均质量分 74
ProgrammingRing
这个作者很懒,什么都没留下…
展开
-
Delphi逆向
Delphi反汇编内部字符串处理函数/过程不完全列表名称参数返回值作用等价形式 / 备注 _PStrCatEAX :目标字符串EDX :源字符串EAX连接两个 Pascal 字符串s:=copy(s+s1,1,255) _PStrNCatEAX :目标字符串EDX :源字符串CL :结果字符串最大长度EAX连接两个转载 2015-02-02 22:01:10 · 3683 阅读 · 0 评论 -
[经典文章翻译]A Crash Course on the Depths of Win32 Structured Exception Handling
转自:原文题目: >原文地址: http://www.microsoft.com/msj/0197/Exception/Exception.aspx 原作者: Matt Pietrek 在Win32的核心, 结构化异常处理(Structured Exception Handling)(SEH) 是操作系统提供的一种服务. 你能找到的所有关于SEH的文档都会描述转载 2014-08-20 12:05:26 · 1225 阅读 · 0 评论 -
VB程序逆向反汇编常见的函数
转自: http://www.cnblogs.com/bbdxf/p/3780187.html转载 2014-08-04 20:44:32 · 7969 阅读 · 1 评论 -
DllMain中不当操作导致死锁问题的分析——DllMain中要谨慎写代码(完结篇)
(转载于breaksoftware的csdn博客)之前几篇文章主要介绍和分析了为什么会在DllMain做出一些不当操作导致死锁的原因。本文将总结以前文章的结论,并介绍些DllMain中还有哪些操作会导致死锁等问题。 DllMain的相关特性 首先列出《DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析》中论证的1转载 2014-03-18 15:54:17 · 915 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析——线程中调用GetModuleFileName、GetModuleHandle等导致死锁
(转载于breaksoftware的csdn博客)之前的几篇文章已经讲解了在DllMain中创建并等待线程导致的死锁的原因。是否还记得,我们分析了半天汇编才知道在线程中的死锁位置。如果对于缺乏调试经验的同学来说,可能发现这个位置有点麻烦。那么本文就介绍几个例子,它们会在线程明显的位置死锁掉。 DLL中的代码依旧简单。它获取叫EVENT的命名事件,然后等待这个事件被激活。激转载 2014-03-18 15:51:55 · 1035 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析--线程退出时产生了死锁
(转载于breaksoftware的csdn博客)我们回顾下之前举得例子[cpp] view plaincopycase DLL_PROCESS_ATTACH: { printf("DLL DllWithoutDisableThreadLibraryCalls_A:\tProcess attach (tid = %d)\n", tid);转载 2014-03-18 15:50:38 · 794 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析--加载卸载DLL与DllMain死锁的关系
(转载于breaksoftware的csdn博客)前几篇文章一直没有在源码级证明:DllMain在收到DLL_PROCESS_ATTACH和DLL_PROCESS_DETACH时会进入临界区。这个论证非常重要,因为它是使其他线程不能进入临界区从而导致死锁的关键。我构造了在DLL被映射到进程地址空间的场景,请看死锁时加载DLL的线程的堆栈 如果仔细看过《DllMai转载 2014-03-18 15:47:13 · 929 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析--DisableThreadLibraryCalls对DllMain中死锁的影响
(转载于breaksoftware的csdn博客)《windows核心编程》作者在讨论DllMain执行序列化的时候,曾说过一个他的故事:他试图通过调用DisableThreadLibraryCalls以使得新线程不在调用DllMain从而解决死锁问题。但是该方案最后失败了。思考作者的思路,他可能一开始认为:因为线程要调用DllMain而加锁,于是windows在发现DllMain不用调用转载 2014-03-18 15:38:58 · 1662 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子2
本文介绍使用Windbg去验证《DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子》中的结论,调试对象是文中刚开始那个例子。(转载请指明出于breaksoftware的csdn博客) 1 g 让程序运行起来 2 ctrl+break 中断程序 3 ~ 查看线程数 其实该程序自己运行起来转载 2014-03-18 15:31:53 · 883 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子
(转载于breaksoftware的csdn博客)有了前面两节的基础,我们现在切入正题:研究下DllMain为什么会因为不当操作导致死锁的问题。首先我们看一段比较经典的“DllMain中死锁”代码。[cpp] view plaincopy//主线程中 HMODULE h = LoadLibraryA(strDllName.c_str());转载 2014-03-18 15:31:11 · 1055 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析
转载于breaksoftware的csdn博客不知道大家是否思考过一个过程:系统试图运行我们写的程序,它是怎么知道程序起始位置的?很多同学想到,我们在编写程序时有个函数,类似Main这样的名字。是的!这就是系统给我们提供的控制程序最开始的地方(注意这儿是提供给我们的,而实际有比这个还要靠前的main)。于是看到DllMain就可以想到它是干嘛的了:Dll的入口点函数。那何时调用这个函数的呢转载 2014-03-18 15:30:10 · 1013 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析--死锁介绍
最近在网上看到一些关于在DllMain中不当操作导致死锁的问题,也没找到比较确切的解答,这极大吸引了我研究这个问题的兴趣。我花了一点时间研究了下,正好也趁机研究了下进程对DllMain的调用规律。因为整个研究篇幅比较长,我觉得还是分开写比较能突出重点。本文先说说死锁。(转载请指明出于breaksoftware的csdn博客) 介绍死锁之前,我说一个我小时候听过的一个故事:转载 2014-03-18 15:28:22 · 922 阅读 · 0 评论 -
Dll注入技术之输入法注入
转自:黑客反病毒DLL注入技术之输入法注入 输入法注入原理是利用Windows系统中在切换输入法需要输入字符时,系统就会把这个输入法需要的ime文件装载到当前进程中,而由于这个Ime文件本质上只是个存放在C:\WINDOWS\system32目录下的特殊的DLL文件,因此我们可以利用这个特性,在Ime文件中使用LoadLibrary()函数待注入的DLL文件。1.编写转载 2014-02-06 23:36:59 · 11609 阅读 · 0 评论 -
Dll注入技术之APC注入
转自:黑客反病毒APC注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,其具体流程如下: 1)当EXE里某个线程执行到SleepEx()或者WaitForSingleObjectEx()时,系统就会产生一个软中断。 2)当线程再次被唤醒时,此线程会首先执行APC队列中的被注册的函数。 3转载 2014-02-06 23:27:12 · 2322 阅读 · 0 评论 -
Dll注入技术之劫持进程创建注入
转自:黑客反病毒DLL注入技术之劫持进程创建注入 劫持进程创建注入原理是利用Windows系统中CreateProcess()这个API创建一个进程,并将第6个参数设为CREATE_SUSPENDED,进而创建一个挂起状态的进程,利用这个进程状态进行远程线程注入DLL,然后用ResumeThread()函数恢复进程。1.创建挂起的进程 下面是创建一个挂起转载 2014-02-06 23:22:13 · 5289 阅读 · 0 评论 -
Dll注入技术之依赖可信进程注入
转自:黑客反病毒DLL注入技术之依赖可信进程注入 依赖可信进程注入原理是利用Windows 系统中Services.exe这个权限较高的进程,首先将a.dll远线程注入到Services.exe中,再利用a.dll将b.dll远线程注入到待注入进程中。具体过程如下图所示:这里提供一个小技巧,当注入到Services.exe里的DLL时,想在做完事情转载 2014-02-06 23:20:13 · 3444 阅读 · 0 评论 -
Dll注入技术之远程线程注入
转自:黑客反病毒DLL注入技术之远线程注入 DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等。 远线程注入原理是利用Windows 系统中CreateRemoteThread()这转载 2014-02-06 23:16:15 · 3238 阅读 · 0 评论 -
Dll注入技术之消息钩子
转自:黑客反病毒DLL注入技术之消息钩子注入 消息钩子注入原理是利用Windows 系统中SetWindowsHookEx()这个API,他可以拦截目标进程的消息到指定的DLL中导出的函数,利用这个特性,我们可以将DLL注入到指定进程中。主要流程如下图所示1.准备阶段 需要编写一个DLL,并且显式导出MyMessageProc()函数,主要代码如转载 2014-02-06 23:14:07 · 7726 阅读 · 0 评论 -
Dll注入技术之ComRes注入
转自:黑客反病毒DLL注入技术之ComRes注入 ComRes注入的原理是利用Windows 系统中C:\WINDOWS\system32目录下的ComRes.dll这个文件,当待注入EXE如果使用CoCreateInstance()这个API时,COM服务器会加载ComRes.dll到EXE中,我们利用这个加载过程,移花接木的把ComRes.dll替换掉,并在伪造的ComR转载 2014-02-06 23:09:18 · 1621 阅读 · 0 评论 -
Dll注入技术之注册表注入
DLL注入技术之REG注入 DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等。 REG注入原理是利用在Windows 系统中,当REG以下键值中存在有DLL文件路径时,会跟随EXE文件的启动加载这转载 2014-02-06 23:00:12 · 6886 阅读 · 0 评论 -
关于chHANDLE_DLGMSG
===========================================原文地址:点击打开链接最近读到windows核心编程 作者制作的chHANDLE_DLGMSG 对话框消息处理宏 [cpp] view plaincopy#define chHANDLE_DLGMSG(hWnd, message, fn)转载 2013-04-13 00:12:31 · 915 阅读 · 0 评论 -
关于对话框管理器
原文:点击打开链接10.对话框管理器的内部工作 我认为许多对于对话框管理器的困惑,来自没有真正的理解它是怎么工作的.没有那么糟糕.在一些热身讨论之后,我走进对话框模板的历史,把它作为一个基础来理解对话框时怎么建立的,然后跟踪对话框消息循环,分成几个章节以便浏览.关于对话框过程 一个对话框过程真的没有多少东西.对于每条消息,你可以选择是否处理它,就像一个窗口过程那样.但不同的转载 2013-04-13 00:09:48 · 1052 阅读 · 0 评论 -
MFC永久窗口对象与临时窗口对象
首先我要说明一点的就是窗口是没有临时与永久之分的,窗口是一种资源,随着CreateWindow的调用而产生,随着DestroyWindow的调用而被销毁(资源所占据的内存被回收),在windows程序设计中通过句柄(这里可以将句柄看成是C++中的指针)来标识资源,通过句柄来操作窗口,控制窗口,也就是说真正表示窗口的是窗口句柄HWND类型变量,为了方便开发、提高开发效率,MFC帮我们封装了与窗口有关转载 2013-02-13 17:38:45 · 2202 阅读 · 1 评论 -
CControlBar::GetDockingFrame的一点问题
这个函数的MSDN: http://msdn.microsoft.com/zh-cn/library/vstudio/41z5kzz8.aspx今天看孙鑫的MFC视频第9课的浮动工具栏时,视频里有说当一个浮动窗口为一个独立的小窗口显示时,显示和隐藏后的位置不变,网上看到如下实现代码:CRect rect; CFrameWnd* pParentFrame = m_newTool原创 2013-02-11 20:19:39 · 1331 阅读 · 0 评论 -
Release下IATHOOK失败的原因
书上的一个例子,源码如下////////////////////////////////////// 09HookDemo.cpp文件#include #include // 挂钩指定模块hMod对MessageBoxA的调用BOOL SetHook(HMODULE hMod);// 定义MessageBoxA函数原型typedef int (WINAPI *PFNM转载 2012-12-24 17:29:03 · 807 阅读 · 0 评论 -
Tab Control And List Control使用小记
添加分栏 > 这里所说的分栏呢就是上面图中的分栏1、分栏2那里,当然,可以多分,添加分栏可以发送消息,LVM_INSERTCOLUMN,wParam参数为分栏号,从0开始,lParam为LVCOLUMN结构指针如: LVCOLUMN column; // 指定LCOLUMN结构的pszText, fmt, cx有效 column.mask = LVCF_TEXT | LVC原创 2012-12-18 23:38:27 · 1839 阅读 · 0 评论 -
使用API函数GetProcAddress的注意事项
转自:点击打开链接Windows API 函数 GetProcAddress 被广泛用于取得函数指针地址。 例如: typedef BOOL (WINAPI *pfnGetProductInfo)(DWORD, DWORD, DWORD, DWORD, PDWORD); pGPI = (pfnGetProductInfo) GetProcAddress(Ge转载 2012-12-04 15:56:10 · 2177 阅读 · 0 评论 -
Windows消息 2
转自:http://blog.chinaunix.net/uid-53564-id-2098887.html===================0501. STM_GETIMAGE = 0x0173;0502. STM_SETICON = 0x0170;0503. STM_SETIMAG转载 2012-07-08 21:09:18 · 1381 阅读 · 0 评论 -
Windows消息 1
转自:http://blog.chinaunix.net/uid-53564-id-2098886.html0001. WM_DEVICECHANGE = 0x0219;0002. WM_POWERBROADCAST = 0x0218;0003. WM_NOTIFY转载 2012-07-08 21:07:40 · 1557 阅读 · 0 评论 -
VC中使用ListCtrl和LVITEM 经验总结
转自:http://hi.baidu.com/gouya/blog/item/8f2c033327142af21a4cffcc.htmlListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是rep转载 2012-06-27 18:21:46 · 1244 阅读 · 0 评论 -
列表视图控件
列表视图控件(List Control)列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个子项目组成,并且支持大图标、小图标、列表和报表4种方式显示信息,如图1所示。图1 列表视图的4种显示方式列表视图包含一个项目列表,而其中每个项目由图标、项目名称和多个子项组成,每转载 2012-06-27 18:20:15 · 870 阅读 · 0 评论 -
SysListView32使用
转自:http://www.cnblogs.com/coderlee/archive/2010/01/06/1640783.html使用列表控制的步骤如下:1. 调用CreateWindowEx函数来创建一个列表控件,指定它的类名为SysListView32。您还可以在此处指定控件初次显示时的方式。2. 创建和初始化用在列表控件中显示项目的图转载 2012-06-27 17:55:06 · 2435 阅读 · 0 评论 -
SysListView32控件响应鼠标单击消息
本文出自程序人生 >> SysListView32控件响应鼠标单击消息作者:代码疯子SysListView32控件就是列表视图控件(MFC里面的CListCtrl就是对SysListView32进行的封装)。如果想知道用户选择了哪个元素,可以这么响应消息(注意,这里是Report风格):// Coded by 代码疯子 // http://www.programlife.net/转载 2012-06-27 17:43:31 · 4115 阅读 · 0 评论 -
设置光标位置
今天学习的时候发现SetWindowText设置编辑框的文本后光标位置不变,还是在开头,没到结尾,下面说个改变光标位置的方法SetWindowText后,用GetWindowTextLength或发送WM_GETTEXTLENGTH消息获取文本的长度(或先获得文本,然后再量长度),然后发送EM_SETSEL或EM_EXSETSEL消息,将wParam和lParam参数(EM_SETSEL而言,原创 2012-05-24 12:10:25 · 3389 阅读 · 0 评论 -
WM_SETICON的一点注意
今天用SendMessage(hwnd, WM_SETICON, ICON_BIG, hIcon );改图标的时候,看到点问题,记录下ICON_BIG大图标所说的是Alt+Tab后的显示图标ICON_SMALL小图标是标题栏的图标和任务栏里显示的图标如果没有设置小图标,那么以后只设大图标,Alt+Tab、标题栏、任务栏都会变,但是,一旦设置过了小图标,不管是初始化还是后来再设置的,原创 2012-04-23 19:43:43 · 7217 阅读 · 0 评论 -
DateTimePicker控件的问题
今天弄这个控件,可以拖到对话框上编译,没错,但是运行对话框不显示。。手动在窗口上创建。。不显示。。哎呀。那个郁闷啊,后来终于知道了咋回事。原来得初始化啊。。初始化方式如下。。INITCOMMONCONTROLSEX icex;icex.dwICC = ICC_DATE_CLASSES;icex.dwSize = sizeof(INITCOMMONCONTROLSEX);Init原创 2011-12-28 13:43:50 · 486 阅读 · 0 评论