Next generation XXTouch for iOS 13 and 14. Rewritten in Objective-C.
XXTouch was a system wide touch event simulation and automation tool (jailbreak required).
我的英语荒废太久,如果让我以真心撰写一大段话颇耗精力,所以还是拿中文写吧。
XXTouch 曾是一款模拟截取屏幕和模拟点击事件来实现 iOS 自动化的应用软件(需要越狱)。但是由于其部分功能(如修改地理位置),对目标进程实施了注入,被中华人民共和国的司法鉴定机构认定为“外挂”一类性质的软件。2018 年中,我们团队经某地法院判决,没收了全部收入,并且分别获刑三年至六年不等的有期徒刑。我因为认罪态度良好,上缴全部收入并且缴纳了一笔不菲的罚金,所以得以缓期执行。
近年来,随着“净网行动”的开展,不少类似性质的软件都遭到了不同程度的打击,例如叉叉助手、大牛助手、NZT 等等。这些软件无一例外的,都含有“注入”这一技术实施细节。而这,也是一款软件被认定为“外挂”的重要标准之一。
首先,“注入”这一行为,违规访问并且修改了了目标应用的内存空间,侵犯了目标应用所有者的软件著作权。其次,这类自动化工具给黑色产业链提供了技术上的支撑,并且获得了非法收入。
然而,当初作为大学刚毕业的我,在参与到 XXTouch 开发的时候,只负责其 UI 部分的编写,并没有深刻认识到这一点。我当时坚持认为,XXTouch 只是一款自动化工具,而非传统意义上的“外挂”,就算使用我们工具的人进行了违法犯罪,和我们应该也没有什么关系。 现在看来,当初的想法确实有些天真。
因为这件事,我深刻地见证了中国互联网从野蛮生长,到逐渐有序的过程。
技术是一把双刃剑,使用不当,可能将自己带入深渊。
我希望通过这次开源,能够促进公众,尤其是刚刚步入社会、步入程序员行业的年轻同行们,对于这一行业法律责任的认知。如果看到这个页面的在座各位,还有在编写非法爬虫、外挂,为违法犯罪提供有偿技术支撑的,请停下你们的键盘,想一想可能会付出的代价。快播如此,乌云如此,XXTouch 更是如此,请君牢记。
我大概花了 2 个多月的时间来重写 XXTouch,将其取名为 XXTouchNG,一是为了了解它的技术实现细节,二是为了借此机会了我自己一个心结。如果 XXTouch 不“注入”他人进程,或者不以侵害他人著作权来盈利,它仍旧是一款很有乐趣的软件。“快捷指令”的限制太多,对于很多喜欢折腾的朋友来说,越狱一下自己的 iPhone,编写一些小脚本来实现一些小任务,是很有成就感的。
警告:本应用程序及其源代码基于 AGPLv3 协议发布,仅可用于 iOS 逆向工程的学习和交流目的。使用本应用程序对其他应用程序实施“注入”之前,你需要先获得其著作权人的有效许可。因安装、修改、使用本软件及其衍生物所造成的一切后果,需要你自行承担。
最后,致“南山必胜客”。你们作为中文互联网真正的顶流,希望能够以更高的水平,更公正的方式,让中国乃至世界的互联网发展得更加美好,而不是只会反复依靠国家机器,施加着不对等的制裁。窝里横很自豪吗?我言尽于此。
- extension of os, print
- sys.log, nLog
- screen, image
- touch, key, accelerometer
- sys, device
- pasteboard, proc
- app
- thread
- extension of table, string
- http, ftp
- json, plist, file
- utils
- other extensions
- dialog, webview
- clear
- xpp, xui
-
alert
, Automation module forUIAlertViewController
. -
appstore
, Automation module forAuthKit
. -
monkey
, Automation module forWKWebView
. -
cookies
-
samba
- Full Featured Recording
- Full Featured App
- OpenAPI
- Startup Script
- Daemon Mode
- OCR Support (Provided by Apple’s
Vision.framework
) - Template Matching (Provided by
OpenCV
) - Activator Support
$ ls /usr/local/include/lib*
libdeviceconfigurator.h libsupervisor.h
libprocqueue.h libtfcontainermanager.h
libscreencapture.h libtfcookiesmanager.h
libsimulatetouch.h libauthpolicy.h
- Legacy XXTouch
- TouchSprite (触动精灵协议)
- TouchElf & Cloud API (触摸精灵及其云控协议)
- VSCode
- LuaPanda
- XXTouch-VSCode-Debugger
- VSCode
- XXTouch-VSCode-Plugin
- iOS 13 or 14
- Jailbreak it with unc0ver or checkra1n
- Install dependencies with your favorite package manager
ssh-copy-id
- Xcode 12 (required)
- VSCode (recommended)
$ xcode-select -p
/Applications/Xcode-12.5.1.app/Contents/Developer
- Install theos with its submodules
$ ls ~/theos
CODE_OF_CONDUCT.md bin makefiles templates
LICENSE.md extras mod toolchain
Prefix.pch include package.json vendor
README.md lib sdks
$ ls ~/theos/sdks | wc -l
16
$ ls ~/theos/vendor/include | wc -l
110
- IMPORTANT: Remove
~/theos/vendor/include/openssl
because we shipped another version of OpenSSL with this repo - IMPORTANT: Edit
~/theos/makefiles/common.mk
, then append a new lineexport THEOS_OBJ_DIR
here:
ifeq ($(THEOS_CURRENT_ARCH),)
THEOS_OBJ_DIR = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)
else
THEOS_OBJ_DIR = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/$(THEOS_CURRENT_ARCH)
endif
export THEOS_OBJ_DIR # <- append this line
- Edit your
~/.zshrc
and ensureTHEOS_DEVICE_IP
is set
$ env
THEOS=$HOME/theos
THEOS_DEVICE_IP=192.168.2.151
You need to git clone
this repo instead of download a zipped archive of it!
$ git lfs install # if you do not have Git LFS yet
$ git clone --recursive git@github.com:XXTouchNG/XXTouchNG.git
$ make
$ make package
$ make install
$ make do
To build a final release, you need to:
- Clone and configure XXTExplorer in Xcode
- Prepare a valid
Apple Development
orDeveloper ID
certificate - Edit
Makefile
and setTARGET_CODESIGN_CERT
to your certificate - Run following commands:
$ make explorer FINALPACKAGE=1
$ make package FINALPACKAGE=1
XXTouchNG uses codes from many open-source projects. Part of them were listed in submodules.
See LICENSE.