
>>>>
1、反调试
它是带反调试的,使用x64dbg启动,会直接带调试器一起退出,添加了两项后,可以继续:
SharpOD : anti_anti_debug
x64dbg : 获取调试权限
>>>>
2、静态分析
在启动的时候,会出现异常:



先把这部分bypass后再看看功能,发现启动还是有广告。
sub_4C7C50(_DWORD *this)+--->show_root_window_sub_4D1930(__m128i *this) ## 初始化函数,不能去掉 +--->sub_448D30() +---> sub_449010()
查看网络数据信息:


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监控分析:




但是Patch不太容易,dnutility.dll是一个模块,可以去看看这个HTTP函数处理:


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

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

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进行分析&打包:


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




看雪ID:nevinhappy
https://bbs.pediy.com/user-587311.htm
*这里由看雪论坛 nevinhappy 原创,转载请注明来自看雪社区。推荐文章++++

* 手把手教你入门V8突破利用
* Android微信逆向-实现发朋友圈动态
* 病毒样本半感染型分析的方法
* 对宝马车载apps协议的逆向分析研究
* x86_64架构下的函数调用及栈帧原理
好书推荐

