Get IAT Table
_asm
{
push ebp;
mov ebp,esp;
mov edx,fs:[030h];
mov edx,[edx+08h];
mov eax,0x11111111;//eax->import table 使用时用导入表RVA代替
add eax,edx;
IMPORT:
cmp [eax],0;
jz OVER;
mov edi,[eax+0ch];
add edi,edx;
mov ebx,[eax+10h];
add ebx,edx;//IAT
IAT:
mov esi,[ebx];
cmp esi,0;
jz IMPORT2;
add esi,02h;
add esi,edx;
pushad;
push esi;//ProcName
push edi;//DllName
push ebx;//IAT Addr
call GetProc;
add esp,0ch;
popad;
add ebx,4;
jmp IAT;
IMPORT2:
add eax,014h;
jmp IMPORT;
OVER:
mov esp,ebp;
pop ebp;
mov eax,0x2222222;
add eax,edx;
push eax;
ret;
GetProc:
push ebp;
mov ebp,esp;
sub esp,0ch;
mov dword ptr [esp],'daoL';
mov dword ptr [esp+04h],'rbiL';
mov dword ptr [esp+08h],'Ayra';
mov byte ptr [esp+0ch],0;
push esp;
push 0x0000000d;
call FindLocalAddr;
mov ebx,dword ptr [ebp+0ch];
push ebx;
call eax;//DllNameHandle
push eax;
sub esp,010h;
mov dword ptr [esp],'PteG';
mov dword ptr [esp+04h],'Acor';
mov dword ptr [esp+08h],'erdd';
mov dword ptr [esp+0ch],'ss';
mov byte ptr [esp+0eh],0;
push esp;
push 0x0000000f;
call FindLocalAddr;
mov ebx,dword ptr [ebp+010h];
push ebx;
mov ebx,dword ptr [esp+01ch];
push ebx;
call eax;
mov ebx,dword ptr[ebp+08h];
mov [ebx],eax;
mov esp,ebp;
pop ebp;
ret;
FindLocalAddr:
push ebp;
mov ebp,esp;
mov eax,fs:[30h];
mov eax,[eax+0ch];
mov eax,[eax+0ch];
mov eax,[eax];
mov eax,[eax];
mov ebx,[eax+18h];
mov eax,dword ptr [ebx+3ch];
mov eax,dword ptr [eax+ebx+78h];
push eax;
mov eax,dword ptr [eax+ebx+20h];
xor edx,edx;
L1:mov edi,[eax+ebx];
add edi,ebx;
mov esi,dword ptr[ebp+0ch];
mov ecx,dword ptr [ebp+08h];
repe cmpsb;
jz L2;
add eax,4h;
inc edx;
jmp L1;
L2: pop eax;
sub esp,04h;
mov eax,[eax+ebx+24h];
mov ecx,edx;
L3:add eax,02h;
loop L3;
add eax,ebx;
mov ax,WORD PTR [eax];
pop edx;
mov edx,[edx+ebx+01ch];
imul ax,4;
and eax,0ffffh;
add edx,eax;
mov eax,[edx+ebx];
add eax,ebx;
mov esp,ebp;
pop ebp;
ret;
}
转载于:https://blog.51cto.com/nster/1194441
Get IAT Table相关推荐
- 必备绝技——Hook大法(上)
[文章标题]: 必备绝技--Hook大法(上) [文章作者]: LvG [作者邮箱]: LvG2008@gmail.com [作者声明]: 这没有什么新鲜东西,其内容全部来自于前辈,姑且当作学习笔记. ...
- 必备绝技--Hook大法(上)
必备绝技--Hook大法 标 题: [原创]必备绝技--Hook大法( 上 ) 作 者: Lvg 时 间: 2007-04-08,22:23 链 接: http://bbs.pediy.com/sho ...
- PE中的import table/IAT 分析
本文将通过一个实例说明PE结构中的import table及import address table(IAT). 在data directory中有两项:IMAGE_DIRECTORY_ENTRY_I ...
- 解析导入表和IAT表
一.导入表的结构 导入表的结构看起来复杂,其实只是套娃,不要被它吓到了. 导入表的定义如下: typedef struct _IMAGE_IMPORT_DESCRIPTOR {union {DWORD ...
- [安全攻防进阶篇] 七.恶意样本检测之编写代码自动提取IAT表、字符串及时间戳溯源
系统安全绕不开PE文件,PE文件又与恶意样本检测及分析紧密相关.前文作者带领大家逆向分析两个CrackMe程序,包括逆向分析和源码还原.这篇文章主要介绍了PE文件基础知识及恶意样本检测的三种处理知识, ...
- 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc)
系列汇总 写一个PE的壳_Part 1:加载PE文件到内存 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc) 写一个PE的壳_Part 3:Section里实 ...
- PE文件学习笔记(五):导入表、IAT、绑定导入表解析
1.导入表(Import Descriptor)结构解析: 导入表是记录PE文件中用到的动态连接库的集合,一个dll库在导入表中占用一个元素信息的位置,这个元素描述了该导入dll的具体信息.如dll的 ...
- IAT表入门简析【滴水逆向三期52笔记】
在讲IAT表之前,我们来回忆一下之前学习的知识: 如果我们将函数写在程序的源文件中,那么该函数就会被编译器直接编译到程序的二进制文件中,在程序调用该函数的时候,E8后跟的地址是直接写死的,程序直接在e ...
- 导入表解析,IAT表解析【滴水逆向三期53笔记】
我们再上一章节简要介绍了IAT表,我们知道如果程序调用dll中的函数时,必须通过IAT表来找到函数,我们基本了解了IAT表之后,我们今天来讲解一下导入表,通过本章节的学习,我们可以了解导入表,也能对I ...
最新文章
- 机器学习笔记(十五)规则学习
- 200528更新arduino开发ESP8266配置方法,入门必看,esp8266开发板库离线安装包package2.7.1...
- 使用uploadify上传图片时返回“Cannot read property 'queueData' of undefined”
- 静态和动态include
- Foxconn Core Concept
- Akka Actor Inbox_信箱
- mips 系统桥_系统功能调用实现简单输入输出(mips)
- 计算机win7卡顿如何解决方法,win7系统运行卡顿的解决方法
- 产品经理面试指南,常见面试题及回答思路
- mysql nlssort_Oracle中文排序 NLSSORT
- 51nod 1629 B君的圆锥
- 华三华为交换机配置时间
- 【明解C语言】选择语句之switch
- adb发送什么命令能在手机屏幕弹窗显示_Android 手机投屏在 Ubuntu 上的方法
- java for class_Class forClass
- 稀疏数组(golang实现)
- c#中抽象类(abstract)和接口(interface)的相同点与区别
- Part-Ⅰ3. 稳态等效电路建模/损耗/效率(三)
- 自考本科推荐计算机考研学校,过来人谈考研:一个自考本科生的考研成功自述...
- emui与android的关系,EMUI
热门文章
- hfss仿真时间过长怎么解决_一文详解相控阵天线仿真技术
- sql server查询某一字段不重复的数据_初识数据库
- scanner 获取控制台信息_Java使用Scanner类进行控制台输入实现方法
- matlab重建算法stomp,压缩感知图像重建算法的研究现状及其展望.pdf
- Java语言跨平台性质的优点和缺点_机器人热门编程语言及优缺点分析
- VB案例:计算圆锥体积与面积
- 罗振宇2021跨年演讲2:除了规模中国还有什么优势?
- Python编程基础04:输入与输出
- bzoj1935 [Shoi2007]Tree 园丁的烦恼 二维偏序
- 2017.4.23 税收与补贴问题 思考记录