[转载]开发所用到工具和方法 – rolends1986 – 博客园.
-
关于windows窗体
-
简介:大家都知道基于windows系统的交互都基于窗体(window)的,所以window是交互界面,或者交互入口,在windows中基础编程中句柄表示各种类,对象,资源的实例,那么窗体也是有句柄的,窗体的中的控件一定有句柄?(答案下面揭晓)
-
窗体的分析方式
-
Spy++:Spy++是一个基于 Win32(最新版本支持Win64) 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图(百度抄的),这个工具是微软自家,微软自家的没什么说的,功能很强大,它可以分析窗体句柄,捕获消息,查看线程等功能,
-
通过上述示例我们可以得到winrar界面的窗体(句柄)结构,以及属性信息,通过这些属性信息就可以在筛选出我们需要的窗体了
-
inspect32:inspect32也是一个窗体信息查看的,它和spy不同的是它可以查看菜单
-
-
关于无句柄窗体(DUI)
-
最近这个几年发展起来的技术,大家可以百度”无句柄窗体”,这种窗体的好处很多,我比较喜欢的性能好,保密性好这个两方面的
-
-
按钮点击的实现
-
通过窗体消息
SendMessage(hWnd,WM_LBUTTONDOWN, 0x0000001, lprama);按下鼠标左键
SendMessage (hWnd,WM_LBUTTONUP, 0x0000000, lprama);放开鼠标左键
其中lprama为位置参数,构造方法 int lprama = ((y << 16) | (x & 0xffff));
-
移动鼠标,发送点击事件
WinAPIHelper.SetCursorPos(x, y); 设置鼠标位置 WinAPIHelper.mouse_event(WinAPIHelper.MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);按下鼠标左键
WinAPIHelper.mouse_event(WinAPIHelper.MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
放开鼠标左键
-
-
文本设置实现
-
通过窗体消息
WinAPIHelper.SendMessage(hwnd, WinAPIHelper.WM_SETTEXT, IntPtr.Zero, new StringBuilder(text));
-
模拟键盘
WinAPIHelper.SetForegroundWindow(hwnd);//设置焦点
SendKeys.SendWait(text);//发送键盘
-
-
.Net 全局钩子的实现
- 简介:.net由于是托管代码,基于fx运行时(虚拟机),无法实现全局钩子,由于.net的dll没有dllMain函数,所以无法实现远程注入
-
DLL注入
- 上面说的无法实现远程,我这里来说P话?不是的,我这里说的注入混合型dll,大家可以百度,非托管dll可以通过DllMain,调用托管Dll实现托管到非托管的连接调用
-
EasyHook
-
EasyHook 是 codeplex上的一个开源项目,它实现了windows 函数钩子,不多说上链接http://easyhook.codeplex.com/,大家可下载源码编译源码可读性不错,作者说的蛮牛X的,但是并不是那么完美,当Hook ExTextOu t函数时,中文乱码,正在调试源码,试图找出问题
-
/Files/Rolends/开发所用到工具和方法.doc 后缀为docx,由于不能上传docx故改之