设备模拟(2)MagiskHidePropsConf功能探索
概览MagiskHidePropsConf的功能还有很多,本文尝试对上一篇博文中的MagiskHidePropsConf模块如何修改系统信息进行探索,另外对模块中的其他功能的使用以及效果进行总结,最后是一些使用上的注意事项。
MagiskHidePropsConf模块修改系统信息的实现看了代码,MagiskHidePropsConf模块的主要实现方式为,通过Magisk的resetprop实现的。
在菜单中选择需要模拟的机型之后,则是通过将机型对应的信息存储到propsconf_late文件中,重启的时候模块会访问这个文件并根据里面的值进行设置。
详细的追溯代码功能的过程就不展开了,实现读取属性并赋值的函数应该是在dev_sim_edit函数
这里可以看到一个列表,里面记录了可能会被变更的属性值,这里进行记录:
ro.product.brand
ro.product.name
ro.product.device
ro.build.version.release
ro.build.id
ro.build.version.incremental
ro.build.display.id
r ...
安卓设备模拟(1)基于MagiskHidePropsConf
背景最近测试应用有设备模拟的需要,没有那么多新的测试机可以换,所以要想想办法模拟下设备。设备模拟准备从硬件信息,软件信息,位置信息三个角度入手。目前的目标是,模拟一个全新的设备,不去测试特定的属性。
修改机型的目标属性/API安卓应用从系统中读取的关于安卓手机的硬件信息和系统的软件信息,硬件一般是手机开发商相关的,包括机型等,软件信息一般是操作系统版本等。
应用通过api或者各种奇怪的方式去获取这些信息,那么很直接的一个想法就是去修改这些信息的源头,另一个方法就是去hook获取到这些信息的api(对系统的破坏性小一点)。
这里先考虑使用第一种方法,因为这些api可能没那么好cover,并且重新刷写一个系统的代价感觉可以接受,当然还有效率的考虑。
那么说到要修改源头了,那应该修改什么信息呢?之前了解到的是系统属性中ro.product和ro.build分别表示系统的硬件(开发商)和软件属性,这两个属性可以在/system/build.prop中找到(但是后面经过实测发现,通过Magisk模块修改了系统属性之后这个文件中的属性并不会发生改变,究竟修改的属性是放置于哪里,或者模块在哪个环节把 ...
不占用电脑的情况下的远程连接安卓设备
背景魔都疫情严重,导致小伙伴们实验室回不去,测试设备分散在不同的人手里,测试的时候想多整一些设备测试都没办法,因此想看看有没有办法可以远程连接小伙伴的设备,即自己的PC-》(网络连接)-》小伙伴的PC-》(USB/WIFI等等)-》测试机;
这里结合使用场景设定了一些前提条件:
连接为非侵入式:即不使用远程桌面之类的软件占用小伙伴的电脑,为了让小伙伴在贡献测试机的时候还能愉快地使用自己的电脑,只需要为他人提供一定的带宽和闲置的测试机;
测试效果最好要和本地相同:不仅要能使用adb命令行,还要使用adb相关的软件如scrcpy进行测试;
太长不看有测试机的Server端:
1$ adb kill-server && adb -a nodaemon server start
连接的Client端:
123456# adb命令$ adb -H {Server端内网地址} -P {Server端监听端口} {adb命令}# windows环境下Scrcpy连接$ set ADB_SERVER_SOCKET=tcp: ...
Burp证书导入到Android中的要点
背景Burp是集抓包改包等等和网络通讯功能一体的软件,同时还支持自定义的插件用来实现各种各样的功能(比如做个伪DNS解析器)。
手机的网络代理设置为Burp监听的IP和端口可以实现对网络流量的监控,而将Burp的证书导入到Android中则可以对Https的流量进行监控。
在Android 7.0以前,用户安装的证书和安卓系统的证书没有区别,但是7.0以后应用可以选择只信任系统的证书,这就导致有可能出现流量获取不到的情况,因此本博客总结了一下现在市面上提到的各种将Burp证书(其实其他证书也类似,如Fiddler的证书)导入到系统根证书的方法,看下有什么特别的问题,以及介绍下自己采用的方法。
太长不看版本
在代理为burp的手机上访问获取DER格式的证书或者burp中导出证书;
使用openssl将DER格式的证书转换为扩展名为CRT的PEM证书:
1$ openssl x509 -inform der -in burp.der -outform pem -out burp.crt
将证书推送到手机存储中,使用movecert模块将证书移动到根证书目录中;
详细流程环境Pix ...
常用python库用法汇总
读取输入相关glob
作用:遍历目标文件夹中的文件,优势包括:
可以遍历子目录
目标文件可以使用通配符匹配文件名和类型
用法
先构造一个正则表达式的字符串,eg:
/home/abc/**/*.smali
PS:其中**表示的是匹配所有,包括子目录中的文件,也就是匹配/home/abc/下的所有的.smali结尾的文件,包括子目录中的文件;
使用**的时候在筛选的时候要设置recursive=True;
可以使用os.path.join将路径拼接起来;
然后调用glob.iglob(文件名正则表达式,recursive=True)表示遍历所有符合正则的文件名,并且在**中进行递归,该函数返回一个文件名的迭代器;
代码例子
12345import globsource_path = os.path.join(目录,'.后缀')for eachfile in glob.iglob(source_path): apkbasename=os.path.basename(eachfilename)
特定格式文件处理json
作用:提供pytho ...
Pixel手机刷入Magisk & Frida注意事项相关
movecert注意要改update-binary中的脚本,参考链接
Frida注意事项python脚本无法开启指定应用报错的内容如下:
12345678910# windows$ python frida_start.pyTraceback (most recent call last): File "frida_start.py", line 23, in <module> cur_pid=device.spawn("com.xxx") File "D:\Users\hasee\AppData\Local\Programs\Python\Python310\lib\site-packages\frida\core.py", line 26, in wrapper return f(*args, **kwargs) File "\Python\Python310\lib\site-packages\frida\core.py", line 149, in spawn ...
NFS网络文件系统挂载
NFS服务器配置
安装NFS server
1$ sudo apt install nfs-kernel-server
在/srv/目录下创建一个nfs挂载的根目录
1$ sudo mkdir -p /srv/nfs4/xxx
将想要挂载的目录在本地挂载到nfs的根目录中
1$ sudo mount --bind /home/bbb/xxx /srv/nfs4/xxx
(可选)修改/etc/fstab,配置持久化挂载
12$ sudo vim /etc/fstab/home/bbb/xxx /srv/nfs4/xxx none bind 0 0
修改nfs的配置允许目标挂载机器挂载服务器的nfs目录,其中第一条是设置nfs的根目录,在client中挂载的时候就不需要额外指定前面的路径
123$ sudo vim /etc/exports/srv/nfs4 [client IP](rw,sync,no_subtree_check,crossmnt,fsid=0)/srv/nfs4/xxx [client IP](rw,sync,no_subtree_check)
设置 ...
网站资源汇总
工具类
网站
功能
标签
waifu2x
图片增强
日常使用
PMD5
MD5解密,免费
CTF
somd5
另一个MD5解密
CTF
WolframAlpha
大数分解,wofram的数学求解功能之一
CTF
factordb
基于数据库查找的大数分解
CTF
libc database
多版本libc函数偏移值计算
CTF
CRC calculation
CRC在线计算
CTF
Gramar Check
英文语法检查
学习资料
二维码扫描
二维码在线扫描
日常使用
Scastie
Scala在线IDE
日常使用
Md2web
MD2在线解密
CTF
江下科技
在线GIF转帧图,效果还不错
CTF
regex101
在线正则表达式IDE
日常使用
资源类
网站
功能
标签
RFC Editor
RFC文档
官方文档
syscall
多架构syscall的函数签名,包含寄存器中应该存储的参数或者值
CTF
CLRS solutions
《算法导论》习题参考答案
学习资料
Wallpap ...
评价指标
ROC曲线指标作用
ROC曲线是用来评价分类器好坏,随机分类器的ROC曲线为斜率为1的直线,ROC曲线绘制之后,使用ROC曲线和X轴以及X=1直线之间的面积,成为AUC值来衡量优劣,AUC值越高表示分类器效果越好;
个人感觉该曲线的作用就是评价分类器的预测值是否和分类结果强相关;
指标用法
将分类器的分类预测预测值(0到1之间)进行排序,然后对每两个数据之间做一个划分,对每个划分左右分别是两个类别,统计该划分的TPR和FPR,绘制横纵坐标为TPR和FPR,数据点为每个划分的对应(TPR,FPR),曲线成为ROC曲线;
论文阅读:Cost-aware robust tree ensembles for security applications
本文为本周讨论班分享论文,特此记录
文章链接
概述本文发表在USENIX 21,作者来自哥伦比亚大学,通讯作者为Jana Suman。文章提出了使用领域知识构建树集成(Tree ensemble)分类算法的,开销驱动的feature的建模,同时提出新的训练算法,旨在根据建模的结果构建更加鲁棒的树集成分类模型,提高攻击者调整feature攻击模型的开销。
相比于不使用feature训练的普通模型和使用了切比雪夫距离($L_p$ norm distance)来说,在4个数据集中可以做到提高攻击者的最小攻击成本(使用切比雪夫距离衡量),面对攻击时能够维持一个比较高的准确率,同时相比前人的具有鲁棒性的训练算法来说作者提出的算法在准确率和误报率上能够有一个更好的结果;在实际的安全应用场景中,作者使用了推特的垃圾链接分类任务进行验证,最好能够提高攻击者10.6倍的攻击成本。
背景
决策树可以用来构建分类任务,从根节点出发根据输入的特征(features)选择左右子树,最终到达一个叶子节点作为输入特征的预测结果;
树集成是决策树预测结果的聚合,常用的聚合方式有取平均(随机森林,Random For ...