微信数据收集辅助程序实现

https://download.csdn.net/download/qq_41124933/12699108

微信电子数据收集与获取,应遵循相关规则规定与法律法规,根据系统、厂商、是否root等条件,大体按如图5.1所示选择相应数据收集方法,得到可备份的用于电子数据检查和侦查实验的数据。

 

微信数据收集辅助程序实现_第1张图片

图1选择数据收集方法

设计辅助程序帮助判断适用的取证方法,根据手机基本信息打开相应帮助文档。并提供对华为手机微信备份数据的二次导出脚本。提供《公安机关办理刑事案件电子数据取证规则》、《关于办理刑事案件收集提取和审查判断电子数据若干问题的规定》与《最高人民法院关于民事诉讼证据的若干规定》的超链接,达到帮助取证人员进行取证的目的。

分为pyqt5文件“GetMsg.py”与运行程序“callGetMsg.py”

其中获取收集基本信息代码如下

    def phoneinfobu(self):
        doc = open('out.txt', 'w')
        print('设备信息输出:', file=doc)

        """device name"""
        command = 'adb devices'
        output1 = os.popen(command)
        info1 = output1.readlines()
        for line in info1:
            print(line.strip('\r\n'), file=doc)

        """安卓版本"""
        command = 'adb shell getprop ro.build.version.release'
        output2 = os.popen(command)
        info2 = output2.readline()
        if info2.strip() == '':
            print("设备未连接或未开启USB调试", file=doc)
        else:
            print("安卓版本: %s " % (info2), file=doc)

        """api版本"""
        command = 'adb shell getprop ro.build.version.sdk'
        output3 = os.popen(command)
        info3 = output3.readline()
        print("api版本: %s " % (info3), file=doc)

        """设备型号"""
        command = 'adb -d shell getprop ro.product.model'
        output4 = os.popen(command)
        info4 = output4.readline()
        print("设备型号: %s " % (info4), file=doc)

        """厂商"""
        command = 'adb -d shell getprop ro.product.brand'
        output5 = os.popen(command)
        info5 = output5.readline()
        print("厂商: %s " % (info5), file=doc)

        """手机序列号"""
        command = 'adb get-serialno'
        output6 = os.popen(command)
        info6 = output6.readline()
        print("手机序列号: %s " % (info6), file=doc)

        """ROOT情况"""
        command = 'adb shell whoami'
        output7 = os.popen(command)
        info7 = output7.readline()
        if info7 == 'root':
            print("设备已ROOT", file=doc)
        else:
            print("设备未ROOT", file=doc)

        doc.close()

        txtstr = ""
        with open('out.txt', 'rt') as f:
            lines = f.readlines()
            for line in lines:
                txtstr = txtstr + line
        self.printf(txtstr)

华为导出脚本如下(参考王喆_北京.安卓微信本地数据库解密与删除聊天记录恢复完全教程[EB/OL]. http://blog.sina.com.cn/s/blog_5c5460080102ymqq.html, 2019–03–27.)

import sqlite3
import os
conn = sqlite3.connect('com.tencent.mm.db')
cursor = conn.cursor()
cursor.execute("SELECT count(*) FROM apk_file_info")
all = cursor.fetchone()[0]
cursor.execute("SELECT file_path,file_index FROM apk_file_info")
result = cursor.fetchall()
count = 0
print("开始导出...请勿关闭程序")
while (count < all):
  if (result[count][1] > 0):
      fullname = result[count][0]
      findex = result[count][1]
      dirname,filename = os.path.split(fullname)
      fpath="." + dirname
      fname="." + fullname
      isExists=os.path.exists(fpath)
      if not isExists:
          os.makedirs(fpath)
      with open(fname, "wb") as output_file:
        cursor.execute("SELECT count(*) FROM apk_file_data WHERE file_index = " + str(findex))
        total = cursor.fetchone()[0]
        cursor.execute("SELECT file_data FROM apk_file_data WHERE file_index = " + str(findex))
        acount=0
        while (acount < total):
          ablob = cursor.fetchone()
          output_file.write(ablob[0])
          acount = acount+1
  count = count + 1
cursor.close()
conn.close()
print("导出已完成")

部分引用目录写了绝对路径到G盘,文件在res文件夹

你可能感兴趣的:(微信取证相关)