❶ 如何获取安卓ios上的im记录,通过metasploit控制安卓
安卓设备已获取root权限,安装SSHDroid(通过ssh、ftp连接手机)
Apple设备越狱,安装OpenSSH插件
0×01 安卓:
很多安卓手机的用户都会遇到这么一个尴尬的问题:手机用久了就不知不觉变得慢了,最后慢到什么都迟钝了。为了解决这个问题和大多数人一样我选择了root设备。
安卓设备在root以后可以对系统文件存在最高级别的操作权限。比如,你在汪山颂安卓设备上安装了微信,那么root以后通过adb shell你能对微信App的文件配置进行读取修改等操作。
Android应用程序的数据库文件通常会保存在
/data/data/packagename/database 文件夹下,微信App文件存放路径为:/data/data/com.tencent.mm/MicroMsg
首先通过FTP把文件down到本地:
以34位编码(类似于乱码)命名的文件夹中可找到微信账号的加密数据库文件 :EnMicroMsg.db
用数据库管理器打开:提示加密或者不是数据库文件
这里可以用Windows环境下的SQLite Database Browser浏览器打开:
提示输入密码:
那么,加密数据库使用的密码是什么呢?我们又该如何获取到这个密码?通过上网查资料了解到:微信采用手机的IMEI值和微信UIN值的组合来对数据进行加密。
微信账号uin:即user information 微信用户信息识别码,获取微信UIN的方式有两种:
1.通过微信app的“system_config_prefs.xml”配置文件获取微信账号uin;
2.通过抓取WEB版微信聊天的数据包获取到uin。唯枣
1.1 App 配置文件
find / -name “system_config_prefs.xml”
/data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml
cat /data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml | grep uin
<int name="default_uin" value="146****21" />
1.2 谷歌chrome浏览器登陆WEB版微信:
登陆后新建窗口并访问chrome://net-internals/#events
发送信息 抓包 find uin值
uin:146****21
通过上述两种方法找到的uin值是相同的。
安卓拨号界面输入*#06#获得手机IMEI码:354**********85
IMEI值+uin值组合即为354**********85146****21
md5: http://www.spriteking.com/cmd5/ 左侧加密
得到32位小写md5值:取其前七位:1cbf8b8输入到sql浏览器中。
linux、Mac用户也可以在困郑终端执行:
echo -n "354**********85146****21" | md5sum | cut -c -7
成功打开微信的数据库文件:
Wechat2txt.py:gist.github.com
import os
import sys
import re
import hashlib
import csv
import time
import locale
import getopt
def get_db():
os.popen('adb root').close()
text = os.popen(
'adb shell ls /data/data/com.tencent.mm/MicroMsg/*/EnMicroMsg.db').read()
return text.splitlines()[- 1] if text else ''
def get_default_uin():
os.popen('adb root').close()
text = os.popen(
'adb shell cat /data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml').read()
default_uin = re.findall(
'name="default_uin" value=http://www.ithao123.cn/"([0-9]+)"', text)
return default_uin[0] if default_uin else 0
def get_device_ID():
text = os.popen('adb shell mpsys iphonesubinfo').read()
device_ID = re.findall('Device ID = ([0-9]+)', text)
return device_ID[0] if device_ID else 0
def get_md5():
default_uin = get_default_uin()
device_ID = get_device_ID()
if default_uin and device_ID:
return hashlib.md5(device_ID + default_uin).hexdigest()[0: 7]
return ''
def parse_msgcsv(msgcsv):
locale.setlocale(locale.LC_ALL, '')
if hasattr(msgcsv, 'title'):
msgcsv = [ooOoo0O + '\n' for ooOoo0O in msgcsv.splitlines()]
pass
OooO0 = csv.reader(msgcsv)
OooO0.next()
for ooOoo0O in OooO0:
try:
II11iiii1Ii, OO0o, Ooo, O0o0Oo, Oo00OOOOO, O0O, O00o0OO, name, iIi1ii1I1, o0, I11II1i, IIIII = ooOoo0O[
: 12]
pass
except:
continue
ooooooO0oo = 'me' if (Oo00OOOOO == '1') else name
IIiiiiiiIi1I1 = time.localtime(int(O00o0OO) / 1000)
I1IIIii = time.strftime("%Y-%m-%d %a %H:%M:%S", IIiiiiiiIi1I1)
yield [name, I1IIIii, ooooooO0oo, iIi1ii1I1, o0]
pass
pass
def get_names(chat):
names = {}
for name, I1IIIii, ooooooO0oo, iIi1ii1I1, o0 in chat:
names[name] = 1
pass
return names.keys()
def oo(chat, name=''):
text = []
name = name.lower()
for name, I1IIIii, ooooooO0oo, iIi1ii1I1, o0 in chat:
iIi1ii1I1 = iIi1ii1I1.replace('\n', '\n ')
o0 = ('\t' + o0) if o0 else ''
if not name:
text.append('%s: %s %s: %s %s' %
(name, I1IIIii, ooooooO0oo, iIi1ii1I1, o0))
pass
elif name.lower() == name:
text.append('%s %s: %s %s' %
(I1IIIii, ooooooO0oo, iIi1ii1I1, o0))
pass
pass
return '\n'.join(text) + '\n'
def IIIii1II1II(dbn, key=''):
child_stdin, child_stdout = os.popen2(['sqlcipher', dbn])
if key:
child_stdin.write('PRAGMA key=%s;\n' % ` key `)
child_stdin.write('pragma cipher_use_hmac=off;\n')
pass
child_stdin.write('.tables\n')
child_stdin.close()
return child_stdout.read().split()
def decrypt(dbn, key='', table='message'):
table = table or 'message'
child_stdin, child_stdout = os.popen2(['sqlcipher', dbn])
child_stdin.write('.header on\n')
child_stdin.write('.mode csv\n')
if key:
child_stdin.write('PRAGMA key=%s;\n' % ` key `)
child_stdin.write('pragma cipher_use_hmac=off;\n')
pass
child_stdin.write('select * from %s;\n' % ` table `)
child_stdin.close()
return child_stdout.read()
def wechat2txt(names=[]):
in_file = 'EnMicroMsg.db'
out_file = 'message.csv'
db = get_db()
md5 = get_md5()
os.popen('adb wait-for-device')
os.popen('adb pull %s %s' % (db, in_file)).close()
msgcsv = decrypt(in_file, md5)
if msgcsv.find('\n') < 0:
return 1
file(out_file, 'w').write(msgcsv)
msgs = list(parse_msgcsv(msgcsv))
if not msgs:
return 1
if not names:
names = get_names(msgs)
pass
for name in names:
filename = 'message.%s.txt' % name
text = oo(msgs, name)
if len(text) > 4:
file(filename, 'w').write(text)
pass
pass
pass
help_msg = '''Usage: wechat2txt.py [OPTIONS] [NAME]...
OPTIONS:
-h display this help and exit
'''
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], 'h')
except getopt.error, e:
print help_msg
return 1
for opt, arg in opts:
if opt == '-h':
print help_msg
return 1
pass
names = args
text = wechat2txt(names)
return not text
if __name__ == "__main__":
sys.exit(main())
0×02 苹果:
Apple设备越狱后可通过Cydia安装各种小插件,通常情况我会安装OpenSSH来使自己能通过终端连接到Apple设备中,并使用sftp传输文件:
iOS中,应用文件夹以hash值命名,要导出微信、QQ的聊天记录其难度相对安卓来说稍微复杂很多。
在实际操作中我们可以通过巧用Linux命令(find、grep、xargs)来绕过这些坑。
find /var/mobile/Containers/Data -name "MM.sqlite"
mkdir /cache
find /var/mobile/Containers/Data -name "MM.sqlite" |xargs -I {} dirname {} | xargs -I {} cp -r {}/../../ /cache
附上出处链接:http://www.07net01.com/program/2016/07/1603637.html
❷ 如何查找聊天记录
这里以微信和QQ为例:对于微信app来说,想要查询聊天记录,只需打开微信app,点击页面上方的搜索图标,输入聊天关键字可以快速搜索和好友的聊天记录。但需要注意的是,若用户将对方从聊天页面删除了,就会连对方的聊天记录也删除了,就无法查询了,对于这一点还是需要了解的。对于QQ用户来说,想要查询聊天记录,在打开QQ后,点击进入到查询聊天记录的好友聊天页面,接着点击页面右上角的图标,打开后就可以看到聊天记录选项了,点击输入密码后就可以查看了。不过需要了解的是,仅能漫游7天的聊天记录,若用户只查看聊天文件的话,可以直接点击聊天记录下方的聊天文件选项,然后就可以查看聊天记录中的各种文件了。资料拓展:QQ是腾讯QQ的简称,是腾讯公司开发的一款基于Internet的即时通信(IM)软件,其标志是一只戴着红色围巾的小企鹅。腾讯QQ支持在线聊天、视频通话、点对点断点续传文件、共享文件、网络硬盘、自定义面板、QQ邮箱等多种功能,并可与多种通讯终端相连。
(2)im如何获取历史记录扩展阅读:
(2)im如何获取历史记录扩展阅读:
延长iPhone手机电池寿命的小技巧:
1.养成充电好习惯
在苹果手机提示低电量的时候及时充电,避免电量过低引起自动关机,如果电池效率低于80%尽量将电池更换。
2.升级到最新版iOS14
苹果在推出的iOS 14中新增了一项名为“优化电池充电”的功能,该功能可以智能的学习和判断用户的使用及充电习惯,使充电过程更加平衡,从而减缓电池的老化,并在一定程度上提升iPhone的续航能力。
查看方法:“优化电池充电”功能可在设置-电池-电池健康中查看~
3.禁止后台应用程序刷新
自iOS 7开始,应用程序可以并且确实在后台运行时使用电池寿命。你可以看到应用程序在后台运行了多少时间。如果某个应用程序在不使用它时耗尽了太多电量,则可以禁用后台应用程序刷新以防止它在后台运行。如果应用程序过度耗电的话,我们也可以选择将其卸载!
4.启用低电量模式
iOS 9新添“低电量模式”(Low Power Mode)功能,可让手机更省电。启用低电量模式后,你的屏幕略微变暗,限制后台进程,使处理器略微变慢,或者在正常使用时降低设备所需的能量。
操作方法:启用此功能最简单方法是从iPhone的右上角向下滑动,然后电池图标即可。或者你可以在设置>电池>低功率模式中启用低功率模式。
5.关闭某些APP推送
要知道,一些推送通知、应用程序通知、电子邮件读取的通知等等,所有这些都会缩短电池寿命,因此要想让iPhone手机电池寿命更长,最好将其关闭。可以在“设置”,对每个应用程序进行编辑,关闭通知。
❸ 聊天记录怎么找回
继续输错密码直至机器锁定(一般输3-6次错误就锁定了),然后关机,断电至少30分钟后,重新开机,自动恢复到原来出厂的密码。或者找到复位键恢复出厂设置也行(通常按住五秒),出厂密码记不住打电话问客服。
❹ 如何查看手机QQ历史记录
手机如何查看qq历史聊天记录,具体查询步骤如下:
1、登陆QQ,找到你要查询的人的QQ头像;
拓展资料:
QQ是腾讯QQ的简称,是腾讯公司开发的一款基于Internet的即时通信(IM)软件。目前QQ已经覆盖Microsoft Windows、OS X、Android、iOS、Windows Phone等多种主流平台。其标志是一只戴着红色围巾的小企鹅。
腾讯QQ支持在线聊天、视频通话、点对点断点续传文件、共享文件、网络硬盘、自定义面板、QQ邮箱等多种功能,并可与多种通讯终端相连。