今天有需要共享上网进行抓包分析报文的情况。
研究了一下MacBook Pro(macOS Catalina(10.15.5))如何通过蓝牙PAN(Bluetooth PAN)来共享笔记本连接的Wi-Fi网络出来,让手机通过共享出来的蓝牙热点来上网的方法。
由于蓝牙PAN(Bluetooth PAN)本质属于局域网转发,起到一个简单网关的作用。因此我们需要设置蓝牙设备的IP地址跟需要共享的Wi-Fi网卡相同。
具体操作如下:
Mac是苹果自1984年起以“Macintosh”开始的个人消费型计算机,如:iMac、Mac mini、Macbook air、Macbook pro、Mac pro等计算机。使用独立的Mac os系统,最新的OS X系列基于NeXT系统开发,不支持兼容。是一套完备而独立的生态系统。
今天有需要共享上网进行抓包分析报文的情况。
研究了一下MacBook Pro(macOS Catalina(10.15.5))如何通过蓝牙PAN(Bluetooth PAN)来共享笔记本连接的Wi-Fi网络出来,让手机通过共享出来的蓝牙热点来上网的方法。
由于蓝牙PAN(Bluetooth PAN)本质属于局域网转发,起到一个简单网关的作用。因此我们需要设置蓝牙设备的IP地址跟需要共享的Wi-Fi网卡相同。
具体操作如下:
今天遇到了需要手工用调试签名重新签名APK文件的一个需求。
Android默认调试签名证书位置
Windows:
|
1 |
C:\Users\<用户名>\.android\debug.keystore |
macOS Catalina:
|
1 |
~/.android/debug.keystore |
证书密码 :android
签名脚本:
|
1 |
$ bash ~/Android/sdk/build-tools/29.0.2/apksigner sign --ks debug.keystore xxx.apk |
HomeBrew安装SageMath:
|
1 |
$ brew cask install sage |
启动的时候提示如下:
继续阅读macOS Catalina(10.15.4)安装应用提示 '无法打开"XXXX",因为无法验证开发者' 的解决方法
在CTF比赛中,往往会涉及到RSA解密类的题目,有了这个工具(基于python3.x)做起来就得心应手了。
这个也可以作为安全工具来使用,检查密钥的安全性。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ git clone https://github.com/Ganapati/RsaCtfTool.git $ cd RsaCtfTool $ pip3 install -r "requirements.txt" # 安装辅助数学计算库sagemath,提高计算效率 $ brew cask install sage # 暴力破解RSA公钥,输出私钥 $ python3 RsaCtfTool.py --publickey certificate.crt --private # 公钥中提取 N,e $ python3 RsaCtfTool.py --publickey ~/certificate.crt --dumpkey |
为了方便理解,先对RSA密钥体制做个简略的介绍。
- 选择两个大的参数,计算出模数 N = p * q
- 计算欧拉函数 φ = (p-1) * (q-1),然后选择一个e(1<e<φ),并且e和φ互质(互质:公约数只有1的两个整数)
- 取e的模反数d,计算方法为:e * d ≡ 1 (mod φ) (模反元素:如果两个正整数e和n互质,那么一定可以找到整数d,使得 e * d - 1 被n整除,或者说e * d被n除的余数是1。这时,d就叫做e的“模反元素”。欧拉定理可以用来证明模反元素必然存在。两个整数a,b,它们除以整数M所得的余数相等:a ≡ b(mod m),比如说5除3余数为2,11除3余数也为2,于是可写成11 ≡ 5(mod 3)。)
- 对明文m进行加密:c = pow(m, e, N),可以得到密文c。
- 对密文c进行解密:m = pow(c, d, N),可以得到明文m。
p 和 q:两个大的质数,是另一个参数N的的两个因子。
N:大整数,可以称之为模数
e 和 d:互为无反数的两个指数
c 和 m:密文和明文
(N, e):公钥
(N, d):私钥
pow(x, y, z):效果等效pow(x, y)% z, 先计算x的y次方,如果存在另一个参数z,需要再对结果进行取模。
密钥长度:n以二进制表示的的位数,例如密钥长度为512代表n用二进制表示的长度为512bit。
对于RSA加密算法,公钥(N, e)为公钥,可以任意公开,破解RSA最直接(亦或是暴力)的方法就是分解整数N,然后计算欧拉函数φ(n)=(p-1) * (q-1),再通过d * e ≡ 1 mod φ(N),即可计算出 d,然后就可以使用私钥(N, d)通过m = pow(c,d,N)解密明文。
1. 定期更换密钥
2. 不同的用户不可以使用相同的模数N
3. p与q的差值要大,最好是差几个比特
4. p-1与q-1都应该有大的素因子,一般建议选择的两个大素数p、q使得p=2p+1和q=2q+1也是素数
5. e的选择不要太小
6. d的选择也是不可以太小,最好满足d>=n的4分之1
Android调试桥( adb )是一个开发工具,帮助安卓设备和个人计算机之间的通信。 这种通信大多是在USB电缆下进行,但是也支持Wi-Fi连接。 adb 还可被用来与电脑上运行的安卓模拟器交流通信。 adb 对于安卓开发来说就像一把“瑞士军刀”。
|
1 |
$ brew cask install android-platform-tools |
测试是否正常安装
|
1 |
$ adb devices |
1、如果你以前安装过,请先删除老的文件
|
1 |
$ rm -rf ~/.android-sdk-macosx/ |
2、下载 android-sdk-macosx
3、将下载的文件解压并移动到 ~/.android-sdk-macosx
|
1 2 3 4 5 |
$ cd ~/Downloads(你的下载目录)/ $ unzip android-sdk*.zip $ mv android-sdk-macosx/ ~/.android-sdk-macosx |
4、运行 SDK Manager
|
1 |
$ sh ~/.android-sdk-macosx/tools/android |
5、根据你的需要选择,(我只需要Android SDK Platform-tools)[可选步骤]
6、选好后 Install
7、环境变量设置
|
1 |
$ echo 'export PATH=$PATH:~/.android-sdk-macosx/platform-tools/' >> ~/.bash_profile |
8、更新配置文件
|
1 |
$ source ~/.bash_profile |
9、测试是否正常安装
|
1 |
$ adb devices |
macOS Catalina 10.15.2 自带的 Apache2,PHP 在配置的时候,非常困难,而且不管如何配置,都没办法跟 MySQL 数据库连接,总之会出现各种问题,而且各种插件安装异常麻烦。
尝试过使用 brew 安装 MySQL,XAMPP,但是也是都没办法成功配置。macOS系统更改了太多的东西,各种不方便啊。
最后还是使用 XAMPP-VM 或者干脆搭建一个 VirtualBox 虚拟机在 Linux 下进行开发吧。
下面,我们介绍一下使用 XAMPP-VM 进行开发的方法。
苹果为了保持自家一定领先地位,在 MAC 设备上都采用了 SSD 磁盘。为了帮助用户关注磁盘运行状况,macOS 系统中已经内置了检查内置 SSD 和其它已连接磁盘运行状态的相关工具。以便在SSD 固态磁盘挂掉之前,就让用户提前检测并知晓其工作状态。
各种存储介质,包括 SSD,其实都是消耗品。这意味着一旦磁盘挂了,不仅会影响系统正常运行,甚至存储的文件都会有损失的风险。
在 macOS 10.15.2下使用 tkinter 库 Entry 输入框,无法输入中文,不管怎么样都只能输入英文,只能复制进去中文,交互体验很不好ಥ_ಥ。
我的版本是 macOS 10.15.2,python 3.7.5。
在 macOS Catalina (10.15.1) 系统上,已经无法安装使用CUDA了。
貌似 CUDA 只能支持到 macOS High Sierra (10.13)。
原因在于 Apple 严格控制着显卡驱动的权限,导致即时nvidia 希望更新显卡驱动,也需要等待 Apple 的许可。
但是貌似 Apple 对显卡驱动进行了深度的定制,而这个驱动定制团队貌似已经终止了。这就造成没办法进行驱动的更新,简直是悲剧啊!
参考链接中各种说法很多,但是一致的见解是只有降级系统这一条路了, Docker 也是不行的,宿主机不支持,也是搞不定。
不过,貌似安装双系统可以规避这个问题!(可惜只能是低版本系统安装高版本系统!高版本系统安装低版本的时候会被拒绝)。 一个 macOS High Sierra (10.13),另一个安装更高的系统版本。参考: 在单独的 APFS 宗卷上安装 macOS