进程注入的研究与实现(上)

进程注入的研究与实现(上)

ID:43567880

大小:57.50 KB

页数:4页

时间:2019-10-11

进程注入的研究与实现(上)_第1页
进程注入的研究与实现(上)_第2页
进程注入的研究与实现(上)_第3页
进程注入的研究与实现(上)_第4页
资源描述:

《进程注入的研究与实现(上)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、进程注入的研究与实现(上)进程注入的研究与实现(上)为了对内存屮的某个进程进行操作,并且获得该进程地址空间里的数据,或者修改进程的私有数据结构,必须将B己的代码放在目标进程的地址空间里运行,这时就避免不了使用进程注入方法了。进程注入的方法分类如下:带DLL的注入利用注册表注入利用WindowsHooks注入利用远程线程注入利用特洛伊DLL注入不带DLL的注入直接将代码写入hl标进程,并启动远程线程I.利用注册表注入在WindowsNT/2000/XP/2003屮,有一个注册表键值HKEY_LOCAL_MACHINESof

2、twareMicrosoftWindowsHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionWindowsAppInit_DLLso当某个进程加载User32.dll吋,这里面列出的所冇的DLL都将User32.dll利用LoadLibrary函数加载到该进程空间中。我们可以把自己的代码放在一个DLL屮,并加入该键值,这样就可以注入到所有使卅User32.dll的进程屮了。当DLL以LoadLibrary的方式加载时,DllMain会被以DL

3、L_PROCESS_ATTACH为原因调用,实际上我们也只需要关心DLL_PROCESS_ATTACHCpp代码1.BOOLAPIENTRYDllMain(HMODULEhModule,DWORDul_reason_for_call,LPVOIDIpReserved)2・{3.if(ul_rcason_for_call==DLL_PROCESS_ATTACH)4.{5.HANDLEf=CreateFile(L"D:\InjectSuccess.txt",FILE_ADD_FILE,FILESHAREW

4、RITE,6.NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);7.CloscHandlc(f);8.}9.returnTRUE;10.}2.利用WindowsHooks注入Windows系统给我们提供了一些挂钩函数,使得被挂钩的进程可以在自己处理接收到的消息Z前,先执行我们的消息处理函数,而这个消息处理函数一般会放在DLL中,来让冃标进程加载,这实际上已经达到了注入代码的效果。i般情况下,我们把挂钩函数和消息处理函数都放在dll中:Cpp代码1.HHOOKg_hHook=NULL;2

5、.HINSTANCEhlnst;3.BOOLAPIENTRYDllMain(HMODULEhModulc,DWORDul_rcason_for_call,LPVOIDIpReserved)4.{5.hlnst=(HINSTANCE)hModule;6.returnTRUE;7・}&LRESULTmyKeyBrdFuncAd(intcode,WPARAMwParam,LPARAMIParam)9・{10.//Tobenice,yourrootkitshouldcallthenext-lower11・//hook,butyou

6、neverknowwhatthishookmaybe.12・〃::McssagcBoxA(NULL,"HclloInjcction","Injcction",MB_OK);13.returnCallNextHookEx(g_hHook,code,wParam,IParam);14.}15.#ifdef_cplusplus//IfusedbyC++code,16.extem"C"{//weneedtoexporttheCinterface17.#endif18._d

7、eclspec(dllexport)boolSetHook(DWORDdwThreadld)19.{20.g_hHook=SctWindowsHookEx(WH_KEYBOARD,(HOOKPROC)myKeyBrdFuncAd,hlnst,dwThreadld);21.讦(g_hHook==NULL)22.{23.returnfalse;24.}25.returntrue;26.)27.#ifdef_cplusplus28.}29.#cndif注入进程要加载这个DLL,然后执行里面的SetHook函数,传入的参数为被注入

8、线程的1DCpp代码1.typedefbool(*MYPROC)(DWORDdwThreadld);21.HANDLEhLib=LoadLibraryA("D:\sourcc\rootkits\injccting\InjcctDll\Dcbug\InjcctDll.dll"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。