Giter VIP home page Giter VIP logo

cpu_emulator_unicorn's Introduction

CPU模拟利器:Unicorn

  • 最新版本:v2.1
  • 更新时间:20230901

简介

介绍如何用Unicorn去模拟CPU去执行函数的二进制代码而得到结果。先给出Unicorn的概览;再介绍如何初始Unicorn,包括下载和安装以及运行测试代码确保环境无误。接着详细介绍如何使用Unicorn,yo尤其是概述Unicorn核心思路,接着介绍背景知识,包括程序运行的本质,涉及到CPU的核心逻辑和搞懂什么是指令;以及内存布局相关内容,包括什么是内存布局、内存地址空间范围、典型的内存布局;以及字节序endian。接着介绍运行前的准备,包括设置代码和其他内容。其他内容包含函数参数、相关数据、Stack栈、heap堆;接着介绍运行中的内容,包括如何开始运行,如何调试逻辑,主要是hook,包括hook代码和指令、hook内存、hook异常等内容;以及打印日志,包括优化日志输出。然后是运行后的内容,包括停止运行的逻辑,以及获取结果。接着整理了大量的经验和心得,包括常见的错误,比如UC_ERR_MAP、UC_ERR_WRITE_UNMAPPED等,其中涉及到br间接跳转去混淆相关内容;其他心得还包括手动修改指令、内存读取和写入时的数值转换、如何调用其他子函数、以及具体的模拟malloc、free、vm_deallocate等具体函数实现;以及用到Unicorn的showcase。然后加上一些实际案例,比如模拟akd函数symbol2575和其他一些示例代码;最后附录整理一些Unicorn文档和资料以及Unicorn的部分核心代码。最后贴出引用资料。

源码+浏览+下载

本书的各种源码、在线浏览地址、多种格式文件下载如下:

HonKit源码

如何使用此HonKit源码去生成发布为电子书

详见:crifan/honkit_template: demo how to use crifan honkit template and demo

在线浏览

离线下载阅读

版权和用途说明

此电子书教程的全部内容,如无特别说明,均为本人原创。其中部分内容参考自网络,均已备注了出处。如发现有侵权,请通过邮箱联系我 admin 艾特 crifan.com,我会尽快删除。谢谢合作。

各种技术类教程,仅作为学习和研究使用。请勿用于任何非法用途。如有非法用途,均与本人无关。

鸣谢

感谢我的老婆陈雪的包容理解和悉心照料,才使得我crifan有更多精力去专注技术专研和整理归纳出这些电子书和技术教程,特此鸣谢。

其他

作者的其他电子书

本人crifan还写了其他150+本电子书教程,感兴趣可移步至:

crifan/crifan_ebook_readme: Crifan的电子书的使用说明

关于作者

关于作者更多介绍,详见:

关于CrifanLi李茂 – 在路上

cpu_emulator_unicorn's People

Contributors

crifan avatar

Stargazers

AVA avatar Ryuchen avatar Kingking avatar Lau avatar  avatar Leonismoe avatar  avatar PayNeXC avatar BasicP avatar Minhal avatar 2foil avatar Santiago Upton avatar Chen Xiang‘An avatar  avatar  avatar Maulvi Alfansuri avatar  avatar  avatar 葫芦娃 avatar SeeFlowerX avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

imzpy

cpu_emulator_unicorn's Issues

无法导出x9或x10文件

按照您的教程,我成功搭建了环境和文件目录格式,但是我无法使用lldb工具导出x9和x10两个段的实际数据值到文件,请问可以分享这两个文件,或者介绍一下导出方法么

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.