(二进制、NDK)C 应用程序与 Java 应用程序的反编译(Dalvik 字节码)

2024-04-22

Well,

由于我对重新设计很感兴趣,到目前为止我在 Android 重新设计上花费了大量时间。

尽管如此,我还是遇到了编译二进制 C 代码 (NDK) 的问题,并且我知道将其反编译回 C/C++ 比将 DEX 文件反编译回或多或少要困难得多。以及Java源代码。

这是什么原因呢?我的意思是字节码由 Dalvik VM 执行,而对于通常的二进制文件,它由真正的处理器直接执行。除了一些额外的模拟层之外,两者非常相似,不是吗?目前我没有看到太大的差异或这个问题的原因。

您是否可以告诉我为什么将普通二进制文件(例如 ELF 或 MS EXE)反编译回 C 源代码更加困难?

Thanks.


简而言之,C/C++ 代码中不包含任何反射信息,并且 C/C++ 具有 Java 编译器不具备的内联函数、宏和展开循环(与 C/C++ 编译器一样) 。还可以广泛地优化 C/C++,以至于您所能做的就是反编译为汇编,因为没有对应用程序自身函数的引用。 (不过可以找到对系统功能的参考。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(二进制、NDK)C 应用程序与 Java 应用程序的反编译(Dalvik 字节码) 的相关文章

随机推荐

  • 根据另一个数据库的查询结果查询一个数据库

    我在 VS 2013 中使用 SSIS 我需要从 1 个数据库获取 ID 列表 并使用该 ID 列表 我想查询另一个数据库 即SELECT from MySecondDB WHERE ID IN list of IDs from MyFir
  • 扩展 Three.js 类

    我想扩展 Three js Object3D 类 但不知道该怎么做 有一个 Stackoverflow 问题 我已经阅读 重新阅读和尝试过 但无法让它为我工作 有没有办法扩展 ThreeJS 对象 https stackoverflow c
  • Xcode 服务:选择 Git 分支

    我开始在 Mavericks 中设置新的 Xcode 服务 我创建了一个新的机器人 但没有询问我它应该构建的分支 如何为每个机器人选择分支 我不仅想建造master 但也有不同的分支 在当前版本中 当您在 Xcode 中创建机器人时 它将链
  • 如何将音乐播放器保留在页脚中,当我单击子页面的链接时,该音乐播放器不会重新加载?

    我已经尝试解决这个问题有一段时间了 并且浏览了许多论坛来寻找解决方案 这是我的设置 任何帮助将不胜感激 我目前有一个索引页 在 内容 部分的上方和下方加载 JavaScript 页眉和页脚 我在标题内还有一个导航链接列表 我的音乐播放器位于
  • 将向量::emplace_back与shared_ptr一起使用

    include
  • 无法让 mongoid 与 Rails 4 一起使用

    我是按照官方教程来的 http mongoid org en mongoid docs installation html 我在 Gemfile 中注释掉了 sqlite3 以及以下几行 gem mongoid gt 4 github mo
  • RandomNumberGenerator 与 RNGCryptoServiceProvider

    根据 MSDN 文档随机数生成器 http msdn microsoft com en us library system security cryptography randomnumbergenerator 28v VS 71 29 a
  • Android Fabric Twitter 分享监听器

    我使用 Fabric SDK 从我的应用程序发送推文 我构建了一个共享对话框并从活动中发送推文 Override protected void onCreate Bundle savedInstanceState super onCreat
  • 提取文本文件每行第一个逗号之前的文本

    我有一个如下所示的文件 Breve a writ used more frequently in the plural brevia Brevia magistralia official writs framed by the clerk
  • React Router V4 侧边栏菜单中的错误

    我正在开发一个单页 ReactJS Web 应用程序 但我知道我在定义路由时做错了什么React Router V4 我的问题如下 PrivateRoute in my routes js文件未按预期工作 也就是说 我不知道为什么 但我的侧
  • Node js 中的响应标头数据为 zip

    我已经尝试使用此代码在标头中发送响应 zip 但我这边缺少一些内容 在此我得到的响应如屏幕截图所示 这是我的代码 const zipPath test zip I have a zip with 2 files inside it pass
  • 如何在不使用某些框架的情况下在 php 中实现 MVC

    我对模型 视图 控制器模式有一些 也许是基本的 知识 我想使用它创建一个网站 但我发现如何实际实现这一点有点令人困惑 我陷入了细节之中 假设我有一个网站 每个用户都保存一些待办事项列表 你会如何处理这个问题 你会创建什么类 哪个类将输出 H
  • SQL Server 2008事务,需要回滚吗?

    我有一个存储过程BEGIN TRANSACTION and COMMIT TRANSACTION陈述 事务中是一个选择查询WITH XLOCK ROWLOCK 如果提供超出范围的值 则由于某些计算会导致算术溢出错误 交易可能会失败 此错误会
  • 非常慢:ActiveRecord::QueryCache#call

    我在 Heroku 上有一个应用程序 在 Puma 上运行 workers 2 threads count 3 pool 5 看起来有些请求被困在中间件中 这使得应用程序非常慢 非常 我看到其他人讨论过这个问题 但到目前为止还没有解决方案
  • digest_path 和 asset_digest_path 不允许摘要 URL

    我在制作资产方面经历了一段相当艰难的时期 归根结底 我试图重写 sprokets 辅助模块来尝试看看发生了什么 当我将其重写为以下内容时 module Sprockets module Rails module Helper def com
  • 使用 JavaScript 正则表达式进行全局匹配

    通常当你做类似的事情时 test match e 你会收到一个数组 e e 其中第一个元素是匹配本身 第二个元素是选择器 大括号 但是当使用全局修饰符时 如 test match e g 它会忽略匹配 但如果我根本不使用选择器则不会 我想知
  • Grafana:用于访问时间范围的[from,to]值的全局变量

    我正在使用 MySQL 数据源进行一些测试并利用时间过滤器 http docs grafana org reference templating the timefilter or timefilter variable在 SQL 查询中
  • 只读属性总是“原子的”吗?

    有时我们有一个简单的只读属性 其值可能会改变 property readonly NSFetchedResultsController FetchController property readonly NSFetchRequest Fet
  • 将子 DIV 移到父 DIV 之外

    我就直接进入正题吧 我有一个宽度为 100 的子 div 它位于具有固定宽度的包装器下 我想知道如何使子 div 突破 并具有 100 全屏页面宽度 代码是这样的 我尝试使用相对 绝对定位 但没有运气 div class wrapper S
  • (二进制、NDK)C 应用程序与 Java 应用程序的反编译(Dalvik 字节码)

    Well 由于我对重新设计很感兴趣 到目前为止我在 Android 重新设计上花费了大量时间 尽管如此 我还是遇到了编译二进制 C 代码 NDK 的问题 并且我知道将其反编译回 C C 比将 DEX 文件反编译回或多或少要困难得多 以及Ja