自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

125096

我是125096,欢迎大家来我的csdn博客!

  • 博客(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

OllyDBG 入门系列

OllyDBG 入门系列OllyDBG 入门系列(五)-消息断点及 RUN 跟踪.doc

2013-08-04

寒江独钓——Windows内核安全编程

寒江独钓——Windows内核安全编程.pdf

2013-08-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除