资源描述:
《远线程汇编代码注入,机器码注入》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、////////////////////////////////////////////////////////////////////////////编辑时间:2011-8-22//整理人:紫色溟渊//说明:仅供学习技术交流,欢迎转载,转载请注明出处。//编辑目的://1.加深自己对远线程注入的理解,//2.对VC内嵌汇编代码进一步了解//3.DEBUG版的函数会有堆栈检测,RELEASE版的函数没有堆栈检测代码//4.理解一下汇编代码对应的机器码//5.自己打算做一个易语言汇编模块///////////////////////////////////////////////////
2、/////////////////////////汇编代码PUBLIC?AsmInject@@YAXXZ;AsmInjectEXTRN__chkesp:NEAR;COMDAT?AsmInject@@YAXXZ_TEXTSEGMENT_dwAddr$=-4?AsmInject@@YAXXZPROCNEAR;AsmInject,COMDAT;8:{0000055pushebp000018becmovebp,esp0000383ec44subesp,68;00000044H0000653pushebx0000756pushesi0000857pushedi000098d7dbcleaedi,
3、DWORDPTR[ebp-68]0000cb911000000movecx,17;00000011H00011b8ccccccccmoveax,-858993460;ccccccccH00016f3abrepstosd;9:DWORDdwAddr=0x0060E8F0;00018c745fcf0e86000movDWORDPTR_dwAddr$[ebp],6351088;0060e8f0H;10:__asm;11:{;12:pushad0001f60pushad;13:movecx,0x8000000300020b903000080movecx,-2147483645;80000003
4、H;14:movedx,[0x0AF8450]00025ba5084af00movedx,11502672;00af8450H;15:pushecx0002a51pushecx;16:movecx,[edx+0x20]0002b8b4a20movecx,DWORDPTR[edx+32];17:addecx,0x0d40002e81c1d4000000addecx,212;000000d4H;18:calldwAddr00034ff55fccallDWORDPTR_dwAddr$[ebp];19:popad0003761popad;20:};21:}000385fpopedi000395
5、epopesi0003a5bpopebx0003b83c444addesp,68;00000044H0003e3beccmpebp,esp00040e800000000call__chkesp000458be5movesp,ebp000475dpopebp00048c3ret0?AsmInject@@YAXXZENDP;AsmInject_TEXTENDSEND//////////////////////////////////////////////////////////////////////////#include"StdAfx.h"#include"publicfunctio
6、n.h"////////////////////////////////////////////////////////////////////////////汇编代码注入voidAsmInject(){DWORDdwAddr=0x0060E8F0;__asm{pushadmovecx,0x80000003movedx,[0x0AF8450]pushecxmovecx,[edx+0x20]addecx,0x0d4calldwAddrpopad}}///////////////////////////////////////////////////////////////////////
7、///第一段代码是VC6.0生成的汇编代码和机器代码第二段代码是我编写的C代码,内嵌汇编场景介绍:我尝试这将这个函数AsmInject()通过远线程注入到TARGET.EXE(被攻击进程)发现问题:为什么远线程注入到TARGET.EXE进程会导致TARGET.EXE出现错误?解决办法:voidAsmInject(){DWORDdwAddr=0x0060E8F0;__asm{pushadmovecx,0x80000003movedx,[0x0AF