- 博客(54)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 IAT HOOK
IAT.h#include void _stdcall My_Sleep(int i){ MessageBox(NULL,TEXT("测试"),NULL,MB_OK); return;}PVOID EnumAPI(void) { PBYTE ImageBase=NULL; PIMAGE_THUNK_DATA r={0}; PIMAGE_NT_HEADERS p
2015-05-27 21:35:59 393
原创 EXE与SYS通信(其他模式)
EXE部分head.h#ifndef CTL_CODE#pragma message("\n \n-----------EXE . Include winioctl.h ")#include //CTL_CODE ntddk.h wdm.h#else #pragma message("\n \n----------SYS NO Include winioctl.h ")#e
2015-05-23 21:36:50 486
原创 EXE与SYS通信(直接访问模式)
EXE部分head.h#ifndef CTL_CODE#pragma message("\n \n-----------EXE . Include winioctl.h ")#include //CTL_CODE ntddk.h wdm.h#else #pragma message("\n \n----------SYS NO Include winioctl.h ")#e
2015-05-23 21:08:49 851
原创 EXE与SYS通信(缓冲模式)
EXE部分head.h#include //CTL_CODE#define add_code CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED,FILE_ANY_ACCESS)#define sub_code CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED,FILE
2015-05-23 20:21:58 536
原创 内存注册机原理
【文章标题】: 内存注册机原理【文章作者】: 125096【软件名称】: Memory.exe【加壳方式】: 无【编写语言】: vs2008【使用工具】: vs2008,OllyDbg【操作平台】: 盗版WIN7操作系统【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!----------------------------------------
2015-05-21 14:10:35 1900 1
原创 dll劫持
【文章标题】: dll劫持【文章作者】: 125096【软件名称】: dll.dll【加壳方式】: 无【编写语言】: VS2010【使用工具】: VS2010,OllyDbg,LordPE.EXE,MSND【操作平台】: 盗版WIN732位操作系统【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! 大家好,我是125096。今天研究
2015-05-21 14:00:05 1279
原创 NT式驱动安装卸载
TestDDK125096.sys#include void TestDDK125096Unload(IN PDRIVER_OBJECT DriverObject){ DbgPrint("Goodbye from TestDDK125096!\n");}NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICOD
2015-05-20 23:19:41 895
原创 MFC的CStatic控件验证码例子
SkinValidateCode.h#ifndef SKIN_VALIDATE_CODE_HEAD_FILE#define SKIN_VALIDATE_CODE_HEAD_FILE#pragma once#include "HeadFile.h"using namespace Gdiplus;////////////////////////////////////////////
2015-05-19 15:53:50 1645
原创 VS2010+VMWare8+VisualDDK1.5.6环境搭建
准备工作1.win7系统32位/64位盗版2.VMware Workstation 8.0破解版3.Visual Studio 20104.Windows Driver Kit (WDK) 7.1.05.VisualDDK6.windbg调试器以上全部安装完毕 第一步d:\Program Files (x86)\VisualDDK\target\vminst
2015-05-17 21:43:46 1158
原创 ASCII编码和UNICODE编码转换
#include #include #include #include #include using namespace std;//string转wstringinline void Ascii2WideString( const std::string& src, std::wstring& dest );//wstring转stringinline void WideS
2015-05-15 15:12:34 1030
原创 函数的返回类型
#include //返回变量的值6int mymax1(int a,int b){ return a>b?a:b; }//返回的是在main函数中mymax2的第二个参数6的局部地址,输出结果是6,在main函数中取返回地址的值int &mymax2(int a,int b){ return a>b?a:b; }//返回的是在main函数中mymax2的第二个参数
2015-05-14 21:54:49 593
原创 不规则透明窗口
CWinAppULONG_PTR m_pGdiToken;CMFCTestApp::CMFCTestApp(){ //初始化GDI+环境 Gdiplus::GdiplusStartupInput input; Gdiplus::GdiplusStartup(&m_pGdiToken, &input, NULL);}CMFCTestApp::~CMFCTestApp(){ /
2015-05-12 09:56:20 464
原创 NULL指针调用成员函数的例子
main.h#include #include #include class A{public: //构造函数 A(); //析构函数 ~A(){}; //功能函数public: void print(void); //静态变量public: static A* GetInstance(void){return m_hInstance;} static
2015-05-11 22:33:18 391
原创 两个类相互调用的例子
main.hclass B;class A;class A{public: //构造函数 A(){x=123;} //析构函数 ~A(){}; //功能函数public: void ATest(void) {printf("%d\n",x);} void Set(B* b){m_b=b;} //静态函数public: static B* GetInst
2015-05-08 15:47:57 1702
原创 ToolTipCtrl
mfc例子1.头文件定义对象CToolTipCtrl m_ToolTipCtrl; //提示控件2.创建控件 //提示控件 m_ToolTipCtrl.Create(this); m_ToolTipCtrl.Activate(TRUE); m_ToolTipCtrl.AddTool(&m_bt1,TEXT("最小化")); m_ToolTipCtrl.Ad
2015-05-06 14:12:23 526
原创 取硬盘型号参考例子1
#include #include #include #include #include const WORD IDE_ATAPI_IDENTIFY=0xA1; // 读取ATAPI设备的命令const WORD IDE_ATA_IDENTIFY=0xEC; // 读取ATA设备的命令char szModelNumber[64]={0};char szSerialN
2015-05-06 11:15:34 1097
原创 列举进程和模块
#include #include #include bool ProcessProc(void);bool ProcessModule(DWORD);int main (void){ ProcessProc(); return 0;}bool ProcessProc(void){ //获取进程快照 HANDLE hProcessSnap=CreateTool
2015-05-05 23:19:08 528
原创 检测是否有dll被注入
#include #include #include #include #include using namespace std;typedef basic_string, allocator > tstring;int ProcessModule(DWORD);int CheckProcessModule(DWORD pid);BOOL IsModuleValid(tstr
2015-05-05 23:15:56 5296
原创 迁程CreateFiber
#include LPVOID lpThread;VOID CALLBACK FiberProc(PVOID lpParameter);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ // 将主线程切换为纤程,为主纤程,只有转换为纤程后才可以切
2015-05-05 23:05:33 2176
原创 CreateProcess
#include #include int main (void){ STARTUPINFO si={0}; GetStartupInfo(&si); si.wShowWindow=SW_SHOW;//不能隐藏显示是因为,获取启动信息失败 PROCESS_INFORMATION pi={0}; pi.hProcess=0;//返回一个句柄当新的进程 pi.hThread
2015-05-05 22:59:21 482
原创 DLL_THREAD_ATTACH防止远程线程注入
/*原理:当创建线程时,系统会向当前进程所有dll发送DLL_THREAD_ATTACH通知此时新的线程已经被创建但尚未执行,更精切的说已经创建了线程内核对象、线程堆栈等资源正处于初始化阶段。只有在每个dll正常处理了DLL_THREAD_ATTACH线程才开始执行对于远程线程本质上和本地线程完全一样,区别在于由其他进程创建如果在接受DLL_THREAD_ATTACH时通知结束线程,线
2015-05-05 22:50:29 5251
原创 CreateRemoteThread
#include #include #include bool Start(TCHAR* buff,DWORD pid);BOOL EnablePrivilege(LPCTSTR lpszPrivilegeName, BOOL bEnable);int main (void){ EnablePrivilege(SE_DEBUG_NAME,TRUE);//获取本进程权限 DWO
2015-05-05 22:47:13 573
原创 类中使用线程例子5
#include #include #include //前置声明class A;struct studen{ A* pa;};class A{public: void test(void){abc=123;printf("test\n");} void StartThread(); DWORD static WINAPI ThreadFunc(LPVOID l
2015-05-05 22:41:40 332
原创 类中使用线程例子3
#include #include #include class A{public: void StartThread(); unsigned friend __stdcall ThreadFunc(LPVOID lparam);public: int abc;};void A::StartThread(){ _beginthreadex(NULL,NULL,Thr
2015-05-05 22:38:07 320
原创 类中使用线程例子4
#include #include #include class A{public: void StartThread(); DWORD static WINAPI ThreadFunc(LPVOID lparam);public: int abc;};void A::StartThread(){ CreateThread(NULL,NULL,ThreadFunc,t
2015-05-05 22:37:28 333
原创 类中使用线程例子2
#include #include #include typedef unsigned (WINAPI *PBEGINTHREADEX_THREADFUNC)(LPVOID lpThreadParameter);typedef unsigned *PBEGINTHREADEX_THREADID;DWORD WINAPI ThreadFunc(LPVOID prarm);class
2015-05-05 22:34:18 355
原创 类中实现线程例子1
#include #include #include typedef unsigned (WINAPI *PBEGINTHREADEX_THREADFUNC)(LPVOID lpThreadParameter);typedef unsigned *PBEGINTHREADEX_THREADID;class ThreadObject{public: ThreadObject();
2015-05-05 22:31:50 368
原创 WaitForSingleObject
#include #include #include DWORD WINAPI ThreadProc( LPVOID lpParameter);int main (void){ DWORD IDThread=0; HANDLE hThread1=CreateThread(NULL,NULL,ThreadProc,(LPVOID)1,NULL,&IDThread); DWOR
2015-05-05 22:07:15 376
原创 WaitForMultipleObjects
#include #include DWORD WINAPI ThreadProc( LPVOID lpParameter);/*如果此参数为true,函数返回时,在lphandles数组中的所有对象的状态信号。如果FALSE,函数返回在任何一个对象的状态被设置为有信号。在后一种情况下,返回值指示其状态产生函数返回对象。*/int main (void){ HANDLE
2015-05-05 22:03:13 530
原创 WaitForMultipleObjects
#include #include DWORD WINAPI ThreadProc( LPVOID lpParameter);/*如果此参数为true,函数返回时,在lphandles数组中的所有对象的状态信号。如果FALSE,函数返回在任何一个对象的状态被设置为有信号。在后一种情况下,返回值指示其状态产生函数返回对象。*/int main (void){ HANDLE
2015-05-05 21:58:35 589
原创 SetThreadPriority
#include #include DWORD WINAPI ThreadProc(LPVOID lpParameter);int main( void ){ HANDLE Thread=CreateThread(NULL,NULL,ThreadProc,NULL,CREATE_SUSPENDED ,NULL); //设置线程优先级 SetThreadPriority(
2015-05-05 21:56:07 726
原创 AfxBeginThread
#include #include CWinApp theApp;UINT __cdecl ThreadFunc( LPVOID pParam );int main (void){ CWinThread *pThread[5]={0}; for (BYTE i=0;i<5;i++) { pThread[i]=AfxBeginThread(ThreadFunc,(LPVOID
2015-05-05 21:40:51 328
原创 AfxBeginThread
#include #include CWinApp theApp;UINT __cdecl ThreadFunc( LPVOID pParam );int main (void){ for (BYTE i=0;i<5;i++) { AfxBeginThread(ThreadFunc,(LPVOID)i,NULL,NULL,NULL); } getchar(); ret
2015-05-05 21:35:55 359
原创 GetExitCodeThread
#include #include DWORD WINAPI ThreadProc( LPVOID lpParameter);//GetExitCodeThread确定一个线程是否结束这个函数并不是一个好的方法int main (void){ DWORD IDThread=0; DWORD ExitCode1=0; DWORD ExitCode2=0; HANDLE hThr
2015-05-05 21:33:45 683
原创 CreateThread
#include #include DWORD WINAPI ThreadProc( LPVOID lpParameter);int main (void){ for (BYTE i=0;i<5;i++) { DWORD IDThread=0; HANDLE hThread=CreateThread(NULL,NULL,ThreadProc,(LPVOID)i,NULL,&
2015-05-05 21:30:34 335
原创 ExitThread
#include #include DWORD WINAPI ThreadProc( LPVOID lpParameter);void Test(void);//ExitThread函数和GetExitCodeThread配合使用,安全的确定线程是否执行完毕int main (void){ DWORD IDThread=0; DWORD ExitCode1=0; HANDLE
2015-05-05 21:30:20 621
原创 _beginthreadex
#include #include #include unsigned __stdcall Test(LPVOID p);int main (void){ uintptr_t Thread= _beginthreadex(NULL,NULL,Test,NULL,NULL,NULL); CloseHandle(reinterpret_cast(Thread)); getchar
2015-05-05 21:28:35 325
原创 什么是线程互斥
线程之间通信的两个基本问题是互斥和同步线程同步是指线程之间具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒线程互斥是指对于共享的操作系统资源,在各线程访问时的排他性。当有若干戈线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其他要使用该资源必须等到,直到占用资源者释放该资源。线程互斥是一种特殊的线程同步。
2015-05-05 20:58:22 1215
原创 CreateMutex
#include #include DWORD WINAPI ThreadProc1(LPVOID lpParameter);DWORD WINAPI ThreadProc2(LPVOID lpParameter);int sum=100;HANDLE hMutex=NULL;int main (void){ HANDLE Thread[2]={0}; Thread[0]=
2015-05-05 20:55:43 489
原创 InitializeCriticalSection
#include #include DWORD WINAPI ThreadProc1(LPVOID lpParameter);DWORD WINAPI ThreadProc2(LPVOID lpParameter);int sum=100;CRITICAL_SECTION cs;int main (void){ HANDLE hThread[2]={0}; hThread
2015-05-05 20:55:27 932
函数多线安全性问题,大家帮我看看
2015-06-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人