首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

看我逆向小米rom层应用做碎片化适配

用百度百科原话说: ODEX是安卓上的应用程序apk中提取出来的可运行文件,即将APK中的classes.dex文件通过dex优化过程将其优化生成一个dex文件单独存放。...如果经常刷机的朋友肯定不会陌生,经常有民间rom作者说已优化odex。那么其实他就是把apk包中的dex提取出来转成odex。这个过程为什么说是优化呢?...将apk中的dex提前取出来就省去了解压的耗时。第二一个以前很老的机器往往可供系统用的存储空间不够大,常规的做法除了提前拿到odex以外,还会把apk包中dex删除掉,已节约空间。...我们拿起来直接调用了。这一切都看似正常。可就是在小米上出现这种问题。遇到这个问题,我们先静下心来分析下。 除了小米还有别的机型也有问题? 跟android版本也有关系,API高版本变更?...死活切不过去,原来是有隐藏api调用的。而sdk层并没有暴露出来,谷歌官方开发文档中也不存在这个方法。 ?

1.6K30

Android 隐私合规检查工具套装

以上所有工具的实现,都是基于隐私配置文件 privacy_api.json 来实现的,也即意味着,你只需要维护一份配置文件即可。...一、静态检查 1、基于项目依赖的字节码扫描 扫描工程下的所有依赖,提取依赖 jar 包下的所有 Class 文件,利用 ASM 工具分析 Class 文件下的所有方法的 insn 指令,找出是否有调用隐私...集成方案查看 github 的 DepCheck 插件 README[2] 说明 2、基于 apk 的 smali 扫描 网易云音乐曾经发表过一篇基于 smali 扫描的《Android 隐私合规静态检查...[3]》文章,思路就是将 apk 解压,提取出 dex 文件,然后使用 baksmali 库将 dex 转成 smali 文件,然后逐行分析 smali 的方法调用情况,扫描出来的结果示例: [ "...api 配置文件,然后调用 Pine.hook 即可。

1.3K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入探索 APKTool:Android 应用的反编译与重打包工具

    apktool 是一个非常强大的工具,用于反编译和重新打包 Android 应用程序(APK 文件)。这个工具主要用于应用程序的逆向工程,调试,以及修改已经编译的 APK 文件。...反编译的第一步是解压这个文件,提取出其中的所有文件和资源,包括 classes.dex 文件(包含所有编译后的 Java 代码)、资源文件(如 XML 布局文件、图片等)和元数据(如 AndroidManifest.xml...1.3 资源解码 Android 应用的资源文件(如 XML 布局和 resources.arsc)在 APK 中通常是以编译形式存在的。...DEX文件包含了Android应用程序的所有编译后的代码。DEX格式旨在低内存和快速加载。...DEX 文件包含了 Android 应用中的所有编译后的 Java 代码,但这些代码是以特定于 Dalvik 虚拟机的字节码格式存储的,这种格式对于人类来说不易读懂。

    97610

    绕过安卓SSL验证证书的常见四种方式

    目标API Level定义在AndroidManifest.xml文件中的‘platformBuildVersionCode’属性(’manifest’元素): android...当然了,如果你想要在特定平台版本中运行的话,你也可以在APK的‘/res/xml/network_security_config.xml’文件中定义一个。...接下来,我们需要提取APK文件,注入动态库,然后编辑一些smali代码来让我们的代码库在应用程序启动时最先被调用。完成之后,重新打包APK并进行安装。整个过程的完整操作方法可以参考【这篇文章】。...接下来,我们的工作目录中应该会出现一个名叫‘test_app.objection.apk’的文件(默认情况下,工具会在原始APK文件名的后面添加一个.objection后缀)。...如果这样的话,我们就需要提取出APK文件,然后将smali代码转换成Java代码,这样我们才可以对负责处理证书验证的代码进行分析,并想办法实现流量拦截,这里我们需要使用到dex2jar工具。

    3.4K20

    apk伪造签名_如何反编译app

    Android apk是用高级语言源代码,通常是Java,对apk的逆向智能转换成汇编语言,即Smali。   这次反编译的目的是为了学习apk的软件安全,了解apk的编译过程。...解包:提取apk的资源文件 打包:对apk的资源文件重新打包 注:打包后的apk是未签名状态  官网下载地址:https://ibotpeaches.github.io/Apktool/...用apktool对apk进行解包,解包后的文件夹更名为test,文件夹导入Eclipse 2. test.apk用WinRAR打开,提取classes.dex文件到dex2jar文件夹...本案例提取后的目录结构:(目录结构不完全相同,看apk的结构) ——— test |———— lib |———— original |———— res |———— smali |———— unknown...res:  存放apk的所有静态资源,如图片、xml等。 smali:  存放apk反编译后的汇编语言文件。修改apk的内容可直接在这里边修改。

    1.5K10

    破解第一个Android程序

    反编译文件包含一系列目录和文件,smali目录中存放了程序的所有反汇编代码,res目录中存放的则是程序中所有的资源文件,这些目录的子目录和文件的组织结构与开发时源码目录的组织结构是一致的。...使用ApkTool反编译APK文件后,所有的索引值都保存在与string.xml文件处于同一目录的public.xml文件中。...可以猜测:ApkTool内部使用baksmali将APK中的DEX文件反编译为smali文件,但ApkTool在反编译APK时没有处理instant-run.zip中的DEX文件,因此,在反汇编输出信息中没有程序真正的反汇编代码...资源文件,发现只有MainActivity$1.smali文件一处进行了调用,代码如下(smali代码中的注释以“#”开头)。...signapk.jar、testkey.x509.pem、testkey.pk8文件可以从Android系统源码中提取。

    3.4K20

    安卓增加或修改现有app apk的功能(apk功能扩展)

    摘要: 安卓增加或修改apk android apk app的功能(apk功能扩展)标签: smali,反编译apk,apk修改,apk合并,android app 功能扩展 现有apk不能满足需要...因为apk被反编译后,生成的是smali文件,需要懂一些smali基本语法。3、从理论上说,apk被反编译为smali代码后,完全可以通过修改增加smali代码,从而增加或修改apk的功能。...1、副apk的窗体一律使用继承自Activity的窗体;2、在副apk里面,写一个全局静态调用接口,里面包含要启动的程序及窗口;参考代码: /** * 调用接口 调用接口:主apk将从这个全局静态过程启动副...4、合并资源文件;将副apk的窗体使用到的资源文件复制到主apk的资源目录里面;res\layout\目录下的布局文件;res\drawable\使用到的图片;5、合并smali目录;在主msali目录中...副apk窗体将影响主apk的运行。从而达到增加或修改已有apk的功能。8、回编译修改后的主smali代码;9、签名回编译后的apk文件;10、运行测试合并后的apk,如果报错,根据错误信息修改。图片

    91120

    如何用kwetza给安卓应用加后门

    *本文仅供安全学习、测试或信息安全教学用途,禁止非法使用 简介 这篇文章将会描述一种在Android可执行文件中种后门的方法。...如上图所示,beard.apk包含了多个文档,这些文档能让你的meterpreter玩的更精彩。然而我想把所有的东西都放到一个文件中,这样会更有意义一点。...现在就要利用Smali了,目前我们的payload是由两个Smali文件进行描述的,AssistActivity.smali以及我们使用Apktool反编译beard.apk时生成的AssistActivity...我们需要确认两个Smali文件都应用了更改。 Step 6: 注入 至此目标目录中已经有我们的两个Smali文件,现在我们需要配置目标Activity(Netflix)来调用我们的代码。...现在我们就有一份全新的Netflix Apk了,他将帮助我们从Android设备上获得一个meterpreter shell。让我们来看看杀软对它的态度: ?

    1.8K90

    Dalvik虚拟机原理及Xposed hook原理

    这里做一个总结,顺便说一些这些文章里面没有写的内容: java源码经过编译后,得到很多个class文件, 考虑到手机的内存较小,google改进了字节码的组织形式,将一个app中的所有class文件合到了一起构成...答案在AOSP中(开源就是好),原来虚拟机对于每一个字节码,都写了一段代码来解释执行(你可以等价理解为API调用一样,调用某个API,后面一堆逻辑来实现这个API),只是不同cpu结构,实现方式不一样,...虚拟机在调用directMethod时,在构建好方法栈以后,pc指针指向了insns,于是可以从内存中取得字节码,然后解释执行。...爱加密的方法则是,将方法体里面的字节码从dex中抠出来,加密到了自己的so中,在app运行时,从so中解密出方法体,然后修改mmap对应的内存,还原内存结构。...于是zygote中加载的代码,在所有fork出来的子进程都含有(app进程也是fork出来的)。 所以xposed是一个可以hook android系统中任意一个java方法的 hook框架。

    1.7K10

    扩大Android攻击面:React Native Android应用程序分析

    从React Native APK获取JavaSript 在这个例子中,我们将从下面这个React Native应用程序中提取出JavaScript代码: com.react_native_examples...:【点我获取】 下载了上面这个APK文件之后,使用下列命令将其提取至一个新的文件夹中: unzip React\ Native\ Examples_v1.0_apkpure.com.apk -d ReactNative...在这个文件夹中,找到一个名为“index.android.bundle”的文件,这个文件将包含所有的React JavaScript代码。...为了从index.android.bundle中提取Firebase API密钥,我们需要提取出下列字符串: FIREBASE_API_KEY FIREBASE_AUTH_DOMAIN FIREBASE_DB_URL...一般来说,通过分析应用程序APK文件中的JavaScript,我们可以提取出目标应用中的敏感凭证数据以及API节点。

    9.9K30

    Android逆向之--------常用软件安装

    Android逆向系列文章目录 第一章 Android逆向学习入门之软件安装 文章目录 Android逆向系列文章目录 前言 一、ApkTool 使用apktool进行反编译apk 二、smali/baksmali...Android逆向分析领域最久远的工具之一,提供了Android APK的反编译和回编译的功能,让APK可以重打包 按照提示完成安装 使用apktool进行反编译apk apktool d.../app.apk -o outdir 即在outdir文件夹里面生成了反编译后的apk 二、smali/baksmali DEX文件的反编译和回编译工具,提供了smali语法格式,使Dex文件的修改可以基于...在一些 2,在一些分析场景中,可以使用010 Editor内置的脚本语言编写二进制的文件格式模板 3.是分析二进制程序的必备工具 五,使用起来最简单的工具(图形化界面) 它能够对反编译后的Smali文件进行修改...,反编译失败等现象请查看第一个红框中的文件夹里面列举了常见的问题 点击打开输入想要反编译的apk地址或者直接拖入apk 2.

    77030

    Android逆向分析从入门到深入

    dex -> apk 反编译和正向编译稍有不同, 反编译可以分成两类: java smali apk 这种方法是将dex文件转为smali, smali是Dalvik虚拟机的汇编语言..., 无论如何, 最终都是要调用系统API加载dex, 在这里加断点, 然后dump出内存中的dex文件[现在一些加固工具都是自己写加载dex的函数, 这样简单在上述方法上加断点是无法命中的]) -...而在SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使SIMD特别适合于多媒体应用等数据密集型运算。...这个dex有脱壳逻辑, 程序运行时, 首先运行这个脱壳dex, 脱壳dex从dex尾部获取到要加密的apk的大小, 然后从自己的dex中拷贝出这个myapk.apk, 最后调用Android系统API运行...这样就算用ApkTool等逆向工具, 也无法直接获得我们加固的myapk.apk. 为了增大逆向难度, 我们可以把脱壳逻辑用c实现放到so文件中, 同时把加密的myapk.apk分段放到so文件中.

    4.3K96

    Android逆向分析从入门到深入

    -> apk 反编译和正向编译稍有不同, 反编译可以分成两类: java smali apk 这种方法是将dex文件转为smali, smali是Dalvik虚拟机的汇编语言..., 无论如何, 最终都是要调用系统API加载dex, 在这里加断点, 然后dump出内存中的dex文件[现在一些加固工具都是自己写加载dex的函数, 这样简单在上述方法上加断点是无法命中的]) -...而在SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使SIMD特别适合于多媒体应用等数据密集型运算。...这个dex有脱壳逻辑, 程序运行时, 首先运行这个脱壳dex, 脱壳dex从dex尾部获取到要加密的apk的大小, 然后从自己的dex中拷贝出这个myapk.apk, 最后调用Android系统API运行...这样就算用ApkTool等逆向工具, 也无法直接获得我们加固的myapk.apk. 为了增大逆向难度, 我们可以把脱壳逻辑用c实现放到so文件中, 同时把加密的myapk.apk分段放到so文件中.

    1.2K22

    记一次逆向 Android 的经历

    3.1 反编译得到 smali (1)下载最新版本的 Apktook (2)获取A应用安装包,命名为t.apk (3)使用java -jar apktool.jar d t.apk 反编译应用,得到文件夹...其中smali开头的文件夹里面,是反编译之后的smali代码(类似汇编代码)。 可是 smali 代码不便于阅读,能不能直接看到 Java 源码呢?...3.2 反编译得到 Java 源码 (1)使用电脑上的压缩软件直接打开t.apk, (2)解压出压缩包.dex后缀的所有文件, (3)使用 dex2jar 工具将 dex 文件转化为 jar 文件 (4...)使用 jd-gui 工具打开jar文件,即可查看源码 注:使用 Apktool 反编译之后的文件夹t,可使用 Apktool 回编译成apk文件,经签名之后,可再次安装到Android设备上运行。...3.4 动态调试代码,彻底搞清楚 sig 的生成规则 思路:在 smali 代码找到 3.3 中关键代码对应的部分,在关键的地方加上打印 log 的代码,然后回编译成 apk,重新运行程序进行操作,便可以在日志看到我们感兴趣的内容

    1.3K80

    Android逆向分析概述

    apk 这种方法是将dex文件转为smali, smali是Dalvik虚拟机的汇编语言, 可以用来动态调试程序. java apk 这种方法中是将...将dex文件转化为smali汇编, 然后直接阅读smali汇编语言, 或者smali再转为java(这里没有强大的工具, 可能经常无法成功转化)...., 最终都是要调用系统API加载dex, 在这里加断点, 然后dump出内存中的dex文件[现在一些加固工具都是自己写加载dex的函数, 这样简单在上述方法上加断点是无法命中的]) Xposed/VirtualXposed...这个dex有脱壳逻辑, 程序运行时, 首先运行这个脱壳dex, 脱壳dex从dex尾部获取到要加密的apk的大小, 然后从自己的dex中拷贝出这个myapk.apk, 最后调用Android系统API运行...这样就算用ApkTool等逆向工具, 也无法直接获得我们加固的myapk.apk. 为了增大逆向难度, 我们可以把脱壳逻辑用c实现放到so文件中, 同时把加密的myapk.apk分段放到so文件中.

    1.4K31

    Android 逆向--BUFF | Smali 介绍与学习

    DEX 原生Android应用是由Java/Kotlin语言写的,那么从Java源码到成为一个APK文件,其中经过了非常复杂繁多的步骤,我们这里只关注代码的编译执行过程。...“ 到目前为止,我们看不到DEX的影子,那就更别提什么Smali了,显然DEX是Android中独有的文件格式,请看下文: Android中的Java代码从编写到执行 ✔ 编写Java代码。...✔ 所有的Java代码通过Java编译器(javac)编译成java字节码,即.class文件。 ✔ Java字节码通过Android的dx工具转换为Dalvik字节码,即.dex文件。...“ 我们终于知道DEX的出处了,我们可以瞧一瞧Apk中的DEX文件。 Apkの内部结构 Apk实际上是一种特殊的压缩包,我们可以直接通过360压缩或者别的压缩工具打开。...这就涉及到DEX的分包问题了,我之后会提到。 用文本编辑器打开smali文件夹中的众多Smali文件 ?

    1.7K10

    从ceph对象中提取RBD中的指定文件

    前言 之前有个想法,是不是有办法找到rbd中的文件与对象的关系,想了很久但是一直觉得文件系统比较复杂,在fs 层的东西对ceph来说是透明的,并且对象大小是4M,而文件很小,可能在fs层进行了合并,应该很难找到对应关系...,最近看到小胖有提出这个问题,那么就再次尝试了,现在就是把这个实现方法记录下来 这个提取的作用个人觉得最大的好处就是一个rbd设备,在文件系统层被破坏以后,还能够从rbd提取出文件,我们知道很多情况下设备的文件系统一旦破坏...,无法挂载,数据也就无法读取,而如果能从rbd中提取出文件,这就是保证了即使文件系统损坏的情况下,数据至少不丢失 本篇是基于xfs文件系统情况下的提取,其他文件系统有时间再看看,因为目前使用的比较多的就是...,大小为10G分成两个5G的分区,现在我们在两个分区里面分别写入两个测试文件,然后经过计算后,从后台的对象中把文件读出 mount /dev/rbd0p1 /mnt1 mount /dev/rbd0p2...设备进行dd读取也可以把这个文件读取出来,这个顺带讲下,本文主要是从对象提取: dd if=/dev/rbd0 of=a bs=512 count=8 skip=10177 bs取512是因为sector

    4.9K20
    领券