【问题标题】:Reverse Engineer a program working as a webservice, the future? [closed]对作为 Web 服务工作的程序进行逆向工程,未来? [关闭]
【发布时间】:2012-03-21 19:38:13
【问题描述】:

首先我想澄清一下,我所说的逆向工程是指“反编译”并取回原始源代码或类似的东西。

昨天我读到一个关于有人想保护他的 python 代码免于“被盗”的问题,换句话说:他不喜欢有人可以阅读他的 python 代码。 我读到的有趣的事情是,有人说“保护”他的代码免受逆向工程的唯一可靠方法是使用 Web 服务。

所以我实际上只能用 Python、PHP 等编写一些 GUI,然后执行我想通过 Web 服务保护的“非常秘密的代码”。 (基本上是向主机发送变量并返回结果)。

是否真的不可能对 Web 服务进行逆向工程(通过代码且无需入侵服务器)?这会是现代商业应用的未来吗?云炒作已经到来。所以我不会怀疑。

如果这个话题已经讨论过了,我很抱歉,但是我找不到任何关于这个的资源。

编辑:整个想法让我想起了 AJAX。代码在服务器上执行,内容被发送到客户端并“美化”。客户自己看不到背后是什么php-code或其他技术。

【问题讨论】:

  • @AI G 感谢您纠正我的问题 :)

标签: python web-services open-source reverse


【解决方案1】:

哇,这太棒了!我从来没有这样想过,但是你可以创建一个程序来抓取一个 api,并作为输出返回一个模仿 api 所做的一切的 django/tastypie 软件。

通过调用服务并阅读它的内容,您可以解析它,并开始查看 api 内部对象之间的关系。有了这个,你就可以创建模型了,saffectpie 就是从这里开始的。

关于这个的很棒的事情是,普通人(或者至少不是后端开发人员)可以通过描述他们想要的输出来创建一个 api。我见过很多 android/iphone 开发人员创建了一堆静态 xml 或 json,所以他们可以调用他们的服务,并开始前端开发。好吧,如果这足够了呢?将一些 xml/json 文件作为输入,得到一个后端作为输出。

【讨论】:

  • 这就是我所说的。你明白我的意思:) 好东西:你可以很容易地维护“秘密代码”,只要让一个服务器运行这个 webservice-code,gui 实际上可以总是相同或很少更新。 “坏”的事情是:您的客户总是需要互联网连接。但互联网传播速度很快。
  • 好吧,回答你的问题:不,我从未见过这样的事情。但是,是的,如果您没有找到任何资源,我很乐意与您合作开发一个 github 项目。顺便说一句:我也是 github 上的 fceruti。
  • 嗯,我有很多想法。我们可以找个时间聊天:)
【解决方案2】:

是的,

他们所能做的就是将您的 Web 服务视为一个黑盒,向 WSDL 查询它接受的所有参数以及它返回的数据。

然后他们可以提交不同的变量并查看不同的结果。 “代码”不能被看到或被盗(具有适当的安全性),但输入和输出可以被复制。

如果您想保护您的“非常秘密的代码”,网络服务保护实际代码的好方法。

-sb

【讨论】:

    【解决方案3】:

    这取决于您所说的逆向工程:通过重复发送输入和分析输出,您的代码行为仍然可以看到。我不会有你的代码,但我仍然可以看到系统做了什么。这意味着在给定相同输入的情况下,我可以构建一个执行相同操作的类似系统。

    很难捕捉到异常情况(例如一年中只有一天的输出不同),但当然可以复制常见行为。这类似于分析即时通讯客户端的协议:您可能没有原始代码,但您仍然可以构建副本。

    【讨论】:

    • 我只讲代码逆向工程。不是通过输出。我知道这也是可能的。 (一种用于构建例如私人游戏服务器的技术)
    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    相关资源
    最近更新 更多