㈠ App静态逆向分析思路浅析(过检测)
推荐阅读
福利来啦-优惠券活动
App静态逆向分析思路浅析(过检测)
https://blog.csdn.net/u011426115/article/details/121346288
jadx+frida
查看apk是否加壳 (apk未加壳)
搜索root检测特征、逻辑,其中Hook ( 如:Xposed、Frida等 )检测的字符串特征类似,可以通过jadx、JEB3等反编译工具快速搜索定位到检测关键点
Hook下面的方法( 使用Xposed、Frida等进行Hook )
com.google.firebase.crashlytics.internal.common.CommonUtils.isRooted
com.google.firebase.crashlytics.internal.common.CommonUtils.isEmulator
com.google.firebase.crashlytics.internal.common.CommonUtils.isDebuggerAttached
com.google.firebase.crashlytics.internal.common.CommonUtils.isAppDebuggable
CommonUtils.isRooted.overload().implementation = function(){
}
在jadx的搜索文本中,输入” native+空格 ”快速定位App中的native接口,分析是否存在Root、Hook、模拟器环境、云手机环境、App风险环境等相关检测
搜索" hook、xposed、frida、su、root、/system/ "等特征字符串快速定位
分析apk是否可以反编译、是否可以重打包、是否可以签名,是否存在签名校验等检测
推荐阅读
android安全基础
Objection动态分析App
Frida Hook的使用方法
IDA静态动态逆向分析基础
Android逆向分析常用方法
IDA动态调试逆向分析Android so
C#开源项目-二进制文件的反编译器
Radare2逆向分析dex/so/二进制等文件的使用方法
㈡ apk加固apk需要进行加固,防二次打包、破解,哪个公司apk加固比较靠谱的麻烦各位给推荐下!
爱加密应用程序保护通过市场拓展,已经和全球超过3000名的开发者达成了合作,保护的app应用程序数量达到6000余款,已经和“WiFi伴侣”“史上最坑爹的游戏”“美食杰TV版”“铜板街”“兜兜公交”等应用市场和开发者达成战略合作,为应用程序的开发者提供一站式的APP安全检测、程序应用保护、渠道监测等服务。http://www.ijiami.cn/newsInfo?id=260
同时爱加密还提出的三层加密保护:DEX加壳保护,DEX指令动态加载保护,高级混淆保护,可以保证APP的动态安全和静态安全,让人没有机会进行任何破解。又加上SO库保护,C/C++层面的代码得到了专业保护,让APK包无懈可击。爱加密可以有效避免APK的破解、注入、反编译等操作,从而消除Adroid游戏APK推广过程中被破解、盗版的安全风险,并通过服务开发者,达到服务用户的目的。
㈢ 360加固保mp出来的dex怎么修复
通常二次打包的步骤是:解包(反编译)-->插入/篡改代码-->生成新包-->重签名-->运行。
首先可以通过使用ApkTool、Jeb、baksmali/smali等反编译工具,反编译apk安装包,图1为调用baksmali文件的截图。
解包后可以看到所有文件列表,找到需要修改的smali文件,这里修改的是MainActivity.smali,如图2。
解开MainActivity.smali文件后,在里面插入一段篡改代码,修改登录界面中“Button”按钮上的文本,图3和图4是修改前后smali文件中的代码。
修改后再调用smali.jar文件,将smali重新打包成dex文件,如图5所示。
接下来再将新生成的classes.dex文件替换原安装包中的classes.dex,并进行重新签名,就生成了一款盗版应用。运行该款盗版应用时会发现登录界面的登录按钮被修改替换成了“Fake Btn”,如图6、图7所示。
通过简单的几个操作步骤,一款未经加固保护的APP就被盗版了,一个团队一年的劳动成果几分钟内就被轻易窃取。通常,盗版应用会通过插入/替换广告SDK赚取广告收入、修改支付渠道截取开发者收入、插入病毒/木马程序盗取用户信息等形式出现,操作步骤与上面介绍的类似,严重侵害了开发者和用户的利益。
要想保护手机APP,避免被盗版,就要从源头进行加固保护,让破解者无从下手。图8是使用360加固保对APP进行加固前后的对比,加固后再调用baksmali.jar进行反编译,可以看到代码文件全部被隐藏,暴露的只是加固程序的一些代码,破解者自然无法再对源程序进行篡改了。
360加固保基于360核心加密技术,对安卓应用进行加固保护,能有效避免应用被恶意破解、反编译、二次打包、内存抓取等。同时给应用提供数据加密、签名校验、防内存修改、完整性校验、盗版监测等保护功能,给予安卓应用最强保护,从源头消灭恶意盗版应用。作为移动互联网安全服务行业的领跑者,360加固保将持续关注手机应用安全的发展,不断完善加固保服务,切实保护开发者收入和权益。
㈣ jeb2调试完了apk怎么修改
apk修改的话,可以用apktools解包,然后修改,再用apktools打包,但是一般需要自己重新签名,有些apk逆向做的好的话,apktools解包会出错。apktools其实是一个懒人工具集,如果出错了,还需要自己深入手动调整
㈤ Android逆向工程师是做什么的
必须掌握的技能
1、负责安卓程序的加解密和数据传输分析、拆解、逆向等工作;
2 、逆向APK,了解运行过程;
3 、Andorid本地提权获得root权限;
4 、熟练掌握软件逆向静态分析、动态调试、代码跟踪等;
5 、熟悉Android开发,了解打包、反编译、破解流程;
6 、so破解。
目前了解的如下:
1,加解密:这就很多了,一般都是遇到后再折腾解密,而且解密代码和秘钥一般都在代码里面。
2,Andorid本地提权获得root权限,一般真机是用recovery刷机包,但是病毒提权是怎么样的
目前掌握的一种提权的是像输入命令行一样输入su并且用pm提权
还有一种是修改init.rc文件
3,ida动态调式和代码跟踪
4,打包,编译和破解的流程是什么样的?
5,so破解:一般就是破壳。各种壳(360,娜迦等等)
加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。加壳的程序经常想尽办法阻止外部程序或软件对加壳程序的反汇编分析或者动态分析,以达到它不可告人的目的。这种技术也常用来保护软件版权,防止被软件破解。
6,了解反破解的技术
目前掌握的技术有:
1,反模拟器
2,反静态代码分析器如:反jeb
应该也是有很多反ida的,也就是加壳。
任职要求
1、具有丰富的Android开发分析经验,熟悉android系统架构,熟悉android安全机制;
2、精通汇编语言、java、C/C++语言,熟悉Smali语言,对逆向工程有浓厚兴趣;
3、熟练掌握ida、gdb逆向分析工具;
4、熟练掌握软件逆向静态分析、动态调试、代码跟踪等;
5、熟悉so和Java层hook;
6、熟悉Android开发,了解打包、反编译、破解流程;
7、深入理解arm Linux和Android底层运行机制;
8、熟练掌握各种调试工具:Smali、Dedexer、Dexmp、Apktool、Dex2jar、jd-gui。
㈥ jeb 怎么让前面显示代码是第几行
2. Jeb 的基本操作
(1)重命名(n)
(2)跟踪(Enter, 双击)
(3)返回(Esc)
(4)前进(Ctrl + Enter)
(5)帮助(H)
(6)条目信息(I)
(7)交叉引用(X),源码交叉引用(Ctrl + X)
(8)注释(;or C)
(9)改变进制数(B)
(10)反编译(Tab)
㈦ 怎么加固安卓软件
加固安卓软件一般要达到以下效果:
1、防逆向:通过DEX 文件加壳以及DEX 虚拟化等技术,防止代码被反编译和逆向分析。
2、防篡改:通过校验 APK 开发者签名,防止被二次打包,植入广告或恶意代码。
3、防调试:防止应用被 IDA、JEB 等工具调试,动态分析代码逻辑。
VirboxProtector安卓加固的核心技术一般有:
DEX 文件加密隐藏
对 DEX 文件加壳保护,防止代码被窃取和反编译。
SO 区段压缩加密
对 SO 库中的代码段和数据段压缩并加密,防止被 IDA 等工具反编译。
单步断点检测
在混淆的指令中插入软断点检测暗桩,防止native层run trace和单步调试。
防动态调试
防止应用被 IDA、JEB 等工具调试,动态分析代码逻辑。
开发者签名校验
对 APK 中的开发者签名做启动时校验,防止被第三方破解和二次打包。
SO 内存完整性校验
在 SO 库加载时校验内存完整性,防止第三方对 SO 库打补丁。
SO 代码混淆
对 SO 库中指定的函数混淆,通过指令切片、控制流扁平化、立即加密等技术手段,将 native 指令转换为难以理解的复杂指令,无法被 IDA 反编译,并且无法被还原。
SO 代码虚拟化
对 SO 库中指定的函数虚拟化,可以将 x86、x64、arm32、arm64 架构的机器指令转换为随机自定义的虚拟机指令,安全强度极高,可通过工具自定义配置,调整性能与安全性。
DEX 虚拟机保护
对 DEX 中的 dalvik 字节码进行虚拟化,转换为自定义的虚拟机指令,最后由 native 层虚拟机解释执行,防止逆向分析。
㈧ jeb 可以打开smali文件吗
因为反编译失败了,所以只有smali文件夹了。1.反编译Apk得到Java源代码首先要下载两个工具:dex2jar和JD-GUI前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。具体步骤:首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录运行 dex2jar.bat classes.dex生成 classes.dex.dex2jar.jar2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件还是下载工具,这次用到的是apktool具体步骤:将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar文件到解压后的\apktool-install-windows-r04-brut1文件夹里)2.特别注意:你要反编译的文件一定要放在C盘的根目录里
㈨ 什么是android apk加固
加固的过程中需要三个对象:1、需要加密的Apk(源Apk)2、壳程序Apk(负责解密Apk工作)3、加密工具(将源Apk进行加密和壳Dex合并成新的Dex)主要步骤:我们拿到需要加密的Apk和自己的壳程序Apk,然后用加密算法对源Apk进行加密在将壳Apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件即可,得到新的Apk,那么这个新的Apk我们也叫作脱壳程序Apk.他已经不是一个完整意义上的Apk程序了,他的主要工作是:负责解密源Apk.然后加载Apk,让其正常运行起来。