获取dll中的跳转指令地址jmp esp
来源:互联网 发布:java集合有哪些 编辑:程序博客网 时间:2024/05/11 03:55
1、ntdll.dll和kernel32.dll文件属于Windows的系统文件,在Windows系统中扮演着重要角色。
ntdll.dll(NT Layer DLL)是Windows NT操作系统的重要模块,属于系统级别的文件。用于堆栈释放、进程管理。
kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
2、下面的程序获取jmp esp(0xFFE4)指令地址,可以在不同的dll文件中进行搜索,详细见下面代码
// getJmpEsp.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include<windows.h>
#include<iostream.h>
#include<tchar.h>
int getJmpEsp(TCHAR *ucDllName)
{
HINSTANCE h;
h = GetModuleHandle(ucDllName);
if(h == NULL)
{
h = LoadLibrary(ucDllName);
if(h == NULL)
{
cout<<"ERROR LOADING DLL:"<<ucDllName<<endl;
return -1;
}
}
BYTE* ptr=(BYTE*)h;
bool done=false;
for(int y=0;!done;y++)
{
try
{
if(ptr[y] == 0xFF && ptr[y+1] == 0xE4)
{
int pos=(int)ptr + y;
cout<<"OPCODE found at 0x"<<hex<<pos<<endl;
}
}catch(...)
{
cout<<"END OF "<<ucDllName<<" MEMORY REACHED"<<endl;
done=true;
}
}
FreeLibrary(h);
return 0;
}
int main()
{
getJmpEsp("ntdll");
getJmpEsp("kernel32");
return 0;
}
- 获取dll中的跳转指令地址jmp esp
- 缓冲区溢出 jmp esp 地址
- 转移地址在内存中的JMP指令
- 014-无条件跳转指令jmp+
- 8086中的jmp指令
- 转移指令jmp和跳转指令call
- 8086中的jmp相关指令
- 跳转指令 jmp、call、ret、retf
- 转移地址在寄存器的JMP指令
- 万能jmp esp
- JMP - 跳转
- JMP - 跳转
- jmp指令
- JMP指令
- jmp指令
- jmp 指令
- jmp指令
- JMP指令
- 颜色空间转换
- android分享功能的实现
- poj 3277 java
- hibernate 需要的jar包
- paip.java桌面开发应用与WEB RIA应用
- 获取dll中的跳转指令地址jmp esp
- google proto buffer使用
- JDK 1.6中有一个Desktop API打开外部程序
- 知识点
- 服务器端执行JS
- SVN安装配置与使用
- hdu 1032 The 3n + 1 problem
- c primer plus 程序笔记 (二) 第13章 文件输入/输出
- Weblogic10 在Linux环境下的安装详解