Closed Pevernow closed 2 months ago
本机是vivo的,root不了。 电脑模拟器试过,x86架构不支持。 聊天记录是手Q的,怎么导出导入备份都只能在手Q NT上完成操作。
模拟器内getprop发一下,以及怀疑这个环境本身就用不了 电脑模拟器也有arm64架构的,比如AndroidStudio里的
也可以试着把代码里的pid对应修改,看看先运行QQ后hook会不会有问题
模拟器内getprop发一下,以及怀疑这个环境本身就用不了 电脑模拟器也有arm64架构的,比如AndroidStudio里的
早上也试了vs2022 里的android sdk提供的arm模拟器。
用不了,用AVD创建的虚拟机,总是会卡死在开机界面,调大内存也没用。看日志发现似乎有错误,zygote和几个服务被反复kill然后一直重启。
可能一定要用android studio里的?
模拟器内getprop发一下,以及怀疑这个环境本身就用不了 电脑模拟器也有arm64架构的,比如AndroidStudio里的
离谱的地方在于,这个环境支持magisk(后来装了),也能hook上zygote64。。。。
也可以试着看看先运行QQ后hook会不会有问题
这个呢?
也可以试着看看先运行QQ后hook会不会有问题
这个呢?
我在开frida-server前就挂着QQ后台了,还是一样。。。
还有什么办法吗?
模拟器内getprop发一下,以及怀疑这个环境本身就用不了 电脑模拟器也有arm64架构的,比如AndroidStudio里的
这个getprop怎么搞?
模拟器内getprop发一下,以及怀疑这个环境本身就用不了 电脑模拟器也有arm64架构的,比如AndroidStudio里的
这个getprop怎么搞?
虚拟机终端内(和frida-server
一样的)用root权限运行,把所有输出文件形式贴上来
模拟器内getprop发一下,以及怀疑这个环境本身就用不了 电脑模拟器也有arm64架构的,比如AndroidStudio里的
这个getprop怎么搞?
虚拟机终端内(和
frida-server
一样的)用root权限运行,把所有输出文件形式贴上来
手机上不好建txt我就直接贴了。
这个是没sudo环境下的。
[gsm.version.ril-impl]: [android reference-ril 1.0]
[ro.bootimage.build.date]: [2023年11月25日 星期六 16时01分47秒 CST]
[ro.build.date]: [2023年11月25日 星期六 16时01分47秒 CST]
[ro.build.description]: [PD2302-user 13 TP1A.220624.014 compiler10312225 release-keys] [ro.build.display.id]: [TP1A.220624.014 release-keys]
这个是su环境下的
su环境下的ps -A
发一下
以及把运行本项目的python脚本时的输出发一下
以及把运行本项目的python脚本时的输出发一下
原因是如果已经运行了,按理说是不用再spawn的,因此我很怀疑你给的信息是否和实际相符
以及把运行本项目的python脚本时的输出发一下
原因是如果已经运行了,按理说是不用再spawn的,因此我很怀疑你给的信息是否和实际相符
以及把运行本项目的python脚本时的输出发一下
原因是如果已经运行了,按理说是不用再spawn的,因此我很怀疑你给的信息是否和实际相符
frida-server 是手动下载的同版本,在su环境下运行后,termux终端就卡住了,看不到有什么输出。
su环境下的
ps -A
发一下
貌似确实是这个问题,也就是脚本里没有成功获取到pid,从而认为QQ未运行
试试:将an.py
整个替换为以下内容,运行后给我看看输出:
import frida
import platform
import os
import sys
import subprocess
PACKAGE = "com.tencent.mobileqq"
ON_TERMUX = None
print(platform.system())
print("ANDROID_ROOT" in os.environ.keys())
print(os.path.exists("/data/data/com.termux"))
print("TERMUX_VERSION" in os.environ.keys())
def isOnTermux() -> bool:
global ON_TERMUX
if ON_TERMUX is not None:
return ON_TERMUX
if (
platform.system() == "Linux"
and "ANDROID_ROOT" in os.environ.keys()
and (
os.path.exists("/data/data/com.termux")
or ("TERMUX_VERSION" in os.environ.keys())
)
):
ON_TERMUX = True
return True
ON_TERMUX = False
return False
if __name__ == "__main__":
jscode = general_script
if isOnTermux():
print("on termux")
device = frida.get_remote_device()
pid_command = "su -c pidof " + PACKAGE
else:
print("not termux")
device = frida.get_usb_device()
pid_command = "adb shell su -c pidof " + PACKAGE
running = True
try:
print(pid_command)
ret=subprocess.check_output(pid_command, shell=True)
print(ret)
pid = int(
ret.decode()
.strip()
.split(" ")[0]
)
except:
import traceback
traceback.print_exc()
running = False
if running:
print(PACKAGE + " is already running", pid)
session = device.attach(pid)
script = session.create_script(jscode)
else:
pid = device.spawn([PACKAGE])
session = device.attach(pid)
script = session.create_script(jscode)
device.resume(pid)
print("QQ running!! pid = %d" % pid)
貌似确实是这个问题,也就是脚本里没有成功获取到pid,从而认为QQ未运行 试试:将
an.py
整个替换为以下内容,运行后给我看看输出:import frida import platform import os import sys import subprocess PACKAGE = "com.tencent.mobileqq" ON_TERMUX = None print(platform.system()) print("ANDROID_ROOT" in os.environ.keys()) print(os.path.exists("/data/data/com.termux")) print("TERMUX_VERSION" in os.environ.keys()) def isOnTermux() -> bool: global ON_TERMUX if ON_TERMUX is not None: return ON_TERMUX if ( platform.system() == "Linux" and "ANDROID_ROOT" in os.environ.keys() and ( os.path.exists("/data/data/com.termux") or ("TERMUX_VERSION" in os.environ.keys()) ) ): ON_TERMUX = True return True ON_TERMUX = False return False if __name__ == "__main__": jscode = general_script if isOnTermux(): print("on termux") device = frida.get_remote_device() pid_command = "su -c pidof " + PACKAGE else: print("not termux") device = frida.get_usb_device() pid_command = "adb shell su -c pidof " + PACKAGE running = True try: print(pid_command) ret=subprocess.check_output(pid_command, shell=True) print(ret) pid = int( ret.decode() .strip() .split(" ")[0] ) except: import traceback traceback.print_exc() running = False if running: print(PACKAGE + " is already running", pid) session = device.attach(pid) script = session.create_script(jscode) else: pid = device.spawn([PACKAGE]) session = device.attach(pid) script = session.create_script(jscode) device.resume(pid) print("QQ running!! pid = %d" % pid)
想起来一件事,新版termux的su -c用法好像改了,后面最好要用引号把命令包进去。
想起来一件事,新版termux的su -c用法好像改了,后面最好要用引号把命令包进去。
这样啊?再试试:
import frida
import platform
import os
import sys
import subprocess
PACKAGE = "com.tencent.mobileqq"
if __name__ == "__main__":
jscode = ''
if 1:
print("on termux")
device = frida.get_remote_device()
pid_command = "su -c 'pidof " + PACKAGE + "'"
running = True
try:
print(pid_command)
ret=subprocess.check_output(pid_command, shell=True)
print(ret)
pid = int(
ret.decode()
.strip()
.split(" ")[0]
)
except:
import traceback
traceback.print_exc()
running = False
if running:
print(PACKAGE + " is already running", pid)
session = device.attach(pid)
script = session.create_script(jscode)
else:
pid = device.spawn([PACKAGE])
session = device.attach(pid)
script = session.create_script(jscode)
device.resume(pid)
print("QQ running!! pid = %d" % pid)
想起来一件事,新版termux的su -c用法好像改了,后面最好要用引号把命令包进去。
这样啊?再试试:
import frida import platform import os import sys import subprocess PACKAGE = "com.tencent.mobileqq" if __name__ == "__main__": jscode = '' if 1: print("on termux") device = frida.get_remote_device() pid_command = "su -c 'pidof " + PACKAGE + "'" running = True try: print(pid_command) ret=subprocess.check_output(pid_command, shell=True) print(ret) pid = int( ret.decode() .strip() .split(" ")[0] ) except: import traceback traceback.print_exc() running = False if running: print(PACKAGE + " is already running", pid) session = device.attach(pid) script = session.create_script(jscode) else: pid = device.spawn([PACKAGE]) session = device.attach(pid) script = session.create_script(jscode) device.resume(pid) print("QQ running!! pid = %d" % pid)
还真是这个问题,试下刚push的最新版
如何?
如何?
?你QQ后台挂着吗
?你QQ后台挂着吗
挂着
不好意思没push,再试试刚push的
不好意思没push,再试试刚push的
好,完全没相关资料的奇怪issue。
你Python frida版本(pip3 list | grep rida
)和frida-server
版本匹配吗?
好,完全没相关资料的奇怪issue。 你Python frida版本(
pip3 list | grep rida
)和frida-server
版本匹配吗?
我确定过版本,pkg安装的frida是16.1.1的 server我下载的也是16.1.1 arm64的 pip不知道为什么看不到版本
能试试这个吗? https://github.com/QQBackup/qq-win-db-key/blob/master/教程 - NTQQ (Android).md#导出数据库
实在不行,闲鱼150买个二手小米5保证能跑
(
pkg装那个flask-python包把版本搞乱了,大概需要一个pip3 install --upgrade pygments
看起来这个issue的Author已经不需要折腾这些奇怪的环境了,那就不管了(
采用光速虚拟机提供手机上的安卓7模拟器,内核可能是anbox。(x86的模拟器不支持这个项目)
selinux已经调整为宽松模式 在su环境下运行了frida-server 根本没有安装magisk,不存在magisk hide干扰问题。
始终报这个错。
zygote进程存在,但还有一个zygote64? 是不是要访问另一个?