首页 » PHP教程 » 360dexphp技巧_安卓逆向360加固脱壳分析手把手教你操作

360dexphp技巧_安卓逆向360加固脱壳分析手把手教你操作

访客 2024-11-01 0

扫一扫用手机浏览

文章目录 [+]

那我们就先看一下这个加固是若何脱壳的。

首先直接看这个so库:

360dexphp技巧_安卓逆向360加固脱壳分析手把手教你操作

拖入IDA静态看一下:创造看不到什么信息,缘故原由很大略,由于被处理了;

360dexphp技巧_安卓逆向360加固脱壳分析手把手教你操作
(图片来自网络侵删)

怎么办呢?通过010进行对so大略修正:

拖入IDA,利用ELF.b进行识别:

识别效果:

头里面描述了有枢纽关头的信息:

先修正节的偏移:

这个三个:

保存之后,然后连续拖入IDA:创造没报非常,可以识别一些东西:

为什么这样就能成功呢?由于我们把节有关的信息去除之后,他开始解析段的信息;

看导出函数列表,创造函数名称也是被处理过的,但是JNI_Load还是可以看到的:

双击过来,还是可以看到一些信息的;

ctrl+S ,来到这里,看一下:

点击sub_1AD8:创造也没什么信息~

直接F5,看JNI_Load的信息:

修正一下参数:

点进去看一下下面的那个函数也看不出来什么;

回到汇编窗口:

双击进去后:

连续跟:

过来后:

创造是一个switch循环;

F5一下:

分支挺长的,看不出来啥;直接动态剖析;

这个函数的剖析,同样的在open函数下断:

F9之后,加载进来这个so:

linker处下断:

libdvm下断:

F9后,linker处断下:

F7进去,创造没什么;

连续F9linker断下,然后F7:

F7往下走,创造有个函数:

进入后来到libdvm.so,与getenv有关;

回来后,连续F7,这里有个函数:

F7进去:往下跟:

过来后:

F7往下,这里有个函数,

进去:F7往下,创造这里是一个循环:一贯比较R2和R3的值;

F4后F7往下走,来到了跳转表这里:

连续F7往下,来到了case26分支:

一起F7往下,这里有一个BLX函数:

F7往下,同步R1寄存器;创造有关键字眼;

再往下是一个循环,同时同步R3寄存器,是在解密字符串:

再往下,又一个亦或循环:通过R2寄存器

连续F7,

连续F8往下:来到这里:

连续F7往下;这里是一个循环,一贯在读取,然后一贯比较R0的值;

如果这里BEQ相等的话,就会直接跳到这里:

上面的是从linker到JNI_Load,解释在linker里面没有进行操作,以是,可以换一种,直接在libdvm哪里找到JNI_onload也行;

重新利用一种方法,利用open函数,往上回溯;

跳到open函数, 然后F2下断,然后F9运行,然后Ctrl+F7回溯:

同步R0窗口,涌现这个,解释在遍历tracepid,

连续回溯:

连续回溯:

为什么之前又一次运行道这里程序就崩溃了?

缘故原由是程序此时R1寄存器的值:

这个值什么意思?

我们先把4A24转化成10进制:‭18980‬

实行一个adb命令:这个便是当前as的进程;解释他当前已经检测到我们在调试该程序;

以是我们须要把这个反调试干掉:

也便是说,case26便是反调试的分支;

改了之后连续往上回溯:

连续回溯,此时来到这个位置;

连续 往上回溯:

此时R0和0进行比较,此时R0的值依然是as的进程号;

如果不相等,就跳转到这里

点进去,创造是kill:

会来,往上p一下,是一个函数,

进去:p一下:

明显和这个便是反调试的逻辑,这个分支代码比较多;

我们怎么修正呢,只须要让这个函数返回固定的值即可;

修正代码之前,先把这里置零;

同步一下反汇编窗口,点击前面的这里会显示下面对应的十六进制:

这个是arm指令,

执修正指令:第一条:

选取后8位,F2进行修正:

连续修正第二条:

修正后效果:

过掉反调试后,在mmap处下断:mmap尾部处也下一个断点;

好,F9运行程序:使其在mmap处函数段下来;

这里mmap如何查看呢?至二级F9运行到mmap函数尾部,然后F7进去下一步,便是不同的函数调用的地方、碰着libdvm.so的不用管,h直接F9连续在mmap处蹲下,只不雅观察jiagu.so;

把稳在mmap处的操作:不能直接F9从头部实行尾部断下,要单步跟一下,即将进去的so也要单步跟一半,然后在F9;

连续实行上面操作首先会在这里涌现apk信息:

连续操作,涌现了这个:

连续:下面R0窗口涌现了dey036;

连续操作,这里涌现了与dex有关的信息:

看他地址,我们来到他的区间:

过来后,这几便是他解密后的dex

这里是这个dex文件的大小:

知道起始地址和大小后,利用脚本:

dump可能须要韶光;

也便是说,涌现干系dex文件的时候,如果没有涌现太多信息,我们可以ctrl+s查看模块信息,一样平常他会把dex干系信息放到其他区域;

一样平常会把解密后的dex放到内存里面,比如这个是放在debug里面:

好,找到dump出来的文件;

拖入jdax,这便是一些干系的代码;

点看看一下干系的逻辑,创造都有,解释脱壳挺成功的;

标签:

相关文章

R语言宽变长数据的处理步骤与应用

在数据分析过程中,宽变长数据(Wide and Long Format)是一种常见的数据处理形式。宽变长数据指的是数据在水平方向上...

PHP教程 2024-12-27 阅读0 评论0

R语言在数据导向图制作中的应用与优势

随着大数据时代的到来,数据导向图已成为数据分析与展示的重要手段。R语言作为一种开源统计软件,以其强大的数据处理能力和丰富的图形库,...

PHP教程 2024-12-27 阅读0 评论0

R语言在数据科学中的应用与价值

随着信息时代的到来,数据已经成为当今社会的重要资源。数据科学作为一门跨学科的领域,已经成为当今社会发展的重要驱动力。而R语言作为一...

PHP教程 2024-12-27 阅读0 评论0