Android编程之防止反编译的实现方法

2019-12-10 19:52:25王旭

易采站长站为您分析Android编程之防止反编译的实现方法,涉及Android针对运行环境、签名及程序相关信息的获取与判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Android编程之防止反编译的实现方法。,具体如下:

1. 判断程序是否运行在模拟器上

 

 
  1. boolean isRunningInEmualtor() {  boolean qemuKernel = false; 
  2. Process process = null;  DataOutputStream os = null; 
  3. try{   process = Runtime.getRuntime().exec("getprop ro.kernel.qemu");  
  4. os = new DataOutputStream(process.getOutputStream());  BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK")); 
  5. os.writeBytes("exitn");   os.flush(); 
  6. process.waitFor();  // getprop ro.kernel.qemu == 1 在模拟器 
  7. // getprop ro.product.model == "sdk" 在模拟器  // getprop ro.build.tags == "test-keys" 在模拟器 
  8. qemuKernel = (Integer.valueOf(in.readLine()) == 1);  Log.d("com.droider.checkqemu", "检测到模拟器:" + qemuKernel); 
  9. } catch (Exception e){   qemuKernel = false; 
  10. Log.d("com.droider.checkqemu", "run failed" + e.getMessage());   } finally { 
  11. try{   if (os != null) {  
  12. os.close();   }  
  13. process.destroy();   } catch (Exception e) { 
  14. }   Log.d("com.droider.checkqemu", "run finally");  
  15. }  return qemuKernel;