用逍遥模拟器 按键精灵灵写一些对某个软件模拟手工点击的操作是属于违法吗

12:17:09 UTC
先上图绿色部分是N个按钮,点击任意一个按钮会变成红色
下面上主要的代码- (void)viewDidLoad{
[super viewDidLoad];
IOHIDEventQueueRef queue = IOHIDEventQueueCreate(kCFAllocatorDefault, 1, 14);
IOHIDEventQueueSetNotificationPort(queue, [self getPort]);
IOHIDEventQueueEnqueue(queue, [self getdownEvent]);
IOHIDEventQueueEnqueue(queue, [self getupEvent]);}
- (mach_port_t)getPort{
void *IOKit = dlopen("/System/Library/Frameworks/IOKit.framework/IOKit", RTLD_NOW);
if (IOKit)
mach_port_t *kIOMasterPortDefault = dlsym(IOKit, "kIOMasterPortDefault");
CFMutableDictionaryRef (*IOServiceMatching)(const char *name) = dlsym(IOKit, "IOServiceMatching");
mach_port_t (*IOServiceGetMatchingService)(mach_port_t masterPort, CFDictionaryRef matching) = dlsym(IOKit, "IOServiceGetMatchingService");
CFTypeRef (*IORegistryEntryCreateCFProperty)(mach_port_t entry, CFStringRef key, CFAllocatorRef allocator, uint32_t options) = dlsym(IOKit, "IORegistryEntryCreateCFProperty");
kern_return_t (*IOObjectRelease)(mach_port_t object) = dlsym(IOKit, "IOObjectRelease");
if (kIOMasterPortDefault && IOServiceGetMatchingService && IORegistryEntryCreateCFProperty && IOObjectRelease)
mach_port_t platformExpertDevice = IOServiceGetMatchingService(*kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice"));
return platformExpertD
dlclose(IOKit);
- (IOHIDEventRef)getdownEvent{
uint64_t abTime = mach_absolute_time();
AbsoluteTime timeStamp = *(AbsoluteTime *) &abT
//iOS6 kIOHIDDigitizerTransducerTypeHand == 35
//iOS7 kIOHIDTransducerTypeHand == 3
IOHIDEventRef handEvent = IOHIDEventCreateDigitizerEvent(kCFAllocatorDefault, timeStamp, kIOHIDTransducerTypeHand, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
//Got on iOS7.
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldDigitizerDisplayIntegrated, 1, -); //-
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldBuiltIn, 1, -); //-
int handEventMask = 0;
int handEventTouch = 0;
CGFloat rX = 50;
CGFloat rY = 50;
IOHIDEventRef fingerEvent = IOHIDEventCreateDigitizerFingerEventWithQuality(kCFAllocatorDefault, timeStamp,
1, 2, kIOHIDDigitizerEventRange | kIOHIDDigitizerEventTouch, rX, rY, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0);
IOHIDEventAppendEvent(handEvent, fingerEvent);
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldDigitizerEventMask, handEventMask, -);
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldDigitizerRange, handEventTouch, -);
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldDigitizerTouch, handEventTouch, -);
return handE
- (IOHIDEventRef)getupEvent{
uint64_t abTime = mach_absolute_time();
AbsoluteTime timeStamp = *(AbsoluteTime *) &abT
//iOS6 kIOHIDDigitizerTransducerTypeHand == 35
//iOS7 kIOHIDTransducerTypeHand == 3
IOHIDEventRef handEvent = IOHIDEventCreateDigitizerEvent(kCFAllocatorDefault, timeStamp, kIOHIDTransducerTypeHand, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
//Got on iOS7.
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldDigitizerDisplayIntegrated, 1, -); //-
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldBuiltIn, 1, -); //-
int handEventMask = 0;
int handEventTouch = 0;
CGFloat rX = 50;
CGFloat rY = 50;
IOHIDEventRef fingerEvent = IOHIDEventCreateDigitizerFingerEventWithQuality(kCFAllocatorDefault, timeStamp,
1, 2, kIOHIDDigitizerEventRange | kIOHIDDigitizerEventTouch, rX, rY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
IOHIDEventAppendEvent(handEvent, fingerEvent);
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldDigitizerEventMask, handEventMask, -);
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldDigitizerRange, handEventTouch, -);
IOHIDEventSetIntegerValueWithOptions(handEvent, kIOHIDEventFieldDigitizerTouch, handEventTouch, -);
return handE
程序运行以后没有崩溃,但是也没有任何反应…viewDidLoad里的代码是我自己看H文件找出来的,我也不知道这几句能不能把event发送出去…getPort方法是在google找的,能返回一个5位数字,这应该是成功获取到port了吧?生成evet的方法是参照SimulateTouch的源码写的,一头雾水哎…路过的大神指点一下吧,就想实现个模拟点击,折腾了快俩月了,完全没头绪
15:20:50 UTC
我没做过这玩意儿啊。我觉得你decache一下IOKit逆向可能能找到问题在哪或者写封邮件给simulatetouch作者问问
01:44:16 UTC
试试这个吧:
03:41:04 UTC
模拟点击使用UIAutomation不是更好。
04:14:20 UTC
论坛里搜SimulateTouch
05:58:15 UTC
snakeninny:
SimulateTouch
这个帖子我两个月前就看过啦,当时试过并不好用,貌似SimulateTouch并不支持iOS8?
06:00:17 UTC
UIAutomation必须要有程序源码才行吧?我最终是想在Tweak中使用模拟点击
06:06:59 UTC
这库支持iOS8
但是在iPhone6/6+上有问题
上他的源码: static void SendTouchesEvent(mach_port_t port) {
float factor = 1.0f;
if (width == 640 || width == 1536) factor = 2.0f;
rX = x/width*
rY = y/height*
如上源代码,这货居然把factor写死了,死了,了。。。。 因此在旧设备上没问题,在width非640的设备上就有问题咯
06:16:07 UTC
有空我再多试试吧其实上次试了好多次都没成功,我用的openDEV我也试过改SimulateTouch.mm这个文件,但是总编译错误Undefined symbols for architecture x86_64:
"_IOHIDEventSetSenderID", referenced from:
SendTouchesEvent(unsigned int) in TouchMM.o
SendHIDEvent(__IOHIDEvent*) in TouchMM.o
"_IOHIDEventSystemClientCreate", referenced from:
SendHIDEvent(__IOHIDEvent*) in TouchMM.o
"_IOHIDEventSystemClientDispatchEvent", referenced from:
SendHIDEvent(__IOHIDEvent*) in TouchMM.o
"_MSHookFunction", referenced from:
void MSHookFunctionIOHIDEventSystem*, void ()(void, void*, __IOHIDService*, __IOHIDEvent*), void*, void*, void*)&(unsigned char (*)(IOHIDEventSystem*, void ()(void, void*, __IOHIDService*, __IOHIDEvent*), void*, void*, void*), unsigned char ()(___IOHIDEventSystem, void ()(void, void*, __IOHIDService*, __IOHIDEvent*), void*, void*, void*), unsigned char (*)(___IOHIDEventSystem, void ()(void, void*, __IOHIDService*, __IOHIDEvent*), void*, void*, void*)) in TouchMM.o
"rocketbootstrapcfmessageportexposelocal", referenced from:
_MSInitialize() in TouchMM.old: symbol(s) not found for architecture x86_64clang: error: linker command failed with exit code 1 (use -v to see invocation)
08:13:15 UTC
……IOKit……不行dlsym大法
02:13:49 UTC
新开的贴被锁啦,我想的是新开一贴会方便以后的人查找...在这里重发一遍
自己写按键精灵——用SimulateTouch模拟点击及滑动刚才按照这个帖子的步骤又搞了一遍:先新建了个tool工程
把libsimulatetouch.dylib和SimulateTouch.h放在了对应的位置
makefile文件就改了一下target的版本号
main.mm文件就不截图了,一模一样复制的...
make以后多了个文件夹
ssh到手机 touch 6 6没有点击备忘录的返回按钮
不知道是哪一步做的不对哇
03:14:32 UTC
你命令里的touch是哪里来的?
03:15:57 UTC
我也不太清楚啊,这方面真的不懂,完全是按教程一步一步做
07:05:12 UTC
我把手机里我自己写的插件都删了 但是这个touch命令还是存在 好奇怪啊有什么办法能查一下这个命令的来源么?
10:22:16 UTC
好像是ST包里自带的
10:25:15 UTC
我把手机里的SimulateTouch插件删了 还是有这个命令
10:43:18 UTC
dpkg -S 绝对路径? 我这也没越狱设备
10:50:19 UTC
好像手机里也没什么跟touch相关的东西了
12:08:59 UTC
这是GNU Utils里的touch,不是你要的那种意思 他这一查我确认了,这个是gnu基础包里的那个。最简单的用法:
touch README.md
创建一个名为README.md的空白文件
16:00:15 UTC
确实是,我竟然米有想到……安卓按键精灵引流软件制作难不难?-学路网-学习路上 有我相伴
安卓按键精灵引流软件制作难不难?
来源:互联网 &责任编辑:小易 &
网友碰到这么一个问题:安卓按键精灵引流软件制作难不难?,系统通过互联网整理(主要来自百度知道、sogou问问、知乎、360问答等平台)获得以下解决方法,供碰到同样问题的网友参考:答:不属于的,按键精灵是合法的,它的原理就是模拟人工操作的程序,随便给你说说我操作脚本的经验吧: 脚本就是一种代替人工操作的程序软件 多去了解一下你需要的群体都有什么特征 找一些同行的话术案列多看看学习一下别人做的好的地方 辅助脚本要...
本文相关:
- Copyright & 2018 www.xue63.com All Rights Reserved查看: 6856|回复: 15
易语言实现像按键精灵那样多模拟器操作
阅读权限165
签到天数:13 天结帖率: (122/184)
本帖最后由 帝释天2017 于
21:47 编辑
因为我看见按键精灵做的脚本,可以在多个模拟器依附了一个小插件,多个模拟器里都可以互不干扰的操作。
觉得不适合这么搞,单独一个模拟器操作就没问题,主要是多模拟器互相不干扰操作的话就难了。有比较熟的朋友希望可以发表下意见,交流一番
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,QQ: ,邮箱:@b.qq.com
Powered by
X3.2 揭阳市揭东区精易科技有限公司
粤公网安备 25鍥炲?锛氬ぇ瀹跺揩鏉ワ紝鍙戠幇涓

我要回帖

更多关于 按键精灵 模拟器 的文章

 

随机推荐