如果遇到apk中的lib文件夹中是这样的

基本没有dex文件可以反编译,这中的dex文件一般都是加密混淆压缩后放在so中啦。

但是软件要想运行就需要解出dex字节码然后加载到手机内存中,这样就可以在软件运行过程中把dex提取出来再使用相应的软件反编译成smail啦,接着就是转成java。

好啦,第一次发帖子,以下就是干货。

首先下载附件中的

gdb.7z.001.rar (2.00 MB)

gdb.7z.002.rar (1.21 MB)

把这两个文件的后缀名去掉使用7zip解压出来二进制文件gdb (大约13MB)

打开安卓虚拟机,把需要逆向的加壳软件安装的虚拟机中,然后启动APK。

1、使用ADB把gdb push到手机中

adb push /home/down/gdb /data/local/tmp/gdb

2、找到需要逆向的apk对应linux的进程pid

adb 中执行

adb shell

top

会显示手机中全部的进程,然后找到进程名字为apk包名的pid (在此假设pid为 482)

3、赋予gdb权限(依次执行以下命令)

adb shell

su

cd /data/local/tmp/

chmod 777 gdb

4、dump进程482的内存

./gdb --pid 482

此时进入了gdb模式

这个时候输入 gcore 会dump到当前目录 /data/local/tmp/core.482

把这个core.482的文件放到安装了.net 3.5 的电脑上(win7默认是可以得)

比如放到以下位置

D:\core.482

5、下载附件中的 DumpAllDEX.7z 解压出文件 DumpAllDEX.exe

运行

就会把所有的dex文件提取到D:\core.482.dex 文件夹中。

6、逐个反编译提取出来的dex文件,直到找到你要逆向的软件dex。这个时候就可以开开心心的转成java看源码啦。

最近做了个微信公众号,要是有觉得这个文章有用的朋友,谢谢关注下呀

DumpAllDEX.exe 为C#写的,源码如下:

static void Main(string[] args)

{

REBEGIN:

Console.WriteLine("请输入gcore出来的文件路径:");

string filepath = Console.ReadLine();

if (!File.Exists(filepath))

{

Console.WriteLine("指定的文件不存在,请输入正确的文件路径\r\n");

goto REBEGIN;

}

new DirectoryInfo(filepath + ".dex").Create();

FileStream fs = new FileStream(filepath, FileMode.Open);

long flen = fs.Length;

BinaryReader br = new BinaryReader(fs);

byte[] bs = br.ReadBytes((int)flen);

fs.Close();

int bsl = bs.Length;

for (int i = 0; i

{

if (bs[i] == 'd' && bs[i + 1] == 'e' && bs[i + 2] == 'x' && bs[i + 3] == 10 && bs[i + 4] == '0' && bs[i + 5] == '3' && bs[i + 6] == '5')

{

string a1 = bs[i + 35].ToString("x2");

string a2 = bs[i + 34].ToString("x2");

string a3 = bs[i + 33].ToString("x2");

string a4 = bs[i + 32].ToString("x2");

string hexlen = a1 + a2 + a3 + a4;

int dexlength = Int32.Parse(hexlen, System.Globalization.NumberStyles.HexNumber);

byte[] dex_tmp = new byte[dexlength];

int h = 0;

for (int j = i; j

{

dex_tmp[h++] = bs[j];

}

File.WriteAllBytes(filepath + ".dex\\" + i + ".dex", dex_tmp);

}

}

Console.WriteLine("所有的DEX文件已经输出到文件夹" + filepath + ".dex\\");

while (true)

{

Console.Read();

}

}

上传的附件:

1.png

(6.23kb,145次下载)

gdb.7z.001.rar

(2.00MB,1776次下载)

gdb.7z.002.rar

(1.21MB,2149次下载)

DumpAllDEX.7z

(2.36kb,1446次下载)

2.png

(3.69kb,112次下载)

android 360加固 反编译,[原创]逆向360加固等dex被隐藏的APK相关推荐

  1. 【app反编译和逆向打包】

    一:反编译 1:反编译代码 JADX(推荐) 具体的安装和使用,推荐看这篇文章吧点这里 dex2jar 和 jd-gui 关键命令: d2j-dex2jar classes.dex ps:将获取到的c ...

  2. Android程序的反编译对抗研究

    转自: http://www.freebuf.com/tools/76884.html 一.前言 对抗反编译是指让apk文件或者dex文件无法正常通过反编译工具,而且有可能导致工具异常或者崩溃,如ap ...

  3. 小龟视频APP-插件打包-v1.6.x反编译教程及未加固apk包ios最新版文件分享

    1.先爆破安卓签名,工具:MT管理器,百度自行下载 2.搜索getcertsign(一般在285之间都能看到)如下图: 3.添加return-void 然后保存返回回到首页进行APK签名,就ok了 这 ...

  4. Android混淆、反编译基础教程

    Android混淆.反编译基础教程 Android APK混淆 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. 根据 SDK 的版本不同 ...

  5. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  6. android studio防止反编译,防反编译利器-Android studio混淆代码压缩apk包体积

    前言 打包混淆对初学者小冷来说是很抗拒的,刚开始我只是知道在build.gradle文件 minifyEnabled下设置为true,可是proguard-rules.pro文件里面什么都没有,就这样 ...

  7. APP加固反编译技术对比

    代次 第一代 第二代 第三代 第四代 第五代 技术路线 dex透明加解密技术 函数级代理技术 so文件加壳技术 代码混淆和虚拟化技术 安全容器技术 设计思路 对每个或每组可执行文件加壳加密,增加复杂度 ...

  8. Android Killer--安卓反编译工具

    Android Killer 一个朋友写的工具,挺方便好用,发到此处,留给新手同学们学习使用.详细信息看下文介绍. Android Killer 是一款可视化的安卓应用逆向工具,集Apk反编译.Apk ...

  9. vue打包代码反编译_Android逆向反编译代码注入APK过程思路分析

    一.名称解释 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密.反汇编.系统分析等多种计算机技术,对软件的结构.流程.算法. 代码等进行逆向拆解和分析,推导出软件产品的源代码. ...

最新文章

  1. Ubuntu安装 到移动硬盘--操作系统随身携带
  2. java基本数据类型_Java 中有几种基本数据类型是什么?
  3. Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGB
  4. 工作65:导航栏使用
  5. vue横向树结构_vue树形结构的实现
  6. 完美程序员的10种品质
  7. npm收录了哪些包_使用VS Code轻松找到npm软件包中的漏洞(Vuln Cost)
  8. 写给笨人的法线贴图原理 【转】
  9. @JVM垃圾收集器种类
  10. Ubuntu系统设置静态IP
  11. Jemalloc源码解析_源码剖析
  12. python xlwt 表格样式
  13. 快速排序实验报告 c语言,快速排序算法的C语言实现
  14. Powershell————2、Powershell交互式
  15. 有道云笔记同步失败原因之一
  16. 5、依赖注入(DI)dependency injection
  17. 超详细|一篇搞定操作系统——设备管理
  18. 人工智能在物流领域中的应用
  19. 名帖203 米芾 行书《行书帖选》
  20. 如何防止恶意攻击短信验证码接口

热门文章

  1. Google浏览器搜索技巧(提高效率)
  2. 用友软件操作流程(新建年度帐、年度结转步骤)
  3. BSN长话短说之一:万字庖解区块链跨链技术
  4. PHP之 “微信走步数据” ,获取并解密处理的实践操作(关键代码)
  5. ABB阀门定位器调试步骤以及技术特点全面介绍
  6. 如何看懂黄金交易k线图?
  7. sketch格式的交互设计师UI设计师作品集模板
  8. pycharm 自动生成文件注释和函数模板
  9. 基于python的证件照_python证件照换底色原来这么简单,20行代码解决!
  10. 【Linux】常见指令(一)