首页
社区
课程
招聘
[原创]Textobot-Wow, 用迄今为止最简单快捷的方式写iOS代码!
发表于: 2020-1-3 11:10 11724

[原创]Textobot-Wow, 用迄今为止最简单快捷的方式写iOS代码!

2020-1-3 11:10
11724

导读

0x00.交个朋友

0x01.TB编辑器Run命令详解

0x02.系统级Hello World

0x03.TB系统级API

0x04.进程级Hello World

0x05.TB进程级API

0x06.开发模式

0x07.插件模式

0x08.下篇再见


0x00.交个朋友

手游从业者模拟器玩家请关注云游模拟器PantaWin;

Android开发者请关注云游模拟器PantaWin/PantaMac/PantaLinux;

iOS越狱开发者请关注晓文框架Textobot;

Android插件开发者请关注飞度框架Fridobot;

移动调试器重度用户请关注利达调试器LidaDbg;

我们的产品推荐使用git下载和更新,在码云搜索geekneo即可。


0x01.TB编辑器Run命令详解

前置声明,下文中TBROOT指本产品的根目录,TB指Textobot。前两篇文章《iPhone手机环境部署及核心组件简介》、《VSCode环境部署并运行第一个TB插件》我们已经完成了iPhone手机与VSCode的环境部署,并且也配置好了目标手机的IPv4地址。现在,我们就具备了开发Python或者JavaScript代码并发送到手机执行的基础条件。
TB编辑器导出的Textobot Editor - Run命令就是帮助我们通过HTTP协议连接iPhone端Textobot后台服务的。执行这个命令的时候当前打开的文档必须以.py或者.js结尾的文件,否则将会报如下的错误:

另外,由于执行脚本代码与HTTP协议是异步进行的,所以如果我们想要查看脚本输出的日志内容,我们需要手动执行Textobot Editor - Log命令获取远程日志文件内容,如下:

小技巧:VSCode会记住当前频繁使用的插件命令,所以我们记住Command Palette的快捷键再配合上下键就可以高效率的操作TB编辑器的命令。

0x02.系统级Hello World

我们在VSCode中新建一个文件并另存为test.py,并输入如下代码:

然后执行Run命令(macOS快捷键Command+R、Windows快捷键CTRL+R),然后执行Log命令,我们就成功以root用户在系统级别执行了上述Python代码,结果如下:

这其实就和我们在桌面写Python代码一模一样了,我们不需要有任何iOS、Xcode等方面的前置知识,只需要按照一个通用Unix系统一样写Python代码就可以实现在iPhone手机上运行我们的脚本代码。

0x03.TB系统级API

为了方便我们开发插件,Textobot导出/集成了一些实用API,在此我们简单罗列一下,后面开发例子插件时再详细介绍。如果现在就想了解这些API的功能,可以查看TBROOT/Doc/textobot.md。



0x04.进程级Hello World

进程级代码执行依托于Frida,如果要写出有意义的JavaScript脚本代码,需要有iOS SDK的开发经验。不过当前我们只是输出Hello World,也是很简单的。用VSCode新建一个文件并另存为test.js,输入如下代码:

如果上述代码我们想在系统设置App里面执行,那么我们需要配置Target为设置App的名字或者BundleID,如下:

设置

com.apple.Preferences

然后Command+R或者CTRL+R执行上述代码,然后执行Log命令我们就可以得到如下的输出:


0x05.TB进程级API

TB进程级API主要是扩展Frida运行时,方便我们开发实用的插件。当前进程API是以C接口的形式导出的,这在使用时需要用Frida API转换一下,这在TBROOT/Template模版插件中已经实现了一部分,后面我们通过例子插件详细介绍,现在可以移步TBROOT/Doc/textobot.md查看功能说明:


0x06.开发模式

我们通过Run命令执行代码的模式称之为开发模式,这样不需要频繁打包、安装插件,提高开发效率。执行过Run命令也会激活手机端Textobot后台服务的开发模式,这样会全局性的收到各类App的UI事件,而不需要指定Target。
这种Hotcode模式和目前Google主推的Flutter+Dart的模式很像,都是即写即运行,大大提高开发效率。看到这里,我想朋友们应该能理解《换个轻松高效的方式开发iOS越狱插件》这篇文章想要表达的“效率”的意义了。

0x07.插件模式

我们通过Textobot Editor - Install命令安装之后再运行的模式称之为插件模式,这是我们开发完了一个插件交付给别人使用或者需要脱离VSCode运行代码时使用的模式。它遵循Textobot定义好的生命周期:


0x08.下篇再见

到此,我们就完整地介绍了Textobot环境搭建以及代码编写的所有内容。从下一篇开始,我们将由简至繁开发一些例子插件,然后在这个过程中把TB导出的API以及开发/调试技巧分享给大家,希望对朋友们有帮助。

[课程]Linux pwn 探索篇!

最后于 2020-1-3 22:04 被GeekNeo编辑 ,原因: 格式。
收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 1662
活跃值: (3569)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
版主威武设精,我再接再厉。
2020-1-3 13:41
0
雪    币: 968
活跃值: (6818)
能力值: (RANK:462 )
在线值:
发帖
回帖
粉丝
3
刘老板太帅了
2020-1-3 13:47
0
游客
登录 | 注册 方可回帖
返回
//