• 我们在哪一颗星上见过 ,以至如此相互思念 ;我们在哪一颗星上相互思念过,以至如此相互深爱
  • 我们在哪一颗星上分别 ,以至如此相互辉映 ;我们在哪一颗星上入睡 ,以至如此唤醒黎明
  • 认识世界 克服困难 洞悉所有 贴近生活 寻找珍爱 感受彼此
IDA系列教程:IDA加载器

IDA系列教程:IDA加载器

VIEW-OPEN SUBVIEW-SEGMENTS  加载段 可以看到程序段自动加载! 但是头部却没有加载! Start End是开始和结束地址! R可读 W可写 X(EXECUTION)可执行  D(DEBUGGER)  L(LOADER) D是以调试器模式加载程序并显示加载的段时被调用。 L显示加载器加载的内容和其他不太重要的列. 如果想要加载头,那……

IDA系列教程:基于堆栈传输特定指令

IDA系列教程:基于堆栈传输特定指令

什么是堆栈? 堆栈是一个内存部分,其中的访问模式为FILO,表示先进先出。 它允许保存和恢复数据。对于数据处理,有两个基本操作: PUSH将对象放置在堆栈上,其反操作POP取出最后被压入的元素。 在任何时候,它只能访问堆栈的顶部或最后推送的对象 通常,在32位中,PUSH用于在调用CALL之前将函数参数发送到堆栈 PUSH 64将dword 64放在堆栈的……

angr框架学习

angr框架学习

一 简介 angr是一个与平台无关的二进制分析框架 反汇编和中间件Disassembly and intermediate-representation lifting 程序插桩Program instrumentation 符号执行Symbolic execution 控制流分析Control-flow analysis 数据依赖分析Data-depen……

IDA系列教程:sp-analysis failed

IDA系列教程:sp-analysis failed

某些函数在使用 f5 进行反编译时,会提示错误 “sp-analysis failed”,导致无法正确反编译。原因可能是在代码执行中的 pop、push 操作不匹配,导致解析的时候 esp 发生错误。 解决办法步骤如下: 用 Option->General->Disassembly, 将选项 Stack pointer 打钩 仔细观察每条 ca……

IDA系列教程:local variable allocation failed

IDA系列教程:local variable allocation failed

此错误消息意味着反编译器无法使用寄存器和堆栈位置分配本地变量。 只有在配置文件中启用了HO_IGNORE_OVERLAPS之后,才会看到这个错误消息。如果输出中允许有重叠的变量,则以红色显示。 请检查所有相关功能的原型,包括当前的功能。变量类型和定义也可能导致此错误。 更新函数堆栈帧并创建正确的堆栈变量也可以帮助解决这个问题。 如果在对函数类型或变量类型进行……

汇编知识

汇编知识

寄存器  x86 基本16位寄存器 通用寄存器 AX (Accumulator eXtend) 英文名称: Accumulator eXtend 功能: 它是主累加器。常用于算术、逻辑和数据传输操作。在许多操作中,如果涉及到一个寄存器,那么默认的寄存器通常是AX。 BX (Base eXtend) 英文名称: Base eXtend 功能: 通常用作间……

网址推荐

网址推荐

https://reverseengineering.stackexchange.com/questions https://blog.didierstevens.com/ Didier Stevens 逆向大佬 https://malware.news/ https://maxkersten.nl/ Max Kersten 逆向大佬 恶意代码分析书……

IDA系列教程:IDA Python

IDA系列教程:IDA Python

参考资料 Alex Hanel写的电子书:https://leanpub.com/IDAPython-Book Magic Lantern写的:https://magiclantern.fandom.com/wiki/IDAPython 官方教程:https://hex-rays.com/products/ida/support/idapython_docs……

IDA系列教程:堆栈平衡原理与手动恢复平衡

IDA系列教程:堆栈平衡原理与手动恢复平衡

1. 背景 调试样本时发现在某个函数时不能F5,显示positive sp value has been found。初步断定是因为堆栈不平衡导致的,因此需恢复堆栈平衡。 2. 恢复堆栈平衡 IDA->Option->General->Disassembly 勾选stack pointer,打开栈指针显示。 双击左下角output wi……

汇编语言-堆栈平衡

汇编语言-堆栈平衡

执行test(int p1,int p2) 假设执行函数前堆栈指针ESP为A push p2 ;          参数2入栈,ESP =ESP- 4h —–>ESP = A – 4h push p1 ;          参数1入栈,ESP =ESP- 4h —–>ESP = A &……

IDA系列教程:寄存器与数据类型

IDA系列教程:寄存器与数据类型

0x01 什么是寄存器,它们的用途是什么? 32-bit 寄存器: EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI 和 EIP EAX – 累加器寄存器 EBX – 基础寄存器 ECX – 计数器寄存器 EDX – 数据寄存器 ESI – 源指针 EDI –……

IDA系列教程:由软件破解谈windows消息机制

IDA系列教程:由软件破解谈windows消息机制

0x01 背景 在IDA系列教程(一)中附件中有一个可执行程序,在分析这个程序时,部分函数涉及到windows消息机制,恶意代码也会利用windows消息机制来隐藏恶意功能代码。 0x2 基础知识 以下知识选自安全客文章《Windows调试艺术——从真实病毒学习消息机制》一文,本文章尊重原著,纯属学习目的。 Windows是一个消息驱动的系统。Windows……