![]() |
1
3
如果您的原始代码是用一些著名的库(如openssl或ctypto++)加密的,那么为这些库的主要入口点编写包装器可能会很有用,然后延迟对实际库的调用。如果您进行了这样的替换并成功地构建了项目,那么您将能够以纯文本方式跟踪出的所有内容。 如果您的项目不使用第三方加密libs,希望仍然可以用一些跟踪其输入的包装器替换加密例程,然后将加密委托给实际代码。 您可以打赌,通常加密是在单独的、相对较少的源文件中实现的,这样您就可以更容易地跟踪这些文件中的输入/输出。 祝你好运! |
![]() |
2
2
我会说
在路上,您将能够记录解密(或者,更可能,尚未加密)的网络活动。 |
![]() |
3
1
IMO,最好的答案是读取备用服务器的源代码。尝试使用一个好的C++ IDE来帮助你。这会有很大的不同。 您需要了解的与协议相关的材料可能仅限于文件的一个子集。这些将包含对网络套接字和事物的引用。从那里开始,尽可能地向外工作。 |
![]() |
4
0
一个可行的方法是将这作为一个加密挑战来处理。这很容易,因为你控制的太多了。 例如,您可以使用当前客户机向服务器发送一条已知消息,然后检查服务器内存中的该字符串。一旦您发现了字符串的结束对象,就可以通过代码跟踪它的祖先。在对象的任何非常量方法上设置断点,并查找stacktrace。这将为您提供消息如何到达服务器的实时视图,以及消息处理所必需的核心功能列表。接下来可以找到相关的函数(列表中函数的调用者/被调用者)。 |