其他
ELF文件脱壳纪事脱壳纪事
一
前言
二
具体分析
libDexHelper.so的分析如下:
其一先是对libc.so中函数进行hook,被hookd的函数和在分析样本中hook回调的偏移如下:
open、open_2、openat64、openat_2、mmap64、_close、read、write、pwrite64
0x51768、0x517D4、0x51840、0x518AC、0x5191C、0x51EDC、0x52060、0x52580、0x52B24
Z11do_hook_logi
函数,但显得便没那么重要了。其二便是我们最关心的检测分析,如下:
v1 = 0LL;
do{
v2 = (unsigned __int8)v0[v1 + 1];
v3 = ++v1;
}
while ( v2 );
if ( v3 >= 6 )
return inCaseForSaveEnvFileOrKill(128LL, 0xB6A287DELL, 4013LL); 直接br x12程序崩溃
}
isExportFunctionExist(0x21, "libart.so", "_ZN3art6mirror9ArtMethod14RegisterNativeEPNS_6ThreadEPKvb")
isExportFunctionExist(0x21, "libart.so", "_ZN3art6mirror9ArtMethod16UnregisterNativeEPNS_6ThreadE")
isExportFunctionExist(0x21, "libart.so", "_ZN3art9ArtMethod14RegisterNativeEPKvb")
isExportFunctionExist(0x21, "libart.so", "_ZN3art9ArtMethod16UnregisterNativeEv")
isExportFunctionExist(0x21, "libart.so", "_ZN3art9ArtMethod14RegisterNativeEPKv")
isExportFunctionExist(0x21, "libart.so", "_ZN3art11ClassLinker14RegisterNativeEPNS_6ThreadEPNS_9ArtMethodEPKv")
isExportFunctionExist(0x21, "libart.so", "_ZN3art11ClassLinker16UnregisterNativeEPNS_6ThreadEPNS_9ArtMethodE")
isExportFunctionExist(0x21, "libart.so", "_ZN3art11ClassLinker22FixupStaticTrampolinesENS_6ObjPtrINS_6mirror5ClassEEE")
isExportFunctionExist(0x21, "libart.so", "_ZN3art11ClassLinker22FixupStaticTrampolinesEPNS_6ThreadENS_6ObjPtrINS_6mirror5ClassEEE")
isExportFunctionExist(0x21, "libart.so", "_ZN3art11ClassLinker22FixupStaticTrampolinesEPNS_6mirror5ClassE")
ro.ip.name
ro.product.manufacturer
ro.product.model
这么四个属性对应的数值与"vmos"("vmos"代表虚拟机)比较
调用 _system_property_get("vmos.browser.home", resultAddr)
vmos.camera.enable
ro.vmos.simplest.rom
persist.vmos.setting.show
persist.vmos.tool.show
这么四个属性对应的数值与0x30作比较(满足一定的条件resultAddr会被自动赋值为0x30)比较,此处是比较不相同
调用 _system_property_get("vmprop.wifissid", resultAddr)
调用 _system_property_get("persist.vmos.root.enable", resultAddr)
调用 _system_property_get("persist.vmos.root.show", resultAddr)
persist.vmos.skills.show
persist.vmos.xposed.enable
persist.vmos.xposed.show
ro.vmos.simplest.rom
vmos.camera.enable
上述调用_system_property_get获取属性值之后,如果_system_property_get的返回值是否大于0
调用 access 访问 /system/priv-app/vmos-pro-intent 是否存在
fopen 打开 //proc/version.osed.show 文件,调用fgets获取文件内容,是否存在字符串"titan"
fopen 打开 //property_contexts.show 文件,调用fgets获取文件内容,是否存在字符串"titan"
fopen 打开 //service_contexts 文件,调用fgets获取文件内容,是否存在字符串"titan"
其三则为解密源dex文件,分析如下:
看雪ID:wx_樨下
https://bbs.kanxue.com/user-home-920717.htm
# 往期推荐
球分享
球点赞
球在看
点击阅读原文查看更多