gpt4 book ai didi

assembly - 刚刚学完x86汇编语言。我能用它做什么?

转载 作者:行者123 更新时间:2023-12-02 14:54:12 25 4
gpt4 key购买 nike

我刚刚学完汇编语言。但我不明白我可以实现什么(用于练习/比如小项目)。如果它对任何人都有用,那就太好了。

最佳答案

我最喜欢的爱好之一是逆向工程。

它需要扎实的汇编知识以及使用反汇编器/调试器来遍历编译的代码。这允许您更改、理解和逆向编译的程序。每个新程序都像一个等待解决的谜题!

例如,很多人在刚开始玩扫雷之类的游戏时都会逆向玩。

这是我不久前反转的扫雷中关键代码部分的屏幕截图(右侧的注释): alt text

这是通过在对 rand() 函数的调用上放置断点并在调用堆栈中向后执行来定位的。经过一番挖掘后,很明显:

  1. 雷区高度位于0x1005338
  2. 雷区宽度位于 0x1005334
  3. 雷区基地址位于 0x1005340

有了这些知识,就可以通过以下方式轻松确定雷场中任何给定地雷的位置:

cellAddress = mapBaseAddress + (32 * (y+1)) + (x+1);

然后,通过一个简单的循环和一些对 ReadProcessMemory() 的调用,您就获得了终极扫雷技巧!

阅读手写的程序集比阅读机器生成的程序集容易得多。现代编译器对代码进行了一些神奇而疯狂的优化,有时很难遵循。所以,这肯定会提高你的 assembly 知识!

可以由此衍生出大量事件:

  1. 反转库中隐藏的 API
  2. 使用 DLL 注入(inject)、Code Caves、函数 Hook 等编写高级游戏技巧!
  3. 了解软件采用的各种保护方案的局限性
  4. 反转未发布或未知的文件格式,并编写代码来读取此格式以实现互操作性。
  5. 为各种系统(包括旧游戏系统!)编写模拟器
  6. 了解知名程序如何执行特定任务。
  7. 逆向恶意软件和病毒,了解它们的行为方式和行为。

还有更多!

如果你有兴趣,我强烈推荐这本书:Reversing: Secrets of Reverse Engineering

关于assembly - 刚刚学完x86汇编语言。我能用它做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1809783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com