获取JMP ESP指令地址

上传人:飞*** 文档编号:43399539 上传时间:2018-06-06 格式:DOC 页数:7 大小:44.50KB
返回 下载 相关 举报
获取JMP ESP指令地址_第1页
第1页 / 共7页
获取JMP ESP指令地址_第2页
第2页 / 共7页
获取JMP ESP指令地址_第3页
第3页 / 共7页
获取JMP ESP指令地址_第4页
第4页 / 共7页
获取JMP ESP指令地址_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《获取JMP ESP指令地址》由会员分享,可在线阅读,更多相关《获取JMP ESP指令地址(7页珍藏版)》请在金锄头文库上搜索。

1、#include #include int main()HINSTANCE hHandle = LoadLibrary(“user32.dll“);if(!hHandle)printf(“LoadLibrary Error!“);return 0;BYTE* ptr =(BYTE*)hHandle;int address;BOOL done_Flag=false;for(int i=0;!done_Flag;i+)tryif(ptri = 0xFF printf(“OPCODE found at 0x%xn“,address);catch(.)address = (int)ptr+i;prin

2、tf(“End OF 0x%xn“,address);done_Flag=true;return 0;溢出常用跳转指令2010 年 09 月 29 日 星期三 16:41前两个经过自己实验,后面的待查,以下为转载转载自 http:/ jmp esp /XP SP2 可以,其他不清楚 0x7ffa1571 jmp ebx /在 win2000、winxp、win2003 通用 0x7ffa54cd jmp esp /Windows 2000 通用地址(XP SP2 也通用) 0x7ffa4512 jmp esp /all CN win2000/winxp/win2003 0x7ffa24ce j

3、mp esp /all TW win2000/winxp/win2003 0x7ffa82a4 call esp /all KR win2000/winxp/win2003 0x7801F4FB push esp,xx, ret /all win2000 SP3/SP4 0x77C5BAFC push esp,xx, ret /EN winxp SP0/SP1 0x77C60AFC push esp,xx, ret /EN winxp SP2 0x7C4FEDBB jmp esp /Win2000 Server SP4 EN 0x77E2492B jmp esp /Win2000 Advanc

4、e Server SP2 EN0x77E843EB jmp esp /Win2003 Server Enterprise Edition EN 0x773F33CC jmp esp /Win2003 Server Enterprise Edition SP1 EN以下转载自 http:/ Windows XP SP 2 User32.dll JMP ESP 0x77db41bc English Windows XP SP 1 User32.dll JMP ESP 0x77d718fc English Windows 2003 SP0 and SP1 User32.dll JMP ESP 0x7

5、7d74adc English Windows 2000 SP 4 User32.dll JMP ESP 0x77e3c256 French Windows XP Pro SP2 JMP ESP 0x77d8519f German/Italian/Dutch/Polish Windows XP SP2 JMP ESP 0x77d873a0 Spainish Windows XP Pro SP2 JMP ESP 0x77d9932f French/Italian/German/Polish/Dutch Windows 2000 Pro SP4 JMP ESP 0x77e04c29 French/

6、Italian/Chineese Windows 2000 Server SP4 JMP ESP 0x77df4c290x7C961EED jmp esp /XP SP2 可以,其他不清楚0x7ffa1571 jmp ebx /在 win2000、 winxp、 win2003 通用0x7ffa54cd jmp esp /Windows 2000 通用地址(XP SP2 也通用 )0x7ffa4512 jmp esp /all CN win2000/winxp/win2003 0x7ffa24ce jmp esp /all TW win2000/winxp/win2003 0x7ffa82a4

7、 call esp /all KR win2000/winxp/win2003 0x7801F4FB push esp,xx, ret /all win2000 SP3/SP4 0x77C5BAFC push esp,xx, ret /EN winxp SP0/SP1 0x77C60AFC push esp,xx, ret /EN winxp SP20x7C4FEDBB jmp esp /Win2000 Server SP4 EN0x77E2492B jmp esp /Win2000 Advance Server SP2 EN0x77E843EB jmp esp /Win2003 Server

8、 Enterprise Edition EN0x773F33CC jmp esp /Win2003 Server Enterprise Edition SP1 EN获取获取 JMP ESP 指令地址指令地址(搜索跳板代码基于搜索跳板代码基于 vc 平台的两种解法平台的两种解法)2010-02-26 03:17 用用 VCVC 平台编写代码完成平台编写代码完成 代码代码在命令提示符下输入在命令提示符下输入“命令名(即该文件名)命令名(即该文件名) 搜索对象的完整文件名搜索对象的完整文件名”显示搜索对象的文件显示搜索对象的文件 指令在内存的地址指令在内存的地址c c 语言版语言版#include

9、#include unsigned long filesize (char *s) /*获得指定文件大小*/ FILE *fp= fopen (s,“r“);unsigned long i; /*定义文件类型指针、用于存储文件大小的变量*/ if (!fp) /*文件打开函数:FILE *fp; fp=fopen(文件名,“文件使用方式“) ;若不能实现“打开“,将带回值 NULL*/ printf (“cant open this file“); /*检验打开操作是否出错:若出错,显示 cant open this file:文件名*/exit (0); /*exit 函数的作用是关闭所有文

10、件,终止正在执行的文件。待用户找出错误进行修改在运行*/fseek(fp,0L,SEEK_SET); /*文件定位:fseek (文件指针,位移量,起始点);通常要求位移量为 long 型数据(后缀 L) */ fseek(fp,0L,SEEK_END); /*起始点:SEEK_SET 文件开始 “0“ SEEK_CUR 当前位置 “1“ SEEK_END 文件末尾 “2“*/ i=ftell(fp); /*得到流式文件当前位置:即用当前位置相对于文件开头的偏移量来表示(long 型数据)*/ fclose(fp); /*文件关闭:使 fp 不再指向该文件(脱钩)。顺利执行返回值为 0,否则返

11、回 EOF(-1)*/ return i; /*函数返回值:文件大小*/ /*main 的实参在命令行输入 命令名(参数 0) 参数 1 参数 2 . 参数 n。参数为字符串 */ int main (int argc,char *argv) /*argc 参数个数 argv 存储参数*/ BYTE* ptr; /* 0255 无符号的 8 位整数*/ int loaded=0; /*loaded=0 文件尚未加载的状态*/ int pos=0; /*pos 为指令在内存中的地址*/ unsigned long fz,y=0; /*fz 为储存文件大小的变量,y 为相对于句柄的偏移量*/ HI

12、NSTANCE h; /*定义实例句柄变量(32 位无符号整数型,H 表示句柄 INSTANCE 表示实例) */*可省:检验此命令行是否为两个参数的形式(命令名 完整“文件名“ ),若只有一个参数,则提醒输入文件名*/ if(argc#include#include#includeintint main(intmain(int argc,charargc,char *argv)*argv) BYTE*BYTE* ptr;ptr;intint y=0,pos;y=0,pos;HINSTANCEHINSTANCE h;h;BOOLBOOL done_flagdone_flag = = FALSE

13、;FALSE;h h = = LoadLibrary(argv1);LoadLibrary(argv1);if(!h)if(!h) printf(“Loadprintf(“Load DllDll error!n“);error!n“);exit(0);exit(0); ptrptr = = (BYTE*)h;(BYTE*)h;pospos = = (int)ptr;(int)ptr;printf(“Startprintf(“Start ofof 0x%xn“,pos);0x%xn“,pos);for(;for(; !done_flag;!done_flag; y+)y+) trytry if(ptryif(ptry = 0xFF0xFF y;printf(“OpCodeprintf(“OpCode FoundFound atat 0x%xn“,pos);0x%xn“,pos); catch(.)catch(.) pospos = = (int)ptr(int)ptr + + y;y;printf(“Endprintf(“End ofof 0x%xn“,pos);0x%xn“,pos);done_flagdone_flag = = true;true; returnreturn 0;0;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号