如何看待 9 月 27 日某手机整蛊文件迅速传遍全国各大高校,从原理上来看这是一个怎样的恶搞软件?

时间:2021-02-12 03:08 作者: admin 浏览量:
0

  某反向弱鸡来强制剖析一波

  具体apk是AndroLua (https://Lua_pro)打包的

  诸位巨头看到的手机截图函数具体仅仅AndroLua 出示的api,实际程序结构必须查询main.lua

  大家立即开启main.lua……Oops.为何与我之前见到的lua不太一样

  从java一部分逐渐下手,程序流程通道大约在com.androlua.Main中,在父亲类com.androlua.LuaActivity ,根据调用了com.luajava.LuaState.LloadFile载入lua文件,而LloadFile是根据jni调用libluajava.so

  随后再次剖析libluajava.so jni插口是Java_com_luajava_LuaState__1LloadFile函数,其调用了 luaL_loadfilex函数,随后 luaL_loadfilex调用了luaL_loadbufferx,这里边恰好是我们要找的破译函数

  照搬编码 很随便地就能写出去一个破译的程序流程

  #include <stdio.h>#include <stdlib.h>#include <stdint.h>#include <string.h>uint8_t *decrypt(uint8_t *data, int size){ uint8_t *temp = (uint8_t *)malloc(size); int i; unsigned v10 = 0; temp[0] = 0x1B; if (data[0] == 0x1B && data[1] != 0x4c) { if (size) { for (i = 1; i < size; i ) { v10 = size; temp[i] = data[i] ^ (v10 ((unsigned int)(((unsigned __int64)(- * v10) >> 32) v10) >> 7) ((signed int)(((unsigned __int64)(- * v10) >> 32) v10) < 0)); } return temp; } } return NULL;}

  破译出去的应该是lua字节码 文件头指出它是lua53的字节码

  立即用luadec并不可以反汇编 必须用unluac来反汇编

  下边便是反汇编的結果

  init.lua

  local L0_0appname = "233128129231187153230156128229165189231154132TA"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 = falseL0_0 = { "INTERNET", "WRITE_EXTERNAL_STORAGE"}user_permission = L0_0

  main.lua

  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)activity.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE)m = MediaPlayer()m.reset()m.setDataSource(activity.getLuaDir() .. "/0.mp3")m.prepare()m.start()m.setLooping(true)ti = Ticker()ti.Period = 10function ti.onTick() 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)endti.start()function onKeyDown(A0_0, A1_1) if string.find(tostring(A1_1), "KEYCODE_BACK") ~= nil then activity.getSystemService(Context.AUDIO_SERVICE).setStreamVolume(AudioManager.STREAM_MUSIC, 15, AudioManager.FLAG_SHOW_UI) end return trueend

  emmm……

  坚信看了编码以后,一些谣传也可以消退吧

  而说白了的被伪造编码的“创作者” 是之前制做目力.apk的创作者 很有可能与这一创作者并不是同一创作者

  #EOF

Copyright (c) 轻松手赚网 版权所有 豫ICP备20013842号-1

豫公网安备 41018402000481号