初学者软件 RE 帮助、RAM 地址、库加载,从哪里开始?

Beginner Software RE help, RAM Addresses, library loading, where to start?

首先,我使用 OS X,这是一个基于 UNIX 的系统。

我具有 C++ 的初级理论知识,想通过软件逆向工程来扩展我的知识。我进入的每个指南似乎都跳到一半,我似乎错过了启动所需的巨大信息差距。我的最终目标是为任何应用程序成功构建一个可用的 dylib。我从哪里开始学习 Ram 地址,它们是如何工作的,库是如何加载的,我到底要开始阅读什么,什么主题。到目前为止,我所学的一切都有一个独特的起点、特定的语法,但我发现一切都使用了我不理解的术语。我发现自己越来越多地分支,因为一篇文章使用了一个我不理解的关键字,我 google 它,另一篇使用了五个我不理解的关键字,我只是被卡住了。有问题的应用程序没有更改内存地址,但我也想学习如何使用偏移量对其进行补偿。

我从哪里开始?!

在开始逆向工程之前,您需要的不仅仅是 C 语言的理论知识。现在忘记 C++,C 更简单,而且它的级别非常低,一旦你掌握了它,你就会理解程序是如何在幕后工作的。给你一本 Brian Kernighan 和 Dennis Ritchie 合着的 The C Programming Language 并通读整本书。

一旦你觉得编写 C 程序很舒服,就可以熟悉 UNIX 标准,如 POSIX,然后转向 OS X 特定的东西。 OS X 编程的最佳资源是 http://developer.apple.com。下面的 link 解释了动态库如何在 OS X 上工作。一旦你对 C 有了很好的理解,一切都会变得有意义。

https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/OverviewOfDynamicLibraries.html