【经验分享】一个游戏闯关模式学习CSS Selector的网站"CSS Diner":http://t.cn/A6bgyHNJ。 Python使用BeautifulSoup实现CSS Selector解析HTML文档的示例: import requests from bs4 import BeautifulSoup r = requests.get('http://www.site-digger.com/html/articles/') r.encoding = 'UTF-8' htm ​

9月2日 19:43转发|评论

【经验分享】qemu-system-x86运行tiny11 (1) 安装qemu-system-x86,安装完成后无需重启。 sudo apt-get update sudo apt-get install qemu qemu-utils qemu-system-x86 (2) 创建硬盘。 qemu-img create -f qcow2 tiny11.img 50G (3) 创建虚拟机。 sudo qemu-system-x86_64 --enable-kvm -m 2G -smp 4 - ​

8月10日 12:13转发|评论

【经验分享】Playwright过geo.captcha-delivery.com检测 page.add_init_script('''Object.defineProperties(navigator, {webdriver:{get:()=>undefined}}); delete navigator.__proto__.webdriver;''') ​

7月31日 10:41转发|评论

【经验分享】scrcpy在网络质量欠佳环境下可以通过降低码率来提高流畅度 e.g. scrcpy --bit-rate 1M --max-fps 5 注意:在新版本中--bit-rate参数更名为--video-bit-rate ​

7月3日 10:11转发|评论

【经验分享】scrcpy在小米手机上鼠标不起作用问题的解决 在“开发者选项”中需要打开"USB调试(安全设置) - 允许通过USB调试修改权限或模拟点击"。要打开这个选项,手机需要先登录小米账号,另外手机必须要插有SIM卡。 ​

7月3日 10:09转发|评论

【经验分享】android如何实现开机执行启动脚本 可以借助Magisk的Boot Scripts功能实现。将要执行的脚本放到/data/adb/service.d目录下,并给于执行权限即可。小米8青春版实测有效。 如下是一个试下开机自动启动adb over wifi的脚本start.sh: # start adb over wifi setprop service.adb.tcp.port 555 ​

6月30日 18:29转发|评论

【经验分享】安卓设备如何实现开机自动开启ADB网络调试 (1)安装“网络ADB调试自启1.7.apk”(下载地址:http://t.cn/A6Qpt6UQ)。 (2)运行APP,打开"开机自启"开关。 (3)系统设置->自启动管理,勾选允许"网络ADB调试"自启动。(小米8青春版) ​

6月30日 14:11转发|评论

【经验分享】Ubuntu22.04下安装MySQL-python sudo apt-get install -y build-essential # 解决"mysql_config not found" sudo apt-get install libmysqlclient-dev # 解决"fatal error: my_config.h: No such file or directory" sudo wget http://t.cn/A6QC8MAD -O /usr/include/mysql/my_config.h ​

6月29日 19:45转发|评论

【经验分享】基于openvc的轮廓及颜色检测,效果如附图所示 import cv2 from PIL import Image, ImageDraw, ImageFont def get_hsv_color_name(h, s, v): """根据HSV值返回颜色名称 """ HSV_COLORS = [{'name': '黑', 'h': (0, 180), 's': (0, 255), 'v': (0, 46)}, { ​

6月6日 09:20转发|评论

【经验分享】使用Frida获取安卓APP Webview中的HTML内容 示例代码如下: function getWebviewHtml(refresh){ var html = ""; var webview = null; var sleep = new NativeFunction(Module.getExportByName('libc.so', 'sleep'), 'uint', ['uint']); // 从内存中寻找 ​

5月31日 15:24转发|评论

【经验分享】发现Frida Python库的enumerate_applications()在遍历APP时获取进程id存在主次不分的问题,导致后续attach到错误的进程。 例如图1所示,ctrip.android.view这个APP存在三个进程,其中第一个7928 才是主进程,其余两个是子进程,我们需要attach的是7928这个主进程才对。 但是如图2所示,e ​

5月25日 21:42转发|评论

【经验分享】Frida获取RegisterNatives动态注册的JNI函数的地址 背景:某JNI的native函数在so的导出表中找不到,说明不是静态注册的,是通过RegisterNatives动态注册的(示例:http://t.cn/A6HXThG8)。 可以使用Frida HOOK libart.so中的RegisterNatives函数,来曝出JNI函数的详细信息。 function h ​

5月21日 21:01转发|评论

【经验分享】Frida 12不支持String.replaceAll。同一个脚本在16下工作正常,在12下就提示“TypeError: undefined not callable (property 'replaceAll' of ....”异常。 这是ChatGPT给出的解释: 在 Frida 12 中,原生的 String.prototype.replaceAll 方法可能无法使用,因为 Frida 12 使用的 JavaScr ​

5月15日 10:17转发|评论

【经验分享】通过Hook Java层的System.loadLibrary()来屏蔽某so的加载 var System = Java.use('java.lang.System'); const Runtime = Java.use('java.lang.Runtime'); const VMStack = Java.use('dalvik.system.VMStack'); System.loadLibrary.overload('java.lang.String').implementation = functio ​

5月13日 10:16转发|评论

【经验分享】Frida打印android so的加载顺序 function readStdString(str) { const isTiny = (str.readU8() & 1) === 0; if (isTiny) { return str.add(1).readUtf8String(); } return str.add(2 * Process.pointerSize).readPointer().readUtf8String(); } var mod_art ​

5月13日 09:42转发|评论

【经验分享】Frida “Error: java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare()” 问题的解决。 使用Java.scheduleOnMainThread(fn)将代码安排在主线程执行即可,例如下完整示例,实现 显示Toast提示。 function toast(text){ // 显示Toast提示 ​

5月12日 17:22转发|评论

【经验分享】推荐一款好用的鼠标轨迹记录器 - MouseController(http://t.cn/A6HUUgz2)。支持动作录制重放。另外,还有一个类似的工具,叫做KeymouseGo,它不光能记录鼠标动作,还能记录键盘动作,项目地址:http://t.cn/A6hWnLnH。 ​

5月10日 11:17转发|评论

【经验分享】adb查看APP的版本号 adb shell dumpsys package ctrip.android.view|grep versionName ​

5月10日 11:11转发|评论

【经验分享】使用VNC远程连接KVM虚拟机,鼠标不同步而且偏移很大(想砸掉鼠标冲动的那种)问题解决: (1)编辑虚拟机配置文件,例如sudo virsh edit win10_1,然后将<input type='mouse' bus='ps2'/>修改为<input type=’tablet’ bus=’usb’/> 。 (2)强制关闭虚拟机win10_1然后重启,问题解决。 ​

3月13日 09:26转发|评论

【经验分享】QEMU/KVM如何修改开机启动顺序? virsh edit <name-of-vm-instance> 如下示例: <os> hvm <boot dev='network'/> <boot dev='cdrom'/> <boot dev='hd'/> bootmenu的enable设置为yes,就可以在启动的时候按F12选择启动设备。 ​

3月12日 11:51转发|评论