lldb 断点自动执行命令

调试某软件,需要取到断点时候的内存数据。

之前是每次到断点,一个地址一个地址地 p 或者 memory read,后来看到 breakpoint command 命令,于是有了:

添加断点

添加命令

输入命令

这样,每次运行到断点的时候,就会执行这两条命令。

lldb 断点自动执行命令 by @sskaje: https://sskaje.me/2018/03/lldb-%e6%96%ad%e7%82%b9%e8%87%aa%e5%8a%a8%e6%89%a7%e8%a1%8c%e5%91%bd%e4%bb%a4/

Run HelloWorld on Jailbroken iOS 11

iPhone 5s, iOS 11.1

Jailbroken by Electra

How to jailbreak

Cydia Impactor and a new Apple ID required (You can use your own Apple ID at your risk).

If any error occurs on Cydia Impactor, try to login in Xcode and remove useless app/cert.

Trust your developer certificate in iOS Settings => General => Profiles & Device Management => DEVELOPER APP.

Write HelloWorld

helloworld.c

build

sign with jtool

ent.xml

upload and run helloworld

If this binary is not signed with platform-application entitlement, it will get a ‘Killed’ if it’s under /bin/

More

I wrote a cli based memory editor, which requires more than a hello world.

1 entitlements

2 patch_setuid() from coolstar’s example. But I’m using code from electra’s cydia fork, also mentioned after his example.

3 Special thanks to ThisTakenIsUsername.

Run HelloWorld on Jailbroken iOS 11 by @sskaje: https://sskaje.me/2018/03/run-helloworld-on-jailbroken-ios-11/

使用WireGuard为阿里云专有网络主机提供外网访问

前言

我的阿里云服务器网络处于混合过度模式,逐步从经典网络往专有网络迁移。

之前每台经典网络主机都申请了公网IP和带宽,实际上对于大多数主机的业务而言,并不需要对外提供网络服务,只需要能访问外网即可。
所以这次新加的主机部分都没有去加弹性公网IP。

于是带来了问题:内网主机如何访问外网?

阿里云的dnat方案太贵了。不考虑。

尝试过本地配置网关,但是实验证明,阿里云的VPC交换机不是一个纯粹的二层交换,也许是设计有问题,也许是刻意阻止用户自己拿一台能访问公网的主机当内网网关。

所以这次使用WireGuard实现网络架构调整。

阿里云的经典网络主机里加了几条默认的路由:

前两个都好说,第三个是运营商级的NAT网络地址,之前在 OpenVPN Site-to-Site VPN between Asus Merlin And Ubnt EdgeRouter 里提过贵州电信的光纤网络对外就是这个地址段。

WireGuard的配置过程参考之前的文章,此处不多解释,只贴配置。

Continue reading “使用WireGuard为阿里云专有网络主机提供外网访问” »

使用WireGuard为阿里云专有网络主机提供外网访问 by @sskaje: https://sskaje.me/2018/02/aliyun-vpc-hosts-access-internet-using-wireguard/

Unity3d资源文件解密

这里只说 AssetBundle,只有思路。

1 废话般前提:逻辑上 AssetBundle 文件加密后肯定是需要解密了,再进行加载。

2 Unity 加载AssetBundle文件可以使用 AssetBundle.LoadFromFile,加载内存流可以用AssetBundle.LoadFromMemory 和 AssetBundle.LoadFromStream。
这些方法对应还有代Async后缀的异步加载方法。
文档在:https://docs.unity3d.com/ScriptReference/AssetBundle.html

3 打断点,看backtrace。

4 慢慢调试。

在我这个场景里,il2cpp dump是没有需求的。

贴一个bt

工具:
https://github.com/Perfare/UnityStudio
https://github.com/HearthSim/UnityPack

Unity3d资源文件解密 by @sskaje: https://sskaje.me/2018/02/unity3d-asset-bundle-decrypt/

EA6500v1 解锁5G频段

这是一个5年前留下的坑,12年买的EA6500v1,港版,5G频段只能看到 36,40,44,48,中国能用的不给用。
最近几年一直在用华硕系,两个ac68u两个ac88u,EA6500v1一直在吃灰,原配的电源适配器(12v2A)也被我挪走他用了。
想把EA6500送人吧,但是又觉得如果5G频段没解锁,别人用起来也尴尬。想当年,因为802.11d的原因,macbook经常找不到5G的SSID,我只能强制连一个Country Code是US的别人家的WiFi,才能看到_5GHz的。

后来试过DD-WRT解锁,因为不稳定,所以想解锁了再切回来,但是没用。
中间看到过 https://securityevaluators.com/knowledge/case_studies/routers/linksys_ea6500.php 这个安全报告,也试着写了个脚本去构造备份文件上传,试图直接启用频道,未果。
后来看到DD-WRT的Wiki上有张图,标识了主板上的几个点,可以用console直接来改设备,于是买了ttl卡,直接开搞。
图在这里:

EA6500v1 固件 1.1.29.162351 在这里 https://dl.sskaje.me/EA6500/
USB-TTL、杜邦线、排针(5pin)
CoolTerm (Windows下可以用PuTTY)

固件可以用 binwalk 直接解包,mac下squashfs没法搞,所以我直接去linux下操作的。期间还会需要 sasquatch,从https://github.com/devttys0/sasquatch 下载,然后build即可。
我把解包好的目录打了个包,可以从这里下载。

TTL板我从淘宝上买了个,链接是 https://detail.tmall.com/item.htm?id=16809187607 ,选了个偏贵的。
里边送了杜邦线和排针,杜邦线一头6个针脚一体的,直接插上。
参考前边的EA6500主板图,Vcc/TxD/RxD/n.c./GND,其中GND的地线没有用焊锡填充,所以从TTL线送的排针里拿出一个,把最边上的针脚的高度调一下,使得排针不用刻意固定就能与主板上的焊点接触上。
TTL板的针脚有6个,VCCIO/GND/TXD/RXD/RTS/CTS。杜邦线对应的 Vcc 连 VCC,GND连GND,TxD连RXD,RxD连TXD,其他不接,按这个对应关系接好排针。

TTL电脑端接线

TTL路由主板

我的macOS High Sierra没有额外装驱动就识别到了串口设备。
CoolTerm 配置波特率 115200,其他默认。在CoolTerm主界面点Connect,确认排针已经稳定接触好焊点之后,给EA6500上电,就能看到CoolTerm里有输出了。

在启动的时候,按 ctrl + c,多按几次就能看到 CFE> 的提示符了。

之前在研究构造备份文件的方案时,看到syscfg里有好多code,例如 wl0_country_code, wl1_country_code, ccode, wl_country。
这回全改成US,启动之后就 wl: Bad Channel 了。
/etc/regccode 这个文件内容如下

而,在CFE里,使用 devinfo show 看到的

乱试几种组合都无效后,恢复了配置,然后从固件的启动脚本里找了找

于是看到了这个函数

只要 ccode 和 regrev任意一个字段都是空的,系统就会默认到 Q2/13 这个code。
所以reboot,重新进入CFE。

操作命令如下

进入系统后,终于看到新的频道被释放出来了。

console里看频道信息和country
Web Console里看频道列表
macOS WiFi 扫描工具里看频段
EA6500v1 解锁5G频段 by @sskaje: https://sskaje.me/2017/12/ea6500v1-unlock-5ghz-channels/

Incoming search terms: