读<<IDA pro权威指南>>之动态计算目标地址

<<IDA pro权威指南>> p348页,另一种技巧常用于面向Windows的恶意软件中,它配置一个异常处理程序,并有意触发一个异常,然后在处理异常时操纵进程的寄存器状态。

下面的例子被tElock反逆向工程工具用于隐藏程序的真实控制流。

00535FC2    E8 00000000     call    00535FC7
00535FC7    5D              pop     ebp                              ;相当于ebp = 00535FC7
00535FC8    8D45 46         lea     eax, dword ptr [ebp+46]          ;0053600D
00535FCB    45              inc     ebp
00535FCC    50              push    eax                              ; push 后,esp = 0018FB58
00535FCD    33C0            xor     eax, eax
00535FCF    64:FF30         push    dword ptr fs:[eax]               ; push 后,ESP = 0018FB54
00535FD2    64:8920         mov     dword ptr fs:[eax], esp          ;fs:[0] = 0018FB54
00535FD5    90              nop
00535FD6    F7F1            div     ecx                              ;引发除0异常
00535FD8    0000            add     byte ptr [eax], al
00535FDA    0000            add     byte ptr [eax], al
00535FDC    90              nop
执行完 00535FD6后,程序引发异常,堆栈如下:

可以看到0018FB54栈上存放指向一个SEH记录的指针

0018FB58指向一个SE处理程序的指针

而这个刚好满足_EXCEPTION_REGISTRATION_RECORD结构

0:003> dt _EXCEPTION_REGISTRATION_RECORD

ntdll!_EXCEPTION_REGISTRATION_RECORD

+0x000 Next             : Ptr32 _EXCEPTION_REGISTRATION_RECORD

+0x004 Handler          : Ptr32     _EXCEPTION_DISPOSITION

也即0053600D为事先注册的SEH异常处理程序的地址,0018FB5C为指向下一个SEH记录的指针

这样也达到了必须计算才能跟踪程序流程的目的,隐藏了程序的真实控制流。

时间: 2024-10-11 11:50:33

读<<IDA pro权威指南>>之动态计算目标地址的相关文章

IDA.Pro权威指南 读书笔记

http://www.pediy.com/kssd/pediy12/142766.html 标 题:IDA.Pro权威指南 读书笔记[Made By C_lemon] 作 者:Dstlemoner 时 间:2011-11-14 11:56:17 链 接:http://bbs.pediy.com/showthread.php?t=142766    IDA为反汇编 和逆向破解的 静态分析利器 ! 虽然是利器,但是你不会用的话~那就另当别论了. →     唉.对于刚入门的新手来说,看前人走过的路程

《IDA Pro 权威指南》学习

在学习0day时,发现ida的知识没有跟上,所以此处进行相关IDA的基础学习. X86汇编语法: AT&T:%前缀,&文字常量前缀 Intel语法:源操作数位于右边,目的操作数位于左边.使用Interl语法. 反汇编: 线性扫描反汇编:GUN,WinDbg,OBJdump 递归下降: 最典型 IDA Pro 1.顺序流指令 2.条件分支指令 3.无条件分支指令 4.函数调用指令 5.返回指令 二 逆向与反汇编工具 摘要工具: nm:声明的函数与全局变量名称 ldd:所需动态库 objdum

IDA Pro权威指南-IDA入门

选择加载器,一般默认就可. 加载文件时,有4个数据可文件.id0二叉树形式数据库.id1文件包含描述每个程序字节的标记.nam 与name窗口有关的索引.til  存储与一个给定数据库的本地类型定义有关的信息. 关闭文件时, Don‘t pack 不创建IDb pack database(store)创建IDb文件. pack (deflate) 与上边的区别是,压缩IDB collect garbage  创建尽可能小的IDB 空格 切换 列表 和 视图 windows选项 可以设置桌面布局.

IDA Pro使用(静态分析+动态调试)

链接:http://skysider.com/?p=458 IDA Pro使用(静态分析+动态调试) 1.静态分析 IDA FLIRT Signature Database -- 用于识别静态编译的可执行文件中的库函数 IDA signsrch -- 寻找二进制文件所使用的加密.压缩算法 IDA scope -- 自动识别windows函数和压缩.加密算法 Ponce -- 污点分析和符号化执行工具 snowman decompiler -- C/C++反汇编插件(F3 进行反汇编) keyst

读《Hadoop 权威指南》

部分目录: 1,初始Hadoop 2,关于MapReduce 3,Hadoop分布式文件系统 HDFS 文件系统. 4,Hadoop I/O 5,MapReduce应用开发 6,MapReduce的工作机制 7,MapReduce的类型与格式 8,MapReduce 的特性 9,构建 Hadoop 集群 10,管理 Hadoop 11,Pig简介 Pig Latin 描述数据流的语言,由"操作""变换"组成.可以对输入数据处理,产生输出结果. 可以本地单机执行或分布

读《Hadoop权威指南》点滴-Hadoop分布式文件系统

Hadoop自带HDFS,即 Hadoop Distributed FileSystem(不是HaDoop  FileSystem 的简称) 适用范围 超大文件:最新的容量达到PB级 流式数据访问:HDFS的构建思路:一次写入.多次读取时最高效的访问模式 低时间延迟的数据访问不适用HDFS 大量的小文件的限制:由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量.根据经验,每个文件.目录.数据块的存储信息大约占150字节.举例来说,

读《Hadoop权威指南》点滴-HDFS文件系统

1.HDFS中,目录作为元数据,保存在namenode中,而非datanode中 2.HDFS的文件权限模型与POSIX的权限模式非常相似,使用  r  w  x 3.HDFS的文件执行权限(X)可以忽略,因为你不能在hdfs中执行文件 Hadoop有一个抽象系统的概念,而HDFS只是其中的一个实现,支持的文件系统有: 文件系统 URI方案 Java实现(都在org.apache.hadoop包中) 描述 Loca file fs.LocalFileSystem 使用客户端校验和  的本地文件系

HTTP权威指南:第二章

URL概览 前面提到,URL资源是HTTP协议所使用的寻找资源位置的定位符.分为三个部分,主要的结构是: 方案://服务器/路径 这种结构使得网络上的每一个资源都只有唯一的命名方法,从而使得浏览器可以统一对不同的资源进行处理,而不是依赖不同的软件.URL可以从以下几个部分去了解: 语法 快捷方式 特殊字符 方案 最后,我们还会展望未来,看看URN--URL的下一代. 一.语法 URL语法是跟对方案而变化的,但是这些变化总是建立在URL语法的9个组件组成的通用格式之上的.这个通用格式是: <sch

安卓动态调试七种武器之孔雀翎 – Ida Pro

安卓动态调试七种武器之孔雀翎 – Ida Pro 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是活的,如果能搞懂工具的原理再结合上自身的经验,你也可以创造出属于自己的调试武器.因此,笔者将会在这一系列文章中分享一些自己经常用或原创的调试工具以及手段,希望能对国内移动安全的研究起到一些催化剂的作用. 目录如下: 安卓动态调试七种武器之长生剑 - Smali Instrumentation 安卓动