sagexy
(sagexy)
1
最近要做一个类似触动精灵一样的东东,没啥灵感,于是就一边上网查各种资料,一边逆触动精灵,首先打开触动精灵的资源包可以看到总共有3个可执行文件,
TouchSprite是Executable file,目测TSDeamon应该是个守护进程,用class-dump看了下TSDeamon的头文件大致应该是用来执行LUA脚本等等~~~
本人做越狱开发刚起步,了解的也不多,看了书之后稍微了解了些皮毛知识,根据https://www.chrisalvares.com/blo … hone-daemon-part-1/ 初步了解了如何创建一个Daemon,根据触动精灵,大致猜测应该是App启动后调用TSDeamon这个进程,用IDA看TouchSprite 有个runDeamon的方法(我在想是不是他们拼错了应该是Daemon吧?)
目测应该是将TSDeamon加载进来,具体怎么运行就不知道了
我想问下,在我的App当中应该如何执行Daemon,如何关闭,至于通信方面我想应该是使用CPDistributedMessagingCenter,
然后最主要的,我要如何录制屏幕点击(或者滑动等动作)动作,又如何播放这些动作,我想这些操作应该是放在Daemon中运行的吧?
请大神给我点思路,或者讲讲触动精灵的实现方法,谢谢!!!
没有用过触动精灵,但根据你的了解就是一个按键录制和模拟按键的工具,如果功能仅仅是这样的话,一个dylib(tweak)就可以解决问题了。我猜想的思路是这样的:录制,hook了SpringBoard或者backboardd负责处理用户交互的函数,记录其参数等等留待以后调用;播放,调用(还原)这些函数。这个功能我没有做过,你可以参考一下http://stackoverflow.com/questions/19471572/inject-system-wide-touch-events-on-ios7,http://blog.lazerwalker.com/blog/2013/10/16/faking-touch-events-on-ios-for-fun-and-profit等等。
至于触动精灵里的daemon,我倒真不大清楚是干嘛用的,因为可以提到root权限,所以猜测是用来播放用户操作的。既然是daemon,就是开机自启动的,App跟它之间应该是协调工作的关系,App并不能启动/停止它(调用launchctl load/unload com.daemon.bundleid),但可以让它的部分代码暂停工作(if (appTellsMeToPauseViaCPDistributedMessagingCenter) pausePartOfDaemonWork();)
另外,你把你的另一篇帖子也重新编辑一下吧,图片本地上传一下
hook
(hook)
3
群主,你回复上提到如果我要录制用户的操作点击行为,你说一个tweak就可以了,如何实现,可以说得具体点吗?
现在点击时什么函数得到调用,你已经知道了,那录制就是把这些函数给hook了,把它们调用时的参数记下来就好了啊