逆向
《从零开始学IDA逆向》学习笔记-18(编写注册机)
对二进制程序进行分析,然后通过python编写一个注册机
《从零开始学IDA逆向》学习笔记-16(Aspack脱壳)
puahad 和 popad 加壳程序:unpackme.aspack.2.2,可从互联网上搜索。
ida 打开,手动加载程序,取消勾选创建输入段。
加壳程序入口
上图中,第一条指令是pushad,pushad会把所有通用寄存器的值传到栈上。
pushad按如下顺序将所有寄存…
《从零开始学IDA逆向》学习笔记-15(转存并重建导入函数表(IAT))
这章主要介绍了如何转存区段内容并重建导入 IAT 函数表,并完成最后的脱壳工作,完成了这个 upx 加壳程序的脱壳,学习了下整个脱壳流程。
《从零开始学IDA逆向》学习笔记-14(程序脱壳简介)
加壳是指通过一种压缩或者加密的手段将程序的可执行代码隐藏起来,避免被轻易的逆向。
《从零开始学IDA逆向》学习笔记-13(idapython简介)
安装 ipyida ipyida 的安装参考:ida 如何安装插件 - lca
ipython 如何使用
安装完成后,从编辑-插件处选择 ipyida 插件,打开后界面如下:
按?可以显示帮助信息,按 esc 退出帮助信息界面,按 tab 键会自动补全命令,如输入 imp 按…
macos如何反编译apk查看其源码
需要用到的工具 jd-gui apktool dex2jar
查看 apktool 版本
Copy
❯ apktool --version
Mac 安装 dex2jar
Copy
❯ brew install dex2jar
第一步 Apktool 反编译 APK 文件
C…
《从零开始学IDA逆向》学习笔记-12(程序注册逆向分析)
这章主要讲了关于如何逆向分析绕过注册,主要内容包括函数栈、局部变量、注册算法分析等,
《从零开始学IDA逆向》学习笔记-11(标志寄存器)
carry flag Carry Flag(CF 寄存器):当运算结果为负或者相加超过数值上限的时候会被触发。大概意思是计算结果如果超出了范围,就会触发 CF 标志,如果两个无符号数相减结果为负,同样会触发 CF 标志。
overflow flag
of 标志位类似于 cf…
《从零开始学IDA逆向》学习笔记-10(IDA调试器)
通过使用IDA调试器,可以进行动态调试和静态分析,深入了解程序的结构和运行过程,但这章未对源程序进行修改,只是在调试器中改变了标志寄存器的值。
pyc反编译实例
pyc类型的反编译有时需要修改文件头,出题人会在文件头部进行修改,反编译代码后,需要分析并编写源代码获取flag。
《从零开始学IDA逆向》学习笔记-8(静态逆向分析入门)
一般来说,逆向分析并不是对那些庞大的程序进行完整的逆向,只是分析特定位置的一个或几个函数。 1、程序加载详解
打开菜单上的 VIEW-OPEN SUBVIEW-SEGMENTS,可以看到已经自动加载的程序区块。
在区段的名称(NAME)一列后面,是区段起始(START)和终…
《从零开始学IDA逆向》学习笔记-7(流程控制)
1、无条件跳转指令 JMP EIP(指针寄存器)指向下一条将要执行的命令,执行完毕后,EIP 指向再下一条。EIP(指针寄存器)中的值会在每条指令执行后自动更新,指向下一条将要执行的指令的地址。汇编语言中的一些跳转指令(例如 JMP、JE、JNE 等)可以修 EIP 的值…
《从零开始学IDA逆向》学习笔记-6(整数与逻辑运算)
本章主要介绍了汇编语言中的整数和逻辑运算指令,夯实一些基础。
ida如何安装插件
GitHub - fr0gger/awesome-ida-x64-olly-plugin: A curated list of IDA x64DBG, Ghidra and OllyDBG plugins. 这个仓库有许多优秀的 ida 插件,这里以GitHub - eset…
《从零开始学IDA逆向》学习笔记-5(lea指令)
lea 指令 LEA 即LOAD EFFECTIVE ADDRESS:“LEA A, B”指令将 B 的地址传递给 A。
该指令不会获取 B 存储的内容,只会传递地址或者后一个操作数的运算结果 (外加中括号),这种方法普遍运用于获取变量参数的地址。
函数参数与局部变量
IDA…
《从零开始学IDA逆向》学习笔记-4(栈学习)
XCHG Copy
xchg A,B #指令用于将A和B的值互换
将鼠标放置到0x4013d8,这里有个xor eax,eax指令,此处演示修改0x4013d8地址出的指令,点击菜单栏Edit-Patch program-Assemble。
弹出如下窗口。
输入需要修改的…
《从零开始学IDA逆向》学习笔记-3(寄存器)
3.2 寄存器 比如说 ADD (加法) 指令,两个内存中的数就无法直接相加,处理器必须将其中一个数传输到寄存器中,再加上另一个内存地址中的数。
32 位通用寄存器有:EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI 和 EIP。
EAX…
《从零开始学IDA逆向》学习笔记-2(数值运算)
数值系统 常用的数值系统有(二进制) 、decimal (十进制) 和 hexadecimal (十六进制) 。
Binary(二进制):仅以 0 和 1 字符表示数字。
Decimal(十进制):使用 0~9 共 10 个字符表示数字。
Hexadecimal(十六进制):使…