首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何向用户证明我的模糊代码没有恶意而没有混淆?

如何向用户证明我的模糊代码没有恶意而没有混淆?
EN

Security用户
提问于 2021-08-15 10:05:27
回答 14查看 13.9K关注 0票数 31

我创建了我自己的反adblock系统,它做一些类似于BlockAdblock之类的服务,除了我的系统以不同的方式进行阻滞剂检测(到目前为止还不能像BlockAdblock那样被绕过)。

如果您转到我的反阻断剂网页并生成一些反adblock代码示例,您会注意到这些代码都是模糊的(BlockAdblock也是这样做的),这是为了使过滤器和绕过方法更难开发。代码不能不被混淆或篡改/编辑(这样做会导致它不能工作)。

这个混淆的反adblock代码的每一代都是唯一的,但它们都执行相同的操作。

我可以看到,我的工具的一些潜在用户可能不信任它,因为他们无法确切地确定它是如何工作的--我是否能够向我的用户证明生成的代码不是恶意的,而不暴露实际的未混淆的源代码?(因为如果我要公开未混淆的源代码,那么它首先就会破坏混淆的整个目的)

EN

回答 14

Security用户

回答已采纳

发布于 2021-08-15 13:24:20

如何向用户证明我的模糊代码没有恶意而没有混淆?

很可能你做不到。

也许,如果受信任的人愿意审核您的代码(服从NDA等)并使用他们的PGP密钥签署静态版本,那么可能会有更多的人愿意安装您的脚本,并且相信它已经被那些知道他们正在谈论的内容的人审查了……

在这个世界上,一切都是建立在信任和声誉之上的。因此,我的建议是,如果你想从事编程的职业生涯,从现在开始,应该建立起这种信任,并建立起你的声誉。也可以考虑做一些开源代码,并在GitHub这样的平台上发布。我认为您实际上已经在GitHub上获得了一些回复,所以请不要犹豫地链接到您以前的工作。

如果人们能够看到你的历史,并评估你的编码实践的质量(尽管当你想到它的时候,这些都是游戏的规则……),他们可能更愿意信任你的代码。

也许有一天,你会在一家软件公司工作,或者创建一家软件公司,然后你会出售像这样的封闭源代码,编译后的代码。如果你的声誉足够好,如果你的产品足够好,稳定和价格正确,你的客户会接受它就像他们购买他们需要的其他软件产品,即使他们永远不会看到源代码。

只是好奇而已,但是您是否尝试过像这一个这样的在线清理器呢?经过这些工具之后,您的代码是否已经足够晦涩了?

您所取得的仍然是通过模糊的安全性,JavaScript代码也可以通过调试器进行跟踪。所以,一个有时间和足够经验的人可以弄清楚它是如何运作的。毕竟,这是客户端代码,甚至没有编译。

这不可能是地球上最困难的逆向工程任务。

在这一点上我不会太担心,我担心的是你的发明是时间敏感的,甚至可能会被未来版本的Firefox或Chrome等所淘汰。击败阻断剂是一个永无止境的竞赛,你在这个领域做的一切都是有限的。

票数 82
EN

Security用户

发布于 2021-08-15 19:02:19

如果用户无法读取代码,就不可能证明代码不是恶意代码。你能期望的最好的是一个信任网络,第三方证明它不是恶意的,但这并没有转移信任问题--它只是创造了一个额外的问题。

从最终用户的角度来看,通过试图绕过我的安全安排,您询问的代码已经是恶意的。我不需要看代码就知道这一点,我已经避免了网站告诉我关闭它,因为他们已经表现出缺乏希望赢得我的习惯。

票数 53
EN

Security用户

发布于 2021-08-15 10:32:30

可能不会。证明某些特定的黑匣子(您的代码)有一个特定的行为,只有这样的行为是不可能的,除非首先充分描述预期的行为-这基本上意味着提供某种形式的代码。

例如,仅仅提供一些示例输入并让用户生成示例输出是不够的,因为某些特定的“魔术”输入仍然会触发后门或类似的输入。

票数 20
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/254257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档