作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚学完汇编语言。但我不明白我可以实现什么(用于练习/比如小项目)。如果它对任何人都有用,那就太好了。
最佳答案
我最喜欢的爱好之一是逆向工程。
它需要扎实的汇编知识以及使用反汇编器/调试器来遍历编译的代码。这允许您更改、理解和逆向编译的程序。每个新程序都像一个等待解决的谜题!
例如,很多人在刚开始玩扫雷之类的游戏时都会逆向玩。
这是我不久前反转的扫雷中关键代码部分的屏幕截图(右侧的注释):
这是通过在对 rand()
函数的调用上放置断点并在调用堆栈中向后执行来定位的。经过一番挖掘后,很明显:
有了这些知识,就可以通过以下方式轻松确定雷场中任何给定地雷的位置:
cellAddress = mapBaseAddress + (32 * (y+1)) + (x+1);
然后,通过一个简单的循环和一些对 ReadProcessMemory()
的调用,您就获得了终极扫雷技巧!
阅读手写的程序集比阅读机器生成的程序集容易得多。现代编译器对代码进行了一些神奇而疯狂的优化,有时很难遵循。所以,这肯定会提高你的 assembly 知识!
可以由此衍生出大量事件:
还有更多!
如果你有兴趣,我强烈推荐这本书:Reversing: Secrets of Reverse Engineering
关于assembly - 刚刚学完x86汇编语言。我能用它做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1809783/
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是无关紧要的,
我是一名优秀的程序员,十分优秀!