是否可以将.NET 2.0二进制文件(*.exe)反编译为某种可读代码?或者如果没有,只需从中提取一些信息(例如方法名称,调试信息等)?
某些代码分析工具要求您将 .ipa 与 .dSYM 文件一起提交。
将 .dSYM 文件与 .ipa 一起发送是否存在应用程序逆向工程的风险?我的意思是,如果有人同时拥有 .ipa 和 .dSYM,他能获得源代码吗?
我需要对用 C++ 编写的软件组件进行一些修改。我幻想着生成一些代码映射,这将显示类之间的关系并引导我完成方法的流程/调用图。有这个工具吗?
几年前,我使用 Rational Rose 建模工具,它具有对代码进行逆向工程并为其构建类图的功能。然而,对于此类项目探索重要的是一些动态信息,如序列图(理想情况下)或调用图。更不用说 Rose 对于这样的一项临时任务来说太大了,实际上我不知道它是否仍然存在。
我有一个jar文件,我需要编辑一个特定的类并将其保存回jar文件中.我尝试了不同的反编译器,但我无法保存回jar.
我尝试使用Eclipse和JADCLIPSE进行反编译.通过使用它,我可以看到反编译的类文件,但我无法编辑它.有谁可以帮我解决这个问题?
我是 Laravel 4 的新手。我想知道是否可以从现有数据库生成模型、视图和控制器?我用谷歌搜索并发现
https://github.com/JeffreyWay/Laravel-4-Generators
Run Code Online (Sandbox Code Playgroud)
但是它允许通过提供资源名称来生成迁移脚本、模型、视图和控制器,因为我想在其中通过命令行逆向工程我想从现有数据库创建模型、视图和控制器。
假设我没有导入.lib库,我希望通过手动编写调用(如汇编或纯c)中的所有操作
GetProcAdress LoadLibrary是winapi dll的一部分一般来说,加载dll并获取指向函数的指针,我需要调用这两个,但是因为我没有得到它们我可以使用它来获取它们?
这有点像悖论,可能它可以通过其他一些机制解决,但在这里我缺乏知识表明,我不知道这个机制是什么,有人能解释一下吗?
我有一个应用程序的汇编指令列表,我想知道哪些寄存器可以免费使用,以及在列表的任何索引处使用了哪些寄存器.
如何知道寄存器何时被使用以及何时被释放(可以再次使用)?我的目标是到达真正免费的寄存器.
这是我解决问题的假设,因为我对装配知识如此有限,所以听起来可能很愚蠢.
术语:读(源),写(目标)
它能解决问题还是有意义?我也对其他解决方案持开放态度.
评论后更新:
我看到JMPS /调用/条件移动搞砸了所有这些.只是为了保证它的安全(安全=自由寄存器真的是免费的),做这样的事情怎么样:当我看到每个跳转/调用/条件移动到外面时,我将所有寄存器标记为"正在读取",最大程度上是悲观的哈罗德描述的假设.我相信在这种情况下我会有更安全的结果,即使它不会很好,因为寄存器大部分时间都处于繁忙状态.您是否同意我的结果会以这种方式安全?
说明:
结果:
更新2
我会将应用程序拆分为基本块,其中每个块代表跳转(也是条件),调用和返回之间的一大块代码.跳转语句将是块的结尾.然后,我将分析每个块,假设所有寄存器在开始时都在使用.我可能会错过很多免费的寄存器,但当我得到一个,我会知道那个是真的免费的=)
更新3
我仍在尝试根据反馈改进解决方案(感谢哈罗德).
我已经阅读了活体分析,据我所知,建议从应用程序的最后分析到开始.但我不知道在编译程序集中应用程序的结束,如下面的评论中提到的停止问题,所以我将对未来的分支进行相反的处理.
may_continue_with容器,该容器保存指向它可能继续的分支的指针.我在理解rlwinmPPC汇编指令时遇到了一些麻烦(旋转左字立即然后和屏蔽).
我试图扭转这部分功能
rlwinm r3, r3, 0, 28, 28
Run Code Online (Sandbox Code Playgroud)
我已经知道是什么了r3.r3在这种情况下是一个4字节的整数但我不确定这条指令到底rlwinm是做什么的.
顺便说一下,这是在32位机器上.
逆向工程:
是否可以编写一些python代码来获取未知的c变量值!
方程:(((ord(c) << 5) | (ord(c) >> 3)) ^ 111) & 255 = 233
这是我的逻辑:
ord(c)<<5 = a这会给我们ord(c) = a >> 5的话c = chr(a >> 5)(ord(c) << 5) | (ord(c) >> 3))会回来 (ord(c) << 5)& 做一个"按位和",但是&不可逆.如果有人帮助我,找出并解决方程,我会很高兴的.
这就是整个问题的pastebin链接
我试图更多地了解x86中的汇编.我在这里有一个神秘的功能,我知道它会返回int并接受一个int参数.所以它看起来像int mystery(int n){}.但我无法弄清楚C中的功能.大会是:
mov %edi, %eax
lea 0x0(,%rdi, 8), %edi
sub %eax, %edi
add $0x4, %edi
callq < mystery _util >
repz retq
< mystery _util >
mov %edi, %eax
shr %eax
and $0x1, %edi
and %edi, %eax
retq
Run Code Online (Sandbox Code Playgroud)
我不明白lea在这里做了什么,它可能是什么样的功能.