问题标签 [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.
flash - 逆向工程闪存
我有一些 Flash SWF 文件,我需要了解它们是如何工作的。他们有什么好的工具可以对 SWF 文件进行逆向工程吗?
谢谢。
memory - 低级编程:如何在另一个正在运行的进程的内存中查找数据?
我正在尝试通过从游戏的进程内存中提取值来为游戏编写统计工具(因为没有其他方法)。最大的挑战是找出存储我感兴趣的数据所需的地址。更难的是动态内存分配——我不仅需要找到存储数据的地址,还需要找到指向这些内存块的指针,因为每次游戏重新启动时地址都会发生变化。
现在我只是使用内存编辑器(ArtMoney)手动搜索游戏内存,并寻找随着数据变化(或不变化)而改变其值的地址。找到地址后,我正在寻找一个以类似方式指向该内存块的指针。
我想知道这些任务有哪些技术/工具?也许有一些我可以阅读的文章?掌握反汇编程序是唯一的出路吗?例如,游戏培训师正在解决类似的任务,但他们在几天内就完成了,而我已经苦苦挣扎了好几个星期。
谢谢。
PS。一切都在窗户下。
reverse-engineering - 逆向工程旧油漆程序
我有几个非常老的基于 MSDos 的绘图程序。他们在调色板索引的图像缓冲区上工作。他们有许多壮观的形状绘制工具、画笔和效果,这些工具在任何现代绘画程序中都不存在——尤其是在停留在低调色板索引图像的“界限”内时。我想在一个现代程序中重现许多这些美妙的工具,也许让我和公众再次更容易使用它们,而不必启动像 dosbox 这样的模拟器。但我有一个问题。
虽然很多这些画笔和工具和东西都有明显的功能,但它们的实现应该相当简单。但是对于其他工具,它们的操作原理就不是那么明显了。我会被困在确定一个正确或忠实的算法来实现这些。
如果你是我,你会采取什么方法?是否有现成的反编译器/反汇编器可以处理这样的旧程序?或者你会采取一些不同的方法,比如有条不紊地测试不同输入的算法来推断底层函数?一些不同技术的组合?就这些程序中的一行而言,这些(商业)程序的原作者是众所周知的,现在是狂热的开源倡导者。我应该尝试直接联系他们并询问吗?我在逆向工程方面不是特别有经验,所以我不知道从哪里开始。
编辑:似乎“问,你会收到”确实有效。
编辑 2:查看http://animatorpro.org以获取我...获得源代码的程序的源代码。豪华油漆也不错,但丹席尔瓦似乎已经从地球上消失了。
django - 如何保护我的网络游戏免受作弊者的侵害?
我刚刚编写了我的第一个 Web 应用程序(Linux、Apache、MySQL、Django),并希望公开发布它。这是一个伪装成游戏的基于网络表单的任务;我打算最终将它放到Amazon Mechanical Turk上,并为达到一定分数的人提供小额奖金。
尽管这个应用程序没有非常高的安全风险,但我需要保护它免受操纵和逆向工程。但是,我几乎没有接受过测试/安全方面的正式培训。鉴于要赢得有形的奖品,我知道人们会有作弊的动机,无论是通过更改 POST 数据、按“返回”并重新提交数据直到他们获胜等等。到目前为止,我一直在处理这些当我想到可能的漏洞利用时,通过进行安全测试来临时解决问题。然而,我意识到可能有很多我还没有想到的操纵形式。
谁能推荐一些阅读材料,我可以从中学习如何保护我的网站免受操纵和逆向工程?
actionscript-3 - 如何防止 ActionScript 代码反编译
是否有可靠的方法来防止我的动作脚本代码(as2 或 as3)被复制(例如,如果其中有一些 IP)?我知道有些工具可以反编译 flash 代码,因此很容易对其进行逆向工程,而且我还看到一些工具声称能够以不可窃取的方式混淆 actionscript 代码,但我想知道它的可靠性如何他们是……你知道吗?谢谢!
eclipse - 将 Eclipse(建模工具)中的 UML 类图映射到实际类
我正在为 Eclipse 中的学生寻找一个“可逆向工程”的建模系统。
目前,我正在查看 Ganymede 版本中的 Eclipse 建模工具(http://www.eclipse.org/downloads/packages/eclipse-modeling-tools-includes-incubating-components/ganymedesr2)
我对 Eclipse 中用于构建 UML 模型的 UML 建模设计表面感到满意。
但是,有谁知道如何将这些映射到代码并来回映射?
我有点被宠坏了,因为我一直在 Visual Studio 中这样做。
sql-server - SQL Server DB 中所有索引和索引列的列表
如何获取 SQL Server 2005+ 中所有索引和索引列的列表?我能得到的最接近的是:
这不正是我想要的。
我想要的是,列出所有用户定义的索引(这意味着没有支持唯一约束和主键的索引)以及所有列(按它们在索引定义中的出现方式排序)以及尽可能多的元数据。
reverse-engineering - 发布一个游戏 MMORPG 的程序在道德上是否合理?
我大概已经编写了一些第一批代码来修改流行的新 MMORPG 的内存,从而创建一个宏框架,允许高级自动化反应、技能/级别增益、大规模数据检索和机器人。
以这种方式自动化任务是我最大的荣幸,我不禁认为任何手动方法都是“坏掉的”。事实上,我发现自己什至无法完成单人游戏,然后再剖析他们的机制并进行游戏,以一种专门的只读(不是作弊,本身)鼠标和键盘输入的方式。用我自己的编程知识补充我朝着游戏相关目标的进步似乎很自然,否则真的不好玩,就像在 FPS 中忽略你的枪支一样。
由于我喜欢这种形式的逆向工程,我认为其他人也会这样做,他们至少会欣赏最终结果。我倾向于觉得一个项目应该以某种方式“发布”:被出售、开源或免费分发。“独乐乐不如众乐乐。” 否则只有我和我的时间槽。
问题是这种性质的项目涉及几种道德立场:
一个邪恶被释放到虚拟世界。有程序的人有优势,游戏不平衡,你要使用,只是为了平起平坐。它不再是关于游戏,而是工具,一场军备竞赛。就像所有其他 MMORPG 一样。因此,请将代码保密。
以上是不可避免的,所以发布一个强制性的免费发行版,让玩家平等地获得优势,并可能拒绝其他人更邪恶的™(例如精英、商业等)版本。在邪恶之间,选择最少的,尽管它的必要性是令人不快的。
出售程序,从你的倾向中获益,这是你应该得到补偿的工作,公平交易(并且不管是否违反了 ToS)。关注 WoWGlider 之类的。人手越少越好吗?
将代码保密。至少尊重您同意的公司服务条款。
什么是道德上可辩护的方法?我没有考虑什么?根据我的经验,ToS 协议在很大程度上是一种无效的劝阻形式,MMORPG 的游戏(以及随后在#1 中描述的结果)确实是不可避免的,但有一些话要说,不要自己扣动扳机——或者它不是那么糟糕?
我在这个问题的原始措辞/标题上做得很差,我真的很想看看是否有特殊情况在道德上是可以辩护的,而不是通常是否可以,希望我的代码可以有建设性的目的.
作为一个新用户,在我更新之前,我没有意识到 99% 的响应会是即时的。也就是说,我仍然收到了一些关于商业化的非常有用的答案,并且最初的问题值得提供的答案,所以:在这方面做得很好。
我确实有我的答案:尽管机器人不可避免,但不要自己扣动扳机!改变,等等(#3从来没有在我个人的桌子上,但引出了一些精彩的答案。)
windows - 应用程序如何加载没有名称的 DLL?
我已经反汇编了一个调用 DLL 库中的函数的 VB6 应用程序,但是在反汇编中我找不到对 DLL 的任何引用。调用代码如何加载这个 DLL?它是动态链接的,因为我可以观察到删除和替换 DLL 的效果。
我使用的是 IDA Pro Free,调用应用程序是一个 VB6 应用程序,而 DLL 是一个普通的 Win32 DLL,我怀疑它是使用 C 或 C++ 创建的。
obfuscation - C++ Win/OSX 应用程序的混淆和逆向工程威慑
我有一个在 Windows 和 OSX 上发布的 C++ 应用程序。它使用 TCP(使用 OpenSSL 加密,natch)与我们的后端通信。我想为那些试图逆向工程协议和/或反汇编可执行文件的人抛出一些减速带。
Skype 在这方面做得很好,这就是为什么你找不到很多使用 Skype 的应用程序的原因。这是一个关于它的作用的非常好的阅读:http ://www.secdev.org/conf/skype_BHEU06.handout.pdf
我想要一些关于如何在我们的应用程序中完成类似事情的想法。是否存在使代码更难进行静态分析的商业产品?投入时间来完成我列出的目标的最佳方式是什么?
谢谢,