精华内容
下载资源
问答
  • dex文件详解

    2017-07-17 22:35:07
    3、在手机上手动运行dex文件3、使用dx命令来生成dex文件首先得要先配置dx环境变量,这个环境变量怎么配呢?找到的sdk的安装目录,然后进入build-tools目录,这里是你电脑上的所有sdk的安装目录,随便选择一个进去,...

    1、基本概念

    能被DVM虚拟机识别,加载并执行的文件格式

    2、生成dex文件

    1、通过IDE自动帮我们build 生成
    2、手动通过dx命令去生成dex文件
    3、在手机上手动运行dex文件

    3、使用dx命令来生成dex文件

    首先得要先配置dx环境变量,这个环境变量怎么配呢?找到的sdk的安装目录,然后进入build-tools目录,这里是你电脑上的所有sdk的安装目录,随便选择一个进去,就可以知道dx.bat,然后将他配置到环境变量中去,就可以使用dx命令了。
    先生成java字节码文件
    ![这里写图片描述](https://img-blog.csdn.net/20170717222550583?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    然后生成dex文件
    ![这里写图片描述](https://img-blog.csdn.net/20170717222812708?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 
    使用adb命令,将文件放到手机上去
    ![这里写图片描述](https://img-blog.csdn.net/20170717222941672?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    执行dex文件,首先得通过adb命令来登陆到手机中,进入手机的控制台,最后通过dalvikvm来执行dex文件
    ![这里写图片描述](https://img-blog.csdn.net/20170717223459876?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    

    4、dex文件的作用

    记录整个工程中所有类文件的信息,而class文件是一个的类的所有信息
    

    5、dex文件的结构

    1、一种8位字节的二进制流文件
    2、各个数据按顺序紧密的排列,无间隙
    3、整个应用中所有的java源文件都放在一个dex中(不考虑android multidex)
    
    ![这里写图片描述](https://img-blog.csdn.net/20170717224700268?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    

    6、dex文件和class文件的异同

    1、本质上他们都是一样的,dex是通过class文件演变而来
    2、class文件存在许多冗余的信息,dex去冗余,并整合
    
    展开全文
  • dex文件加密

    2021-02-01 16:36:32
    模拟器运行apk,可以用模拟器监控到apk的各种行为,所以在实际的加固apk运行中,一旦发现模拟器在运行该APK,就停止核心代码的运行。 代码虚拟化 代码虚拟化在桌面平台应用保护中已经是非常的常见了,主要的思路...

    反编译

    什么是反编译?(what )
        定义:利用编译程序从源语言编写的源程序产生目标程序的过程。

    怎么进行反编译?

    先了解apk的文件构造

    加固方案的手段

    反模拟器

        模拟器运行apk,可以用模拟器监控到apk的各种行为,所以在实际的加固apk运行中,一旦发现模拟器在运行该APK,就停止核心代码的运行。

    代码虚拟化

        代码虚拟化在桌面平台应用保护中已经是非常的常见了,主要的思路是自建一个虚拟执行引擎,然后把原生的可执行代码转换成自定义的指令进行虚拟执行。

    加密

    样本的部分可执行代码是以压缩或者加密的形式存在的,比如,被保护过的代码被切割成多个小段,前面的一段代码先把后面的代码片段在内存中解密,然后再去执行解密之后的代码,如此一块块的迭代执行。

    加固方案总体思想

    加固的方案

    加固总体框架

    基本原理

    Dex文件是什么?

    加固的目的是保护dex,直接而言就是对dex文件进行操作,对dex文件动刀子,必须知道dex文件是什么,能否直接动刀子。什么是源dex?什么是壳dex?

    Apk打包流程

    加壳是在原来apk的基础上加一层保护壳,dex文件修改了就需要重新打包,否则apk安装不了。这就需要我们详细学习apk如何打包的,

    Dex文件加载流程

    加壳后的文件是不能直接用的,dex文件是加密的,所以我们需要对他进行解密,解密后的dex文件如何加载?

    Dex文件

    加密过程

    加固总体框架

    APK文件如何签名

    APK文件如何运行(脱壳)

    双亲委托机制ClassLoader

    某个类加载器在加载类时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务或者没有父类加载器时,才自己去加载。

    1、避免重复加载,当父加载器已经加载了该类的时候,就没有必要子ClassLoader再加载一次。
    2、安全性考虑,防止核心API库被随意篡改。

    如何从dex中找class?

    如何进行NDK 层加密

    一般情况下我们没有必要使用NDK,官方也提到了使用native开发会增加开发过程的复杂性。但是对于一些计算密集型的应用,例如游戏、图像处理,使用NDK能提高运算性能。还有一些情况为了复用现有库或者跨平台库,也会选择NDK。上面提到的一些核心算法和秘钥,大家选择放到native层,潜意识中也是默认native的破解难度比java高,还有欺负大部分Android程序员不会写C/C++代码:)

    对称加密 &非对称加密

    对称加密: 加密和解密的秘钥使用的是同一个
    例如:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES非对称加密算法:

    公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法

     

    展开全文
  • 该项目解决了DEX限制,它是65536个方法,仅限于单个DEX文件怎么跑 我有那么所有你需要做的就是定义文件包查了gradle这个local.properties一个叫做可变sdk.dir是这样的: sdk.dir=Absolute Location of your ...
  • 为了绕过这个限制, 我们可以使用multidex support library,它成为我们APK的主要DEX文件的一部分,负责管理我们APK访问其他DEX文件和代码。 注意: 如果咱的项目minSdkVersion是20或更低,运行到Android 4.4(API ...
  • 运行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar然后运行JD-GUI工具,打开jar文件,看不到源代码,窗口是空白的……怎么破?? 在网上搜了一些办法,有些说换个反编译工具,或者其他的 其实解决这...

     运行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar然后运行JD-GUI工具,打开jar文件,看不到源代码,窗口是空白的……怎么破??

    在网上搜了一些办法,有些说换个反编译工具,或者其他的

    其实解决这个问题很简单,问题就是因为生成jar的时候就失败了, dex2jar.bat classes.dex 这一步没有成功,

    那是因为我的dex2jar工具版本太低,下载一个最新的来编译,就OK了
    下载地址:

    http://code.google.com/p/dex2jar/
    展开全文
  • dex2jar.rar

    2010-11-13 00:51:27
    4. 用附件的dex2jar,在Windows命令行下运行 dex2jar classes.dex 5. 生成classes.dex.dex2jar.jar,这个就是转换后的JAR文件了 6. 执行jd-gui,找到刚才生成的JAR文件,打开之。 7. 偷偷乐吧,90%以上的Java源代码...
  • 1、Target SDK即app将要运行手机的最佳版本 的SDK。2、gen目录存放自动生成R.java文件,内容是...4、bin目录存放编译后字节码目录,工程首先被编译成Class.dex文件,然后dex文件再被打包成apk文件。5、values目录里str

    理解HelloWorld.app

    一、创建 Android Application Project

    Target SDK即app将要运行手机的最佳版本 的SDK。

    二、Android app工程目录结构

    这里写图片描述

    1、gen目录存放自动生成R.java文件,内容是res里各文件的id。

    2、assets和res目录都是用于放置资源文件,两者区别是:后者会在R.java里自动生成相应的id,前者不自动生成id。

    3、bin目录存放编译后字节码目录,工程首先被编译成Class.dex文件,然后dex文件再被打包成apk文件

    4、values目录里strings.xml文件存放键值对,可放置不同的语言,供不同国家的语言使用。

    三、开发/调试小工具

    DDMS工具:

    终端输入DDMS可直接打开DDMS,不需要打开eclipse。

    这里写图片描述

    ADB工具:

    如把手机SQLite数据库文件导出到PC:
    adb shell
    su 获得root权限
    cd data/data/com.xxx/databases 进入app存储的database目录
    cat xxx.db > /mnt/sdcard/xxx.db 把数据库文件放入sdcard里
    exit
    exit
    adb pull /mnt/sdcard/xxx.db /Users/chenjinhua 把sdcard文件拷贝到PC

    Logcat工具:

    (1)、java里用语句system.out.println(“X”)打印输出信息,但是android里不用,android.util.Log 常用的方法有5个:
    Log.v(); Log.d(); Log.i(); Log.w() 和 Log.e()。
    如Log.d(tag,msg) 输出调试信息; Log.e(tag,msg) 输出错误信息。

    (2)、DDMS的logcat工具:打开 LogCat在右侧搜索框中选择 Edit Filter Configuration选项,进行过滤。
    (3)、编译一下,若logcat里显示了X说明运行方法了,若没有显示说明没有运行方法。
    (4)、crash时,logcat里有红色字error即对所有异常的追踪信息:第一行的异常引起第二行异常又引起第三行的异常……;但是有时候异常可能不在第一行, 小技巧: 凡是以android开头的包程序不是我们写的,这些是android提供的,同理com开头的包,java开头是java程序里dalvik虚拟机程序里的,所以我们只需要看有自己包名的信息。

    一个android app是怎么运行工作的

    apk安装好,程序运行起来后:
    a. Manifest.xml文件里找到首先启动Activity(如IndexActivity),系统创建IndexActivity的对象,
    b. 创建对象时子类重写父类onCreate方法,
    c. 给activity设置视图的内容为R.layout.activity_index。

    即这个Activity对象不仅会运行,还会去设置一个和ta关联的视图(activity_index)。

    展开全文
  • android反编译apk文件

    千次阅读 2012-03-16 12:07:02
     android运行的是.dex文件的二进制码,java运行的是.class文件的码,那么android是怎么将.java格式的文件转换为.dex的文件?------>android首先将.java的通过jdk转换为.class文件,然后通过dx工具将.class 转换为....
  • Java Code123456789101112dx.jar文件问题,有没有同学知道怎么解决呀,这一步没法解决运行程序出现这种提示[2017-08-0522:38:29-DexLoader]FailedtoloadG:\SDK\android-sdk_r24.4.1-windows\android-sdk-window...
  • Java Code 123456789101112dx.jar文件问题,有没有同学知道怎么解决呀,这一步没法解决运行程序出现这种提示[2017 - 08 - 05 22:38:29 - Dex Loader] Failed to load G: \SDK\android - sdk_r24.4.1...
  • 生成 一个 classes.dex文件,然后通过  <p>adb shell app_process -Djava.class.path=/data/local/tmp/classes.dex /data/local/tmp com.example.xxxx.Main 运行 有点类似开源的 scrcpy server实现...
  • 热修复原理浅析

    2018-07-16 22:33:32
    热修复的基本思想是把有问题的dex替换掉,这个dex是能在虚拟机运行的文件,我们写的代码经过复杂的编译就转换成了dex文件,那怎么才能把dex替换掉了? 虚拟机是从一个叫Element的数组中找到我们的dex,然后运行,那...
  • 反编译工具.zip

    2019-06-01 21:05:04
    操作说明:1、下载完成解压dex2jar-2.0压缩包,然后把apk文件解压,不知道怎么解压的先把apk压缩在打开把classes.dex文件拷贝到dex2jar-2.0 2.在dex2jar-2.0文件中打开命令行输入d2j-dex2jar classes.dex命令会生成...
  • 有人说加固会明显拖慢启动速度,同时造成运行卡顿,严重降低用户体验,而且加固是完全可以脱壳的,只需要pc配合进行断点调试就能抓到解密后的dex文件,加固并没有所说的那么安全。 但是为什么还有一大批开发者喜欢...
  • 从前面我们知道,在虚拟机初始化后,运行Java代码的...接着后面分析怎么样从dex文件加载类数据到内存,现在开始对查找函数FindClass进行分析,就很好理解了,因为前面介绍加载类到内存的流程已经很清楚。函数FindClass
  • 首先需要说一些知识点,我们的Java文件要想在Android环境运行,需要将.java文件通过转为class文件,然后为了能在DVM上面运行,再转为dex文件。同理反过来,我们在代码中要操作的基本都是class文件,但是class文件...
  • 安卓apk反编译、修改、重新打包、签名全过程

    万次阅读 多人点赞 2016-10-16 01:52:37
    首先明确,反编译别人apk是一件不厚道的事情。...工具简介apktool,编译和反编译apk,从apk中提取图片和布局资源dex2jar,将可运行文件classes.dex反编译为jar源码文件jd-gui,查看jar源码文件反编译apk
  • 在Android系统中,一个App的所有代码都在一个Dex文件里面。Dex是一个类似Jar的存储了多有Java编译字节码的归档文件。因为Android系统使用Dalvik虚拟机,所以需要把使用Java Compiler编译之后的class文件转换成...
  • javac是jdk中的java编译器,将java文件编译成class文件,那么我们来看一下之前的Android的java文件是怎么一步一步变成可以在dalvik虚拟机中运行dex文件的。 javac的Android编译流程 我们看到之前的整个流程...
  • Android反编译实践

    2016-01-08 16:46:20
    引言我们经常会有这样的需求,看到很棒的APP,想知道它是怎么实现的,看到它里面很好的布局,想拿到它的资源文件,然后自己也想模仿一下,因此这就用到...dex2jardex2jar的作用是将Android虚拟机上运行的.dex文件转成ja
  • 发现一个安卓万能脱壳方法

    万次阅读 2017-04-20 22:10:42
    重点:别管dex进入内存的事了,加壳的原理也就是让你搞不清楚的情况下把dex文件加载到内存中,想想ClassLoader是怎么查找类的,Activity这些类是从哪里读的呢 关键函数: Dalvik模式下基于Androi...
  • 接着后面分析怎么样从dex文件加载类数据到内存,现在开始对查找函数FindClass进行分析,就很好理解了,因为前面介绍加载类到内存的流程已经很清楚。函数FindClass代码如下: static jclass FindClass(JNIEnv* env, ...
  • 五一放假回家,放完假回来发现安卓项目生成不了apk了,每次运行就报下面的错误: 妈的,这是什么鬼,怎么节前好好地,节后就发生幽灵事件...原来Android单个dex文件不能超过65536个方法。 那么如何解决呢? 第一步:在
  • 在反编译之前先明确下,反编译别人的Apk不是件很道德的事情,毕竟这是别的程序员辛辛苦苦写出来的代码,所以说代码混淆这东西很重要,就是为了...dex2jar,将可运行文件classes.dex反编译为jar源码文件 java-decompile

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

dex文件怎么运行