特别声明:本文章只是用于技术交流,不可用于非法行为。
以前,我们或许就知道项目数据库的目录是在sdcard中 data/data目录下。确实是如此,但你只能打开模拟机中的这个文件夹。在真机中,你会发现data目录下是空的,那是因为你没有权限。本章讲的是如何获得权限,并取到数据库文件
1.首先,你要给你的手机root权限,下个KingRoot就能搞定。
2.手机连上你的开发工具,stuido和eclipse都行,打开DDMS。
3.打开DOC,定位到sdk目录下的platform-tools。有人或许对这个DOC不熟悉,你也可以在如图下的位置空白处,Shift+鼠标右键,选择——在此处打开命令窗口。
4.在DOC输入命令:
adb shell su -c "chmod 777 /data"(给予data目录操作权限,虽然我也不知道777是多大的权限)
adb shell su -c "chmod 777 /data/data"(给予data/data目录操作权限)
如果(为什么我说如果,因为有可能不成功,我会讲的,不要急)这两句命令成功执行,那么此刻你能打开data/data目录,发现有个文件夹叫:com.tencent.mm。打开它,你会发现打不开,里面是空的,骚年,不要沮丧,继续给读写权限!
adb shell su -c "chmod 777 /data/data/com.tencent.mm"
如果命令执行成功,你又能打开了,但是还是只能看看,里面有好多文件夹,却打不开。举一反三,继续给权限,
adb shell su -c "chmod 777 /data/data/com.tencent.mm/databases"
adb shell su -c "chmod 777 /data/data/com.tencent.mm/MicroMsg"
你想打开哪个给哪个命令。(目标东西在MD5加密后的字符串为名的文件夹下面,下一篇会讲到,现在你就手敲吧)
好,讲一下如果执行不成功,不成功最大的可能是adb端口被占用,输入命令查找谁是占了。命令:
netstat -ano | findstr "5037"
(这也是有时候解决手机连不上eclipse的其中解决办法)。
输入命令后你会找到是谁占了你的adb,如下图:
是720,但720又是什么鬼?打开任务管理器找找,网版网管都玩过任务管理器。
看见PID为720的是360Mobilel..那货。(有人电脑默认不显示PID,选择 查看-->选择列-->勾选PID)我的被360占了,我常用360看流量,卸载腾讯的东西。既然找到了谁占了我的ADB,那结束这个任务,360比较顽强,结束不了怎么办?卸载呗,我的电脑,我的手机我做主!
5.导出数据库文件
是不是看到这儿就觉得剩下的都不是事?那你试试在DDMS, pull a file from device 把数据库文件导出来。你能不能做到我不知道,反正我是做不到,如果有人做到麻烦告诉我一声,谢谢。(我听说,那只能导出来系统文件,导不出用户区的东西,虽然你的手机被root了,但你电脑adb没有被root啊),我被虐了千百遍,只好曲线钓妹。
6.曲线钓妹
思路是,先把文件拷贝到你可操作的sdcard区域下面,然后再用adb 把它pull到电脑。具体DOC命令
6.1进入adb 命令:
adb shell
6.2 给权限 命令
su
6.3 定位到指定位置 命令
cd /data/data/com.tencent.mm/MicroMsg/xxxxxxxx(就那个MD5加密后的字符串为名的文件夹全名)
6.3 复制文件到sdcard可操作区域 命令
cp EnMicroMsg.db /sdcard/
6.4 返回到 platform-tools,并复制数据库文件,复制命令
adb pull /sdcard/EnMicroMsg.db
请参考下图
然后你就会在 platform-tools 下面找打这个数据库文件,把它剪切到任何你想让它去的地方。
这就是曲线钓妹的思路,如果你不能直接钓到妹子,那么就把她介绍给我,我一定不会再还给你的。
还有步骤二,打开数据库,请看我的下篇博文。
欢迎加QQ群:36075538 讨论