windows api 学习心得
文章平均质量分 80
fanpeii
这个作者很懒,什么都没留下…
展开
-
创建进程快照。【转帖】
SHELL成功后会返回程序的PID 把PID保存到一个变量或数组里 然后遍历系统进程PID 如果存在则说明程序没有关闭 下面是一个例子,遍历进程ID保存到ProcessID里 CreateToolhelp32Snapshot 用于创建进程快照。 Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal原创 2010-07-25 18:52:00 · 1553 阅读 · 0 评论 -
创建互斥对象,让程序只运行一个。
int _tmain(int argc, _TCHAR* argv[]){ // 创建互斥量 不允许多开 HANDLE m_hMutex = CreateMutex(NULL, FALSE, L"my_server_one"); // 检查错误代码 if (GetLastError() == ERROR_ALREADY_EXISTS) { // 如果已有互斥量存原创 2012-10-25 09:56:30 · 638 阅读 · 0 评论 -
利用 GetModuleFileName 获得当前目录
#include #include #include #define IN_DLL_NAME L"360safes.dll"#define IN_XL_DLL_NAME L"xl.dll"void W_Get_APP_Path(WCHAR *OUT_PATH,WCHAR *OUT_PATH2){ WCHAR lpFilename[256]; WCHAR* s原创 2012-10-25 09:54:18 · 905 阅读 · 0 评论 -
VC 全屏截图 局部截图
使用前 以下必须先设置 项目->属性->配置属性->常规->MFC的使用 选择“在共享 DLL 中使用 MFC” 代码如下 // vc截图.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include //#include HBITMAP CopyScreenToBitmap(LPRECT lpR原创 2012-11-07 21:58:12 · 4652 阅读 · 2 评论 -
判断操作系统
// 判断操作系统.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include void GetSystem(){ int a=0,b=0,i=0,j=0; _asm { pushad mov ebx,fs:[0x18] ; get self pointer fro原创 2012-10-25 13:25:22 · 785 阅读 · 0 评论 -
vc 线程 通信
可以发送少量文本数据。 // 线程间通信.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #define WM_USER_MSG WM_USER+102COPYDATASTRUCT SendText;DWORD WINAPI Thread(LPVOID lpParameter){ COPYDATASTRUCT re_Sen原创 2012-11-08 18:08:38 · 937 阅读 · 0 评论 -
hook 窗口消息队列
此段代码,不能在控制台里运行,必须有窗口。 // HOOK 消息循环处理.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include ////LRESULT (CALLBACK *Old_WindowProc) (HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);LONG O原创 2012-11-08 16:41:38 · 2617 阅读 · 0 评论 -
vc 控制台下 窗口消息处理 以及 定时函数 SetTimer
控制台是没有窗口处理队列的,所以必须自己处理函数。 进程间的通信。用 #define WM_USER_MSG WM_USER+102 WM_COPYDATA貌似不起作用。 我们手动制作一个消息处理函数,然后就可以进行 settimer,定时处理任务了。 // HOOK 消息循环处理.cpp : 定义控制台应用程序的入口点。//#include "StdAfx.h原创 2012-11-08 16:49:03 · 2353 阅读 · 0 评论 -
hook ZwQuerySystemInformation 隐藏进程
该程序用vs2010编译通过。编译时选择release版本。该程序可以通过hook ZwQuerySystemInformation来达到隐藏进程的功能。// HideProcess.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include //#inc原创 2012-10-22 12:42:13 · 2120 阅读 · 0 评论 -
获取系统运行进程信息——PSAPI介绍使用 .
网上资料显示,有这么三种方法可以用来获取系统运行进程信息:方法平台备注PSAPIWindows NT,Windows2000,Windows XP获取进程,驱动器,模块,内存和工作集信息性能计数器Windows NT,Windows2000,Windows XP提供除进程清单以外的关于进程的原创 2012-10-24 15:57:40 · 1134 阅读 · 0 评论 -
函数指针赋值
在远程注入的时候特别需要给函数指针赋值。 有以下2种方法,第一定义方法。主要用于给大量同参数的函数注入。 #include "stdafx.h"#include "windows.h"typedef int (_stdcall * p_MessageBoxA)(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType)原创 2012-10-22 21:11:30 · 5316 阅读 · 0 评论 -
Hook Api 以MessageBoxA为例
Hook Api 以MessageBoxA为例利用PowerBasic论坛的4n85大哥的PB代码转化过来的。经测试,没有问题哦。复制请回帖,下回为您提供更好的代码。原创 2010-07-27 22:37:00 · 1434 阅读 · 0 评论 -
EnumWindows/EnumChildWindows/ 枚举窗口 子窗口 调用实例
在msdn中查到了 这4个函数之间的关系,可惜只有VB代码,只能费一点时间将其转化为VC代码,再继续研究。执行的顺序如下EnumWindows----EnumWindowsProc----EnumChildWindows----EnumChildProc----执行完毕后将结果输入到data.txt文件当中。 /*连城制作QQ:173661967*/#include#includefstream tfile("data.txt",ios::in|ios::out);BOOL原创 2010-07-30 17:45:00 · 10936 阅读 · 0 评论 -
copy-on-write原理
copy-on-write原理。简单来说,在复制一个对象时并不是真的在内存中把原来对象的数据复制一份到另外一个地址,而是在新对象的内存映射表中指向同原对象相同的位置,并且把那块内存的 Copy-On-Write 位设为 1。在对这个对象执行读操作的时候,内存数据没有变动,直接执行就可以。在写的时候,才真正将原始对象复制一份到新的地址,修改新对象的内存映射表到这个新的位置,然后往这里写。原创 2011-01-30 22:42:00 · 724 阅读 · 0 评论 -
hook api (push xxxx/retn)
hook api (push xxxx/retn)原创 2011-02-01 20:38:00 · 793 阅读 · 0 评论 -
隐藏dll
这是一段隐藏dll的代码。原创 2011-02-01 20:15:00 · 1054 阅读 · 0 评论 -
进程之间的通信技术
使用wm_copydata收发消息。原创 2011-04-08 11:11:00 · 567 阅读 · 0 评论 -
创建共享内存 的方式
共享内存 数据传输方式 附源码原创 2011-04-08 23:05:00 · 1693 阅读 · 0 评论 -
WM_COPYDATA VB VC用法
VC中发送消息程序#includetagCOPYDATASTRUCT my_copydata;HWND my_hwd;char buff[50]="my love hahaha!";void send_hook_pack(DWORD *pack_buff,DWORD packsize){my_hwd=FindWindow(NULL,"Target");//找到目标原创 2011-10-23 11:10:01 · 2497 阅读 · 0 评论 -
远程线程注入并调用API
win7 的GetProAddress地址会变动,所以该代码不适用于win7 // 远程线程注入_调用API.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "windows.h"typedef int (_stdcall * Type_MessageBoxA)(HWND hWnd,LPCSTR lpText,LP原创 2012-10-23 10:15:25 · 2420 阅读 · 0 评论 -
挂钩 NtResumeThread 实现全局Hook .
挂钩一直是Hack 编程中永恒的主题,基本高级的Rootkit 程序多多少少都会使用Hook 技术。似乎Hook 都被讲烂了,不论是Ring3 的还是Ring0 的网上都有例子。Ring0 的毋庸置疑当然是全局的了,这里说说ring3 的全局hook。Ring 3 有Ring 3 的优势,稳定是压倒一切的,因此Mcafee 和其他一些商业的安全软件都还是使用了Ring3 的Hook 技原创 2012-11-12 21:56:03 · 1078 阅读 · 0 评论