问题标签 [reverse-engineering]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reverse-engineering - 对二进制文件格式进行逆向工程是否合法
通过反向工程来自另一个应用程序的未加密二进制文件格式并读取内容,在我的应用程序中添加对第 3 方文件格式的支持是否合法?
reverse-engineering - 串行发生器/裂缝是如何开发的?
我的意思是,我一直想知道有人到底是如何开发算法来打破/欺骗许多共享软件程序中合法使用的限制。
只是为了好奇。
clone - 在现有数据库的基础上创建一个新的 rrd 数据库
我有一些旧的 rrdtool 数据库,其确切的创建方法早已丢失。我需要创建一个与当前数据库具有相同特征的新数据库。我已经转储了几个旧数据库并仔细研究了内容,但我不确定如何解释元数据。我认为它出现在以下节中
有四个这样的节,这与我记得循环级联的设置方式相对应。有没有人已经这样做了,或者可以告诉我如何从现有的数据库中克隆一个新的空 rrd 数据库?或者告诉我我在文档中错过了这个。
c# - 如何将 .NET EXE 反编译为可读的 C# 源代码?
几年前,我为客户编写了一个 C# 应用程序,但我不再拥有源代码。我所拥有的只是我在客户端 PC 上部署的 EXE。有没有办法可以从 EXE 生成 C# 源代码?
reverse-engineering - 逆向工程战争故事
有时您没有源代码,需要对程序或黑盒进行逆向工程。有什么好玩的战争故事?
这是我的一个:
几年前,我需要重写一个我没有源代码的设备驱动程序。设备驱动运行在一台老式的CP/M微电脑上,通过串口驱动一台专用的照排机。我几乎没有关于照排机的文档。
我终于在一台模拟照排机响应的 DOS PC 上组装了一个串行端口监视器。当我通过 CP/M 机器输入数据时,我将 DOS PC 连接到 CP/M 机器并开始记录来自设备驱动程序的数据。这使我能够弄清楚设备驱动程序使用的握手和编码,并为 DOS 机器重新创建一个等效的。
c++ - 有 C++ 反编译器吗?
我有一个程序丢失了 C++ 源代码。有没有好的 C++ 反编译器?
我已经遇到了Boomerang。
.net - 从 WSDL 文件对 Web 服务接口进行逆向工程的最佳方法是什么?
我在系统上为 Web 服务继承了一个 WSDL 文件,我无权访问该文件以进行开发和测试。
我需要生成一个遵循该 WSDL 的 Web 服务。包装器是 .NET,但如果有一种简单的方法可以在另一个平台上执行此操作,我们也许可以看看。生产 Web 服务是基于 Java 的。
这样做的最佳方法是什么?
注意:继承的 wsdl 似乎与wsdl.exe不兼容,因为它不符合 WS-I Basic Profile v1.1。特别是,传递它的小组提到它使用了微软工具不支持的另一个标准,但他们没有澄清。该错误与必需的“名称”字段有关:
为清楚起见,我知道我可以轻松地从 WSDL 文件创建一个 .NET 包装类,但这不是我需要的。就像这样:
更新:最初的 Web 服务是使用 Axis 创建的。
显示不可用 Web 服务和模拟 Web 服务的系统图 http://paulw.us/blog/uploads/SO-WSDL-Question2.gif
algorithm - photoshop抠图滤镜是如何实现的?
Photoshop 有很多很酷的艺术滤镜,我很想了解底层算法。
一种特别有趣的算法是 Cutout 过滤器(上面链接中的第 2 号)。
它具有三个可调参数,层数、边缘简单性和边缘保真度。级别数似乎驱动了一个简单的后处理算法,但其他滑块在技术上所做的事情让我难以理解。
我认为他们正在做一些与 Vornoi 图或 k-means 分区相关的事情,但是在维基百科上四处寻找并没有导致任何明显映射到 Photoshop 正在做的事情,特别是考虑到过滤器自身渲染的速度。
是否有任何关于 Photoshop 滤镜技术描述的来源?或者,您对如何实现此特定过滤器有任何想法吗?
macos - 将功能注入二进制文件的最佳方法
将功能插入二进制应用程序(3d 方,封闭源代码)的最佳方式是什么。
目标应用程序在 OSX 上,似乎是使用 gcc 3+ 编译的。我可以看到在二进制文件中实现的函数列表,并且已经调试和隔离了一个我想远程调用的特定函数。
zoomByFactor(x,y)
具体来说,当我从复杂的 HIDevice 接收到某些数据时,我想调用这个函数——我们称之为 void 。
我可以轻松地修改或将指令注入二进制文件本身(即修补不需要只在 RAM 中进行)。
你会推荐什么作为“很好”这样做的方式?
编辑:
我确实需要整个应用程序。所以我不能放弃它并使用图书馆。(对于那些需要道德解释的人:这是一个专有的 CAD 软件,其公司网站自 2006 年以来就没有更新过。我已经为这个产品付了钱(真的花了很多钱)并且有项目我无法轻易从中迁移的数据。该产品非常适合我,但我想使用我最近获得的新 HID。我已经检查了应用程序的内部结构,我相当有信心我可以使用相关数据调用正确的函数并使其正常工作)。
到目前为止,这是我所做的,而且非常贫民窟。
我已经通过这个过程修改了部分应用程序:
我正在做这种跳跃,因为二进制文件几乎有 100 兆大。
我在想的主要是我会在主应用程序循环中的某个地方跳转,启动一个线程,然后返回到主函数。
现在,问题是:我可以在哪里插入新代码?我需要修改符号表吗?或者,我怎样才能使 dylib 自动加载,以便我需要做的唯一“黑客”操作就是将对正常加载的 dylib 的调用插入到主函数中?
mysql - 用于 mysql 的开源 ER 图表工具
我想对我拥有的数据库的数据库定义转储进行反向工程(导入图表形式),然后由于在这个特定数据库中没有定义外键,我希望能够手动创建表到表的键映射(使用 crow如果可能,英尺符号)。
我查看了 MySQL Workbench,它让我完成了 85% 的工作。漂亮的小关系线不会出现,而且自动排列很糟糕。快速搜索谷歌会发现其他几个选项,所以我可以自己评估这些,但是:
我可以从你们那里得到一些反馈,您最喜欢在这种情况下使用哪些工具?你为什么喜欢那个(你的)特定工具?
我的预期目的是获取一个遗留数据库,并训练 jr。工程师对数据库的组织。视觉辅助工具很漂亮。我的后备选项是手动重新创建 ER 图。250 多张桌子不好玩。