安卓学习(随手记)

安卓学习(随手记)

来源于吾爱破解安卓逆向by正己

第二期

《安卓逆向这档事》二、初识APK文件结构、双开、汉化、基础修 - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

核心破解——修改前后签名不一致

image-20240401093758761

第四期

如果替换广告的时候是把关卡路径给替换掉,建议使用mt管理器而不是np管理器,用Np管理器安装包会闪退而且安装完之后就会直接闪退

《安卓逆向这档事》四、恭喜你获得广告&弹窗静默卡 - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

对于第一种直接替换路径的方法,不太推荐实操这样因为程序加载的时候一般会先进行一些资源的加载,直接跳过可能会引起问题

使用算法助手+Xposed工具将弹窗给hook掉。或者将第二次弹出广告的返回给Hook掉

开发者助手在抓一些图片的时候可能抓不到

第五期

调试apk文件添加权限的时候应该添加在xml里面的application里面

雷电模拟器自带端口转发

《安卓逆向这档事》五、1000-7=?&动态调试&Log插桩 - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

Ctr+B JEB下断点快捷键

第六期

在算法助手里面选择“log捕获,防止应用退出,防止应用闪退”

《安卓逆向这档事》六、校验的N次方-签名校验对抗、PM代{过}{滤}理、IO重定向 - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

io重定向——使之读不到改变后的地方来过掉校验

去掉apk校验

去掉root检验方法:

方法一:找到对应的源码,让源码的方法返回一个False

方法二:里面有“隐藏root“和””隐藏xposed”这一功能”(使用手机)

就没有root的弹窗

方法三:io重定向

方法四:修改Andoird源码,去除常见指纹

模拟器检测模拟器检测对抗 (notion.site)

反调试检测:

[原创]对安卓反调试和校验检测的一些实践与结论-Android安全-看雪-安全社区|安全招聘|kanxue.com

Int型赋值的时候要注意

const/4和const/16的区别

芽衣的帖子 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

第九期

《安卓逆向这档事》九、密码学基础、算法自吐、非标准加密对抗 - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

可以使用算法助手里面的算法分析来进行对实现加密的函数的类型的考察(30min)最后实现算法自吐

可以通过一些系统的加解密库hook出来

image-20240405004749854

AES密钥长度比DES长,(32DES)

image-20240405005349985

image-20240405010341598

用kotlin写的可以直接删掉

image-20240405010733909

第八期

image-20240406102808872

没有String用Object

第十期

《安卓逆向这档事》十、不是我说,有了IDA还要什么女朋友? - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

image-20240405012922711

AS创建一个native c++项目,配合NDK CMake使用

image-20240405013732287

image-20240405013821651

如果是静态注册的话,会有一个标识符

image-20240406091552523

JNIEXPORT表明它是一个导出函数

如果是静态函数的话,就可以直接搜索java

把原来的int型给改了

image-20240406091928775

在JNI中,JNIEnv* 是指针类型,指向一个接口环境实例。这个接口环境是Java本地接口(JNI)提供的一组函数集合,用于连接Java代码(运行在Java虚拟机JVM中)和用其他编程语言(如C、C++或汇编等)编写的本地(native)代码进行交互。

在JNI中编写本地方法时,Java虚拟机会将JNIEnv指针作为参数传递给这些方法,通过它,可以调用各种JNI函数来操作Java对象、调用Java方法、访问Java字段以及执行其他与Java环境交互的任务。

《安卓逆向这档事》十、不是我说,有了IDA还要什么女朋友? - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

第十二期

dlopen 用于加载库文件的关键函数

如果我要在找一个native层的函数,so文件在IDA里面进行搜索以后(java)发现并没有找到想找的那个函数,则这个函数不是静态方法的而是动态注册的,就直接搜名字

改类型(native),这样就可以识别一些函数

image-20240406215658686

让字符串完整显示的一个方法

image-20240406215945418

image-20240406220027486

image-20240406220046541

注意反调试

《安卓逆向这档事》十二、大佬帮我分析一下 - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

image-20240406224245896

image-20240406224344019

[原创]对安卓反调试和校验检测的一些实践与结论-Android安全-看雪-安全社区|安全招聘|kanxue.com

ollvm

image-20240406225003385

image-20240406225251484

字符串加密的原理很简单,编写一个pass将其中的字符串信息使用一些加密算法进行加密,然后特定的时间进行还原。一般含有字符串混淆、函数名混淆、不在init_array解密等
常见的特征:datadiv_decoded

image-20240406230406431

IDA trace

image-20240406232100682

image-20240406232219305

image-20240406232300819

image-20240406232405616

PS:如果你trace了整个方法,但是当程序跑完以后有些基本块颜色没有变成黄色(变黄即成功运行),则说明那个是虚假函数,可以不用分析


安卓学习(随手记)
http://example.com/2024/05/20/安卓学习(随手记)/
作者
John Doe
发布于
2024年5月20日
许可协议