逆向工程一个作为web服务工作的程序,未来?

时间:2012-03-21 19:38:13

标签: python web-services open-source reverse

首先,我要澄清一点,我的意思是通过逆向工程来“反编译”,并找回原始源代码或类似的内容。

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

所以我实际上只能用Python,PHP等编写一些GUI,并且通过Web服务来保护我想要保护的“非常秘密的代码”。 (基本上将变量发送到主机并获得结果)。

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

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

编辑:整个想法让我想起了AJAX。代码在服务器上执行,内容被发送到客户端并“美化”。客户自己并没有看到幕后的PHP代码或其他技术。

3 个答案:

答案 0 :(得分:1)

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

通过调用服务并阅读它所说的内容,您可以解析它,并开始查看api中对象之间的关系。有了这个,你可以创建模型,tastypie从这一点开始。

令人敬畏的是,普通人(或者至少不是后端开发人员)可以通过描述他们想要作为输出的内容来创建api。我见过很多android / iphone开发人员创建了一堆静态xml或json,所以他们可以调用他们的服务,并启动前端开发。那么如果那就够了呢?将一些xml / json文件作为输入,将后端作为输出。

答案 1 :(得分:0)

是的,

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

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

如果您想保护“非常密码”,那么 是保护实际代码的好方法。

-sb

答案 2 :(得分:0)

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

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