08 2023 档案
IDA python使用
摘要:一.常用函数 1.def hex(str) #把字符串转换成十六进制 2.def MinEA() #获取反汇编窗口中代码段的最小地址 3.def MaxEA() #获取反汇编窗口中代码段的最大地址 4.def ScreenEA() #获取光标所在位置 5.def SegEnd(str) #获取程序中
常见反调试技术
摘要:反调试技术 一. 使用Windows API函数 1. IsDebuggerPresent函数 2.CheckRemoteDebuggerPresent函数 3.OutputDebuggerPresent函数 二. 手动检测数据结构 1. 检测BeingDebugged属性 BeingDebugge
常见字符串操作指令
摘要:常见的字符串操作指令在x86汇编中有很多,以下是其中一些常见的指令: MOVSB/MOVSW/MOVSD:将一个字节/字/双字从源地址复制到目的地址,并递增源和目的指针。 REP MOVS: 重复执行MOVSB/MOVSW/MOVSD指令,用于复制整个字符串。 STOSB/STOSW/STOSD:将
常见反汇编技术
摘要:### 一. 相同目标的跳转指令 当jz与jnz的目地地址相同时,此时相当于jmp,但是IDA会将jnz后面的指令(实际上不会执行的指令)进行反汇编,这个时候如果加上比如call(E8),jmp(E9)等字节指令,那么势必会导致反汇编出现问题。 这个时候我们需要将jnz后面的代码转化为数据,然后使正
WindowsAPI函数
摘要:## 一. 复制自身至Windows文件以及用户文件 GetModuleFileName(); GetWindowsDirectory(); GetSystemDirectory(); CopyFile(); ## 二. 获得系统信息有关函数 GetVersionEx();//获取操作系统版本 Ge
通过命令行参数启动的后门病毒
摘要:在恶意代码分析过程中,关注的重点是恶意代码的整体行为机制和运行逻辑,但是现在由于我们对底层实现逻辑还不太清楚所以花费了大量的时间在具体实现上,要在积累的前提下大胆猜测小心求证。今天我们换一种分析方式,先通过基础静态分析大致猜测恶意代码行为然后再具体分析具体的实现机制。 一. 注册表行为 在恶意代码当
栈帧构建与平衡堆栈
摘要:# 一. 什么是栈帧 在汇编语言当中每调用一个函数后为其构建一个对应的栈帧,用于存储改函数当中的局部变量以及参数,栈帧是一个栈的结构,ebp指针指向该栈帧的底部即栈底,esp指针指向该栈帧顶部即栈顶,在上而下地址数值不断增加。由于栈空间是有限的,倘若不断增加栈中元素,会导致栈溢出等错误,所以需要在每
call与retn指令
摘要:## 一. call指令 1. 将call指令下一跳指令压入栈中 2. jmp跳转到call指令的地址 一个特殊的运用是call 是intel汇编格式中的一个预定义符号,表示当前指令所在的地址偏移,那么 +5就是下一条
PE文件结构2(实现PE文件载入)
摘要:现在我们已经学完了PE文件格式,但是尚还停留在纸上谈兵的阶段,作为Windows系统上的可执行文件格式,PE文件结构总是和结构体,指针等紧密联系在一起的。理解它的最好方法就是通过写一个类似LordPE的程序来帮助我们理解PE文件结构的底层实现逻辑。计算机到底是如何实现对于PE文件结构的读取和分析的,