android studio放置在函数上面看_某Android模拟器的广告植入分析

54c219778d6df5fabeb1c1251c6b7198.png 本文为看雪论坛优秀文章 看雪论坛作者ID:nevinhappy 这是一个做的还不错的模拟器,不过它的广告让人很烦,考虑先分析看看。 初步分析dnplayer.exe

>>>>

1、反调试

它是带反调试的,使用x64dbg启动,会直接带调试器一起退出,添加了两项后,可以继续:
  • SharpOD : anti_anti_debug

  • x64dbg : 获取调试权限

>>>>

2、静态分析

在启动的时候,会出现异常: 4db753df7139e01174ece1e6704968ad.png 进入代码分析 sub_449010: 5bdff32c7be21eae92b5c16fc55f2b64.png 定位到上面的代码,并且发现它在加载文件launchConfig.data,打开看看内容: 5a369d2066b97634e69a62436f4db234.png 看上去是去远端获取游戏资源的配置项(连接可以加载打开看)。
先把这部分bypass后再看看功能,发现启动还是有广告。
sub_4C7C50(_DWORD *this)+--->show_root_window_sub_4D1930(__m128i *this) ## 初始化函数,不能去掉   +--->sub_448D30()         +---> sub_449010()
查看网络数据信息: 9ef105622ca8456f560d1a9e249d4fcc.png 从调试中得到的请求地址信息: d1589284b83162aa7d631f55efbfbb34.png HTTP相关的调用操作:
utility::CHttpDownloader::download2memutility::CHttpDownloader::waitForutility::CHttpDownloader::start
因为测试show_root_window_sub_4D1930函数不能被bypass,但是它是主要的加载位置,而且广告也是在它内部加载的,所以考虑从它内部进行分析。 功能去除

>>>>

1、启动去广告patch

show_root_window_sub_4D1930{ ... if ( sub_444BB0(&dword_5F8EF0, v48) ) // Bypass点,验证去掉了启动广告。 {     v49 = *(_DWORD **)(v47 + 1372);     v50 = v49[3];     if ( v50 )     {       if ( v50 != 2 )       {         LABEL_54:         v52 = sub_518A50((_DWORD *)(v47 + 44), (int)L"loadingbk_hImage");         ...  }  ...  }

>>>>

2、启动去掉HTTP外部请求

从请求数据可以发现它进行了很多远端操作,包括统计信息发送,版本检测等等,需要把这些全干掉;从API监控分析: 0c173192936b4cf12d6acdcf4307fd02.png 关键函数:InternetCrackURL,通过设置API断点,进行定位函数调用点。 3ee622b255ac377b89e1e50f1366783e.png 定位到函数:sub_437090(utility::CHttpDownloader *this) 393b46413639db9a09eef6323fa7776a.png 对上面的函数进行Patch可以解决一部分的请求,应该是有多处请求的位置,还剩下几个请求,其中比较可疑的是下面的请求: 85df9fbc9bc25f20f9a6b8aa7fff986e.png 像是一个强制APP列表信息: c4b2319ea1c814bf9a8019c9336b607d.png 直接就有调用函数栈信息,从这里就能定位到调用点: sub_489100 -> sub_47EFB0()
但是Patch不太容易,dnutility.dll是一个模块,可以去看看这个HTTP函数处理: 49c9e5d9333cdc74fb013b9628ef1841.png 分析可以看到,如果Patch掉上面的位置 ,可以Patch所有请求的发起。 9e0f4d2c60865d9a5bc8f1fea65eb800.png Patch后,发现请求一个也没有,而且测试并不影响后面的APP网络使用(应该是走的虚拟机网络)。

>>>>

3、去掉窗口下的固定广告

c3700cc262fafe9bbdc247285cfa5b99.png 猜测这个广告应该是一个窗口叠加产生的,它并不在启动的虚拟机内,但是如果点击就会调用命令进行对应的请求和安装???但是从模拟器内部看感觉不像,应该是对Android的功能设定的。 进入Android系统分析 使用虚拟机加载虚拟磁盘:
  • system.vmdk 963.4MB NTFS

  • data.vmdk 128GB NTFS

  • sdcard.vmdk 128GB NTFS

[root@localhost ~]# mkdir /tmp/android[root@localhost ~]# cd /tmp/andorid[root@localhost andorid]# mkdir system1 system2 data1 data2 sdcard1 sdcard2[root@localhost andorid]# mount /dev/sdd1 system1[root@localhost andorid]# mount /dev/sdd2 system2[root@localhost andorid]# mount /dev/sdc1 data1[root@localhost andorid]# mount /dev/sdc2 data2[root@localhost andorid]# mount /dev/sdb1 sdcard[root@localhost andorid]# mount /dev/sdb1 sdcard1[root@localhost andorid]# mount /dev/sdb2 sdcard2
通过直接查找:[root@localhost sdcard2]# grep "三国志" -r .
./data/com.android.launcher3/shared_prefs/ldmnq_preference.xml
./data/com.android.flysilkworm/files/__track_send_data_1585810935428 4d5ad2382a51d698e4fd125018c0cddb.png 通过删除文件,重启后测试,发现并没有什么变化,而且自己备份的文件还被删除了,说明这个地方的配置应该是有程序在自动生成,并不是配置文件,而且这个目录有点像是APK的应用数据目录,那么这个目录对应的是: com.android.launcher3, 应该是定制了这个APK。 [root@localhost sdcard2]# grep configCache -r .
Binary file ./dalvik-cache/x86/system@app@Launcher3@Launcher3.apk@classes.dex matches
进行文件分析:
[root@localhost sdcard2]# tree | grep Launcher3.apk│       ├── system@app@Launcher3@Launcher3.apk@classes.art│       ├── system@app@Launcher3@Launcher3.apk@classes.dex[root@localhost sdcard2]# cd ../system2/[root@localhost system2]# tree | grep Launcher3.apk│   │   └── Launcher3.apk[root@localhost system2]#[root@localhost system2]# find . -name Launcher3.apk./app/Launcher3/Launcher3.apk
考虑修改试试,先用APKIDE进行分析&打包: 05332c65a4d840e11f5ceece8e4736d2.png 4bb69a1713fe80809744b0fface46ed9.png 上传APK,重启测试:
aosp:/system/app/Launcher3 # mount | grep /system/dev/block/sda2 on /system type ext4 (ro,relatime,data=ordered)aosp:/system/app/Launcher3 # mount -o rw,remount /systemaosp:/system/app/Launcher3 # mount | grep /system/dev/block/sda2 on /system type ext4 (rw,relatime,data=ordered)aosp:/system/app/Launcher3 # cp Launcher3.apk Launcher3.apk.bakcp Launcher3.apk Launcher3.apk.bakaosp:/system/app/Launcher3 # lsLauncher3.apk  Launcher3.apk.bak
04732688889debf2c05ec4fdbd9fd13b.png 然后就发现已经成功去掉了内置广告: 7cd3f111f75621d1988d423a0512ccd6.png 4df240a08331b4c22e0a32cdab5505d5.gif - End - 6d0e18f337ce3bc79492ba85b3f6bf30.png

看雪ID:nevinhappy

https://bbs.pediy.com/user-587311.htm 

*这里由看雪论坛 nevinhappy 原创,转载请注明来自看雪社区。

84a68a0263433447890ae0fd330f4bd6.png

推荐文章++++

1d8a3e958555d5156c12d144fc875c1e.png

*  手把手教你入门V8突破利用

*  Android微信逆向-实现发朋友圈动态

*  病毒样本半感染型分析的方法

*  对宝马车载apps协议的逆向分析研究

*  x86_64架构下的函数调用及栈帧原理

好书推荐53a2b3b1d7c01085400cc424fc8b5fe1.png

﹀ ﹀ ﹀ 115a661577ee72ccd9b88040b9a83372.png 公众号ID:ikanxue 官方微博:看雪安全 商务合作:wsc@kanxue.com 739cfdae6eb41f5fb6360a818f8572c9.gif 戳 “阅读 原文 ” 一起来充电吧!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值