请选择 进入手机版 | 继续访问电脑版

登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 302|回复: 0

[lua教程] 【lua教程】简单检查是否有XP框架

[复制链接]

441

主题

506

帖子

1944

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1944

荣誉管理论坛元老

发表于 2021-6-30 23:19:22 来自手机 | 显示全部楼层 |阅读模式 来自:

  1. 4 A: V% C, o8 O. {' F4 t5 o
  2. local function Table_exists(tables,value)
    4 n: |  `; ]5 o0 f- ]6 H5 j3 ?6 S
  3.   for index,content in pairs(tables) do
    ! ], z$ M7 F: D
  4.     if content:find(value) then/ R6 L" P: J5 n  s' x% Y
  5.       return true) ]  ~. s7 N. z$ R, Y
  6.     end
    3 _! h- A- B. b' j4 {. p
  7.   end! R- B2 j. m$ L0 R$ _
  8. end1 k- Y: ]/ R* @7 A8 R; P7 [
  9. local function endsWith(sss,str)
    " y: ]: J6 X1 S7 Q" w( L7 o
  10.   if sss:match(".") then
    - F/ i5 v# t4 K. P8 s6 ?
  11.     if str==tostring(sss):match("%.(.+)") then
    2 D8 X8 k4 A- i9 h  }
  12.       return true! j5 u- y9 P8 L; W- z
  13.      else% }( K3 z% h0 l" C9 q
  14.       return false' Y, P3 d6 f8 C4 j5 u: D9 _% r
  15.     end
    7 J! R/ d6 Y6 t$ u
  16.   end& V! c1 `) X* [- f% d
  17. 7 A8 S" i, Q$ ]) w" l+ ^. k
  18. end! V7 C8 Q* Y0 q$ Q% U

  19. : [4 D. j4 m9 U, `0 k& _
  20. local function lastIndexOf(text,z)
    " {, R" Q0 w  @% g, _: Z
  21.   a=历遍字符串位置(text,z)* Z: v2 s) ?! `6 i5 {3 O
  22.   return a[#a]
    % Q  [  ]) x( K! k9 \/ G
  23. end
    - k6 C/ Y$ O; }9 x8 L# \/ O/ u
  24. function 取所有应用包名()
    4 C- c. a4 B: A6 I
  25.   a={}. y8 y8 k! k( D  v! p- e; r9 {1 x8 s* T
  26.   installedPackages = activity.getPackageManager().getInstalledPackages(0);
    ; h* \  P. E: l% E  E% B  @8 h/ _; l
  27.   for index,content in pairs(luajava.astable(installedPackages)) do
    , B3 e3 I7 F( m0 c
  28.     packageInfo = content.packageName;7 d% A8 f: S; i+ E4 I8 k4 o
  29.     table.insert(a,tostring(packageInfo))
    ; a" }0 u$ ]$ {/ o: A5 m
  30.   end
    ; E; |. J9 `, s- t' J, w
  31.   return a# W6 u9 A7 S% U2 G% F8 W, T  U3 `# K4 s
  32. end
      h7 N( h1 P% c: X* C
  33. function isHookByPackageName()2 K5 a, ]8 V3 z& h5 h
  34.   import "android.content.pm.PackageManager"
    / V" F  e' H8 `9 X
  35.   isHook = false;* e8 @6 R2 ~, B  T
  36.   packageManager = activity.getPackageManager();
    , k" N# f% Q, n+ s  e
  37.   applicationInfoList = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
    7 c0 X, f- X; F( n
  38.   if (nil== applicationInfoList) then
    6 U# \1 P, v- K0 ^* `. p
  39.     return isHook;# |/ ?( q9 G+ W$ S2 p" w1 Z- \4 i
  40.   end
    # K' N% X( b4 s" ^: J

  41. ' X  {" m# b* ^% h2 H
  42.   if Table_exists(取所有应用包名(),"de.robv.android.xposed.installer") then
    # F9 y2 e, h' K  j( Q  o1 O
  43.     isHook=true" u$ {: n. {6 ?- j
  44.    else) h" M6 n+ L$ c( u/ r( y& l) G  s
  45. ; S' Y9 T( b# _8 |
  46.     if Table_exists(取所有应用包名(),"com.saurik.substrate") then
    % g- o$ U  X: w- B; S" b5 y
  47.       isHook=true7 b8 }8 b+ o3 w# }2 J
  48.      else
    5 I: Z6 K. {' ]; B

  49. ' d. h& U& y" D) V
  50.     end& e0 ?& u1 I* h; M; w8 l  F
  51.   end1 q- ?2 E1 S; U8 F1 I: K
  52.   return isHook;' S( v" O% S% Z/ e) b

  53. / Q5 p" i( d" G5 }5 U
  54. end
    ( c8 r, h7 a$ E& J# C4 K3 I% k
  55. function isHookByJar()) E$ w5 m0 A# Z% w
  56.   import"android.os.Process"* p8 @9 _+ w4 G1 Q! A+ L- q9 o
  57.   isHook = false;
    ) u, f( @( K, b: [/ J/ M8 Y& }& |) \
  58.   libraries = {};. b9 E: V  K: ~, C/ H: l
  59.   mapsFilename = "/proc/" .. Process.myPid() .. "/maps";
    5 m  C% E- y8 X) h) o* i0 b9 m
  60.   reader = BufferedReader(FileReader(mapsFilename));
    / E! g0 f; W( w
  61.   while reader.readLine() ~= nil do9 j1 v0 S# T. Z( H; M
  62.     if endsWith(tostring(reader.readLine()),"jar") ||endsWith(tostring(reader.readLine()),"so")then# v- q7 f% X: R9 o  n
  63.       line=tostring(reader.readLine())- `) C' ~( W& A9 q: W* Q" B. h- b
  64.       n= lastIndexOf(line," ");9 B$ a% S# m( @
  65.       lines=string.sub(line,n+1,#line)3 f  p8 u# A/ i# e5 F
  66.       --print(lines)
    # `2 c+ k: V4 o+ Q( O: @
  67.       table.insert(libraries,tostring(lines))) C( L" t0 E( T9 ?) [0 [1 G4 i
  68.     end' _- p2 ]' ]. Q6 h
  69.   end
    ; s2 N# [: K7 S
  70. 4 R0 W$ N& ?. D0 I- d3 i: L
  71.   library=0
    + t$ }/ n7 Z  ]5 Y  L+ ?
  72.   while library~=#libraries do
    8 M0 q" Q4 f" b! k7 ?
  73.     library=library+1# c6 f+ U% P8 _
  74.     if libraries[library]:match("com.saurik.substrate") then9 w( r% e' C3 j6 t9 c' z
  75.       Log.wtf("HookDetection", "Substrate shared object found: " + library);
    % |% @# F  P3 |
  76.       isHook = true;
    $ Q7 F, n$ F  k. [6 k7 [6 k
  77.     end, P) B- W- p. R, H- \1 I$ V
  78.     if libraries[library]:match("Xposed") then8 I2 _$ u+ k3 n
  79.       Log.wtf("HookDetection", "Xposed JAR found: " + library);) n. _7 E6 `1 ^: m9 A" v; ~, G! ?. [
  80.       isHook = true;, W0 c3 r- I/ F7 J7 P
  81.     end6 _$ X0 e4 g& t/ X7 T2 `
  82.   end. e" r9 L" k3 B' i$ w+ S# {
  83.   reader.close();$ N8 x( [, p8 R9 Y1 V. y

  84. # N3 R* W# v! v6 n* |
  85.   return isHook;
    2 @& u& n; X3 D+ a$ r/ Y
  86. . @% g( d5 D: h$ A2 ]& l
  87. end
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|星空社区

GMT+8, 2022-8-11 22:16 , Processed in 0.113707 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表