我是 ELF 二进制保护的新手。
我想删除节头表以避免调试。
我尝试通过运行 readelf -h 来查找磁盘上的节头表偏移量,并尝试 nop 它们,但它们都是 0。
如何删除节标题表?
提前致谢。
我正在一个项目中工作,我必须将数据从服务器获取到本地数据库。我正在考虑房间数据库,它是 android Jetpack 组件的一部分(我猜)。我在堆栈溢出中搜索了很多关于在房间中存储数据是否安全的信息?,但他们都不能满足我。虽然互联网上没有什么是安全可靠的,但我只是想破解房间数据库的可能方法是什么?
简而言之,我只想知道将数据本地存储在 Room 数据库中是否安全?请问有人可以告诉我 Room 数据库是否安全吗?或者有人如何通过逆向工程获得房间数据库?
我四处寻找一个程序集可视化工具,类似于正则表达式网站如何向您展示它的解释,或者 BF(语言)可视化工具向您展示它如何通过堆栈,在线某个地方是否有类似的程序集?
Brainfuck 示例: https: //fatiherikli.github.io/brainfuck-visualizer/
我正在尝试阅读一段 Rust 汇编代码,但实际上,它比 C/C++ 编译器生成的 ASM 代码更难阅读。那么,如何分析下面这段Rust代码的ASM代码呢?
fn main() {
let closure = |x| println!("{}", x);
let x: fn(x: i32) -> () = closure;
println!("{}", x as i32);
}
Run Code Online (Sandbox Code Playgroud)
相应的汇编代码如下所示,并带有一些注释(我只粘贴了主要部分,完整版本请使用此永久链接:https://play.rust-lang.org/ ?version=nightly&mode=release&edition=2018&gist=e7ba4844f1ce6e881912dc074152988d ):
playground::main: # @playground::main
# %bb.0:
subq $72, %rsp
leaq core::ops::function::FnOnce::call_once(%rip), %rax
movl %eax, 4(%rsp)
leaq 4(%rsp), %rax
movq %rax, 8(%rsp)
movq core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt@GOTPCREL(%rip), %rax
movq %rax, 16(%rsp)
leaq .L__unnamed_2(%rip), %rax # the contents of rdx come from .L__unnamed_2(%rip), how to evaluate this part?
movq %rax, …Run Code Online (Sandbox Code Playgroud) 在分析 Ghidra 中的程序集列表时,我偶然发现了这条指令:
CALL dword ptr [EBX*0x4 + 0x402ac0]=>DAT_00402abc
我假设程序正在调用一个地址位于 inside 的函数DAT_00402abc,我最初认为它是一个双字变量。事实上,当尝试在 is 所在的位置创建函数时DAT_00402abc,Ghidra 不会让我这样做。
反编译器向我显示这行代码来翻译该指令:
(*(code *)(&int2)[iVar2])();
所以我想知道这是什么意思以及程序应该用这个调用做什么?有没有可能吉德拉彻底搞砸了?如果是这样,我应该如何解释该指令?
Denis Yurichev 的逆向工程挑战 #10 https://challenges.re/10/中有这样一段 asm 代码片段
优化 GCC 4.8.2:
这段代码很短,但是很棘手。它有什么作用?它在低级编程中大量使用,并且为许多低级程序员所熟知。有多种计算方法,这就是其中之一。
Run Code Online (Sandbox Code Playgroud)f: lea eax, [rdi-1+rsi] neg esi and eax, esi ret
在 C 语言中,这段代码看起来像这样:
(a+b-1) & (-b)
Run Code Online (Sandbox Code Playgroud)
请帮我弄清楚这段代码的作用以及它的用途
我对 a 和 b 运行了几个测试值,但没有看到模式
我有一些perl代码(约300-500行),我必须再次工作.我的编程经验有限,通常如果我编码我只是找到对我有意义的最佳解决方案.在这种情况下,我必须使用此代码,因为它是为现有的遗留系统构建的,其代码是系统的布线,逻辑和渲染的文档.这不是很多代码,但我也无法发布甚至大块的代码或数据来获得帮助.什么是理解语法,它正在做什么,如何连接代码,逻辑如何模型等的最佳方法.
问题,反馈,评论 - 只是评论,谢谢!
我丢失了去年我建立的所有应用程序的代码(雷击我的硬盘,没有备份任何应用程序).由于它们是相当简单的应用程序,我将它们置于逆向工程过程中.我已经在过去几十次这样做了,每次我都没有任何问题(如果我们不计算工作时间将所有文件整合到一个项目中).我已经完成了在硬盘耗尽期间丢失的3个应用程序.他们几乎完美地逆转了,但我被困在了这个.
我们来详细介绍一下.逆向工程进展顺利.我能够从APK中提取的编码XML文件中获取XML代码.我也能够成功地从中反编译Java代码classes.dex.我得到所有文件可读,然后我可以通过文本编辑器打开/查看.
但我有一个奇怪的文件结构和奇怪的文件名.项目文件位于通常的路径中src/com/mycompanyname/appname.在RI处理之后,一些文件保留在主路径中(R.java第三方广告文件和其他一些文件),而所有其他文件都被重新映射到文件结构中,如下所示:
a.java
b.java
c.java
...
z.java
我写的所有文件都被重命名并获得了这些奇怪的名字,而所有第三方文件都保持不变.
问:有谁可以告诉我这可能是什么原因?
问:在将代码编译成APK之前,Eclipse是否以某种方式混淆了代码?这是混淆的APK在通过IR流程后的样子吗?
我真的希望有人能够帮助我,因为我仍然需要重建超过10个其他应用程序.它
我正在构建一个iPhone应用程序,我目前需要加密一个字符串,将其存储在一个文件中,以后能够解密它.据我所知,我可以使用对称加密来做到这一点,但我的加密/解密密钥可以反向设计.非对称加密可以解决这个问题,但似乎我需要一台服务器来发送数据以使用私钥解密.有谁知道我可以在一个独立的应用程序中安全地加密/解密字符串的方式?
谢谢!
我正在寻找一些IDA pro脚本来提取所有指令并将它们写入汇编文件,这可以重新组装
谁能给我一些帮助?
谢谢!
assembly ×4
android ×2
c ×2
x86-64 ×2
algorithm ×1
android-room ×1
decompiling ×1
dex ×1
disassembly ×1
elf ×1
encryption ×1
ghidra ×1
ida ×1
iphone ×1
java ×1
linux ×1
machine-code ×1
objective-c ×1
perl ×1
rust ×1
security ×1
x86 ×1