码迷,mamicode.com
首页 > 其他好文 > 详细

机器码注入实例的调试练习(第三个注入实例)

时间:2015-05-18 15:57:43      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

1,打开文本记事本【这里必须是32位的文本记事本程序】,因为目前的OD无法调试64位程序。。。

2,打开之后,用OD附加,按F9运行,因为本实例是用远程注入线程的模式启动注入代码的,所以断一下线程加载。选项-》调试设置-》事件-》中断于新线程

3,打开cmd控制台,CD到文件夹路径,输入程序.exe pid,pid为记事本的进程ID,运行一下,OD会断在注入线程的开始处。技术分享

 

CE0000中存放的是线程回调函数的参数,为这样的一个结构体

typedef struct _THREAD_PARAM
{
    FARPROC pFunc[2];               // LoadLibraryA(), GetProcAddress()
} THREAD_PARAM, *PTHREAD_PARAM;

当然这个地址是随机的哈,系统自己选择合适的地址分配的内存。

运行到第七行,再看图

技术分享

紧接着第七行,PUSH ESP,ESP中存放的是"USER32.DLL“,将这个字窜指针压入了栈,下一行CALL 【ESI】,ESI的值是CE0000,不正好是LOADLIBRARY函数的起始地址么。看到这儿我真想说,尼妈,真高级!太奇妙了。

接下来猜一下吧,如法炮制调用GETPROCADDRESS吧。跟踪一下。

技术分享

 

机器码注入实例的调试练习(第三个注入实例)

标签:

原文地址:http://www.cnblogs.com/DJ0322/p/4511905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!