主页
1.1.
前言
1.2.
Unicorn概览
1.3.
初始化
1.3.1.
下载安装
1.3.2.
运行测试代码
1.4.
如何使用
1.4.1.
概述Unicorn核心思路
1.4.2.
背景知识
1.4.2.1.
程序运行的本质
1.4.2.1.1.
CPU的核心逻辑
1.4.2.1.2.
什么是指令
1.4.2.2.
内存布局
1.4.2.2.1.
什么是内存布局
1.4.2.2.2.
内存地址空间范围
1.4.2.2.3.
典型的内存布局
1.4.2.3.
字节序endian
1.4.3.
运行前
1.4.3.1.
设置代码
1.4.3.2.
设置其他
1.4.3.2.1.
函数参数
1.4.3.2.2.
相关数据
1.4.3.2.3.
Stack栈
1.4.3.2.4.
Heap堆
1.4.4.
运行中
1.4.4.1.
开始运行
1.4.4.2.
调试逻辑
1.4.4.2.1.
hook
1.4.4.2.1.1.
hook代码
1.4.4.2.1.1.1.
hook指令
1.4.4.2.1.2.
hook内存
1.4.4.2.1.3.
hook异常
1.4.4.2.2.
打印日志
1.4.4.2.2.1.
优化日志输出
1.4.4.2.3.
查看当前指令
1.4.5.
运行后
1.4.5.1.
停止运行
1.4.5.2.
获取结果
1.5.
经验和心得
1.5.1.
常见错误
1.5.1.1.
UC_ERR_MAP
1.5.1.1.1.
批量解决UC_ERR_MAP
1.5.1.2.
UC_ERR_WRITE_UNMAPPED
1.5.2.
手动修改指令
1.5.3.
数值转换
1.5.4.
ARM64和arm64e
1.5.5.
调用其他子函数
1.5.5.1.
模拟函数实现
1.5.6.
用到Unicorn的
1.6.
实例
1.6.1.
模拟akd函数symbol2575
1.6.2.
其他示例代码
1.7.
附录
1.7.1.
Unicorn文档和资料
1.7.2.
Unicorn部分核心代码
1.7.3.
参考资料
本书使用 HonKit 发布
运行前
运行前
在能用Unicorn模拟运行你的代码之前,要准备好相关的内容,即,内存中要 设置=存放 好相关的东西。
下面详细介绍具体要设置哪些东西。
results matching "
"
No results matching "
"