清新 发表于 2018-10-30 00:02

iOS非越狱开发(五)62数据登录与接口参数获取

本帖最后由 清新 于 2018-10-30 15:17 编辑


:lol这是非越狱开发教程里面的最后一章,我会尽可能的详细,如果感觉不详细请移步观看前面几章内容。


一共五篇文章讲解:
一:非越狱开发工具安装
二:WeChat登录页面,第三方框架使用以及CocoaPod安装
三:非越狱应用网络传输,应用结构分析,如何快速找到方法和类以及如何使用框架
四:WeChat消息获取,抢红包以及一些常用的功能增加以及修改
五:WeChat 62数据登录实现,获取接口数据,获取接口参数,接口调用,并且传到服务器
如果喜欢看的人多就再发一篇游戏数据破解以及游戏内置辅助如何实现以及原理附带demo

什么是62数据,因为数据包里面开头是62开头的,所以他们就叫62数据,我的理解是免验证登录数据
通过微信加密以及传递设备信息与当前设备相匹配,得到62数据,在这之前我们说说微信的验证,微信中
有一个文件来管理是否是越狱设备,是否设备与当前数据符合,普通的做法是通过API查看手机设备中是否
包含了越狱插件,以及设备的登录环境,还有就是手机设备环境中是否包含了其他一些未知的东西,一般情况
下是这么判断的,当我们知道是如何判断的时候我们就可以做到很多事情了,跳过环境验证?这个不可取,如果
跳过的话微信那边假如做了环境必须传的判断,那么肯定就是越狱了,还有就是考虑在其他文件中进行一些判断
,或者多文件判断,在本地文件中判断是不是有多出来的东西,但是这个就有点消耗时间了,这个就等于一个暗桩
例如我们上面说到的微信运动计数,传的参数除了步数还有时间,微信就可能利用时间来看你是否是一个不正常的
步子,不可能前一秒钟只有20步,一下子就30000步了吧?所以在破解程序的时候我们需要考虑别人想到的,最好
要考虑到别人的前面,那样就可以免除很多东西了,不要因为使用而去使用。也行有点绕,但是懂了就明白我说什么
了。
好了现在开始,我们现在开始,在前面我们已经拿到了wechat里面的东西了,它的文件和name和id,因为我们这个
是在非越狱环境下开发的,所以我们的app不存在那么多的问题,当然也需要考虑进去,如name,wechat它会获取
,如果你是个盗版应用改了name,那么它肯定可以检测到的,我们需要在它检测的地方加入它自己的名称,然后进行判断
在这个里面,其实它又可以做一件事情,防止我们对程序的修改,当前的名称加上它自己自定义的名称,然后通过代码进行
加密,得到一个字符串,我们的话拿不到加密的字符串,这样就可以判断出来是否是越狱应用或者是非越狱修改过的应用,
如果要加密的话我们必须要使用汇编代码一步步解析出来,然后得到加密代码,然后自己进行加密,传递给服务器。


这个是上一次class-dump出来的头文件,我们需要做的事情是找到那个头文件,然后拿到加密数据,加密数据的话它肯定
是存在沙盒里面的,我们需要做的事情就是把沙盒里面的文件先遍历,然后得到文件,得到文件之后上传到服务器,这样
就可以拿到那一份62数据了,如果不知道写代码你也可以通过工具拿到62数据,得到之后我们如何上传呢?这里我们需要
从自己的服务器中把62数据给传下来,然后进行登录,但是这样肯定是登录不了的,因为设备是不同的,微信已经获取了,
所以我们还需要做一些事情,需要把设备保存起来,然后更改微信获取设备号的地方,然后我就可以登录了。我已经给你们
展示了插件,就可以通过插件传入62数据,但是在登录的时候我们必须得让微信的程序先不执行,导入了我们的数据点击了
才可以执行,不然也会出现错误,代码逻辑不要改他的,我们只需要改他的一些数据,它该怎么跑就怎么跑,我们只需要在
特定的地方修改东西。


好了我们先打开微信相关的文件,然后找到启动文件,这个总不需要我教你们了把,最开始的教程里面有
找到之后我们在上面创建一个按钮用来加载FLEX,具体的东西需要你们自己看看这控件的使用了,贴一个控件的代码上来,然后
其他的就你们自己修改了,我们需要在这个控件上面请求网络,加载62数据,调用62数据,控件组成就写一个按钮就可以了。例如:

{
"subheader":"欢迎使用Wechat插件",
"title":"Demo",
"items":[
{
"label":"开关",
"cell":"Group"
},
{
"defaults":"防广告嫌疑",
"cell":"Switch",
"label":"Enabled",
"key":"enabled",
"icon":"res/16.png",
"default":true
},
{
"label":"Button",
"cell":"Group"
},
{
"label":"打开Wiki文档",
"cell":"Link",
"url":"https://github.com/Lessica/XUI/wiki"
},
{
"cell":"Button",
"label":"显示链接",
"kwargs":[
""
],
"action":"OpenURL:"
},
{
"label":"Menu",
"cell":"Group"
},
{
"label":"Load another pane",
"cell":"Link",
"defaults":"防广告嫌疑",
"key":"datetime1",
"url":"防广告嫌疑"
},
{
"label":"Open an image",
"cell":"Link",
"url":"appicon.png"
},
{
"defaults":"防广告嫌疑",
"cell":"Option",
"label":"List of Options",
"options":[
{
"title":"Red, it's red!",
"shortTitle":"Red",
"value":"Red, it's red!"
},
{
"title":"Green, it's green!",
"shortTitle":"Green",
"value":"Green, it's green!"
},
{
"title":"Blue, great color!",
"shortTitle":"Blue",
"value":"Blue, great color!"
}
],
"key":"list-1",
"default":[
"Green, it's green!"
]
},
{
"maxCount":2,
"defaults":"防广告嫌疑",
"cell":"MultipleOption",
"label":"List of Multiple Options",
"options":[
{
"shortTitle":"Red, it's red!",
"title":"Red, it's red!",
"icon":"res/red.png",
"value":"Red, it's red!"
},
{
"shortTitle":"Green, it's green!",
"title":"Green, it's green!",
"icon":"res/green.png",
"value":"Green, it's green!"
},
{
"shortTitle":"Blue, great color!",
"title":"Blue, great color!",
"icon":"res/blue.png",
"value":"Blue, great color!"
}
],
"key":"list-2",
"default":[
"Red, it's red!",
"Green, it's green!"
]
},
{
"maxCount":2,
"defaults":"防广告嫌疑",
"cell":"OrderedOption",
"minCount":1,
"label":"List of Ordered Options",
"key":"list-3",
"options":[
{
"shortTitle":"Red",
"title":"Red",
"icon":"res/red.png",
"value":"Red"
},
{
"shortTitle":"Green",
"title":"Green",
"icon":"res/green.png",
"value":"Green"
},
{
"shortTitle":"Blue",
"title":"Blue",
"icon":"res/blue.png",
"value":"Blue"
}
],
"default":[
"Red"
]
},
{
"maxCount":10,
"defaults":"防广告嫌疑",
"cell":"EditableList",
"label":"Editable List",
"key":"list-4",
"default":[
"Default"
]
},
{
"label":"Segment",
"cell":"Group"
},
{
"defaults":"防广告嫌疑",
"cell":"Segment",
"label":"List of Options",
"options":[
{
"title":"Red",
"shortTitle":"Red",
"value":"Red"
},
{
"title":"Green",
"shortTitle":"Green",
"value":"Green"
},
{
"title":"Blue",
"shortTitle":"Blue",
"value":"Blue"
}
],
"key":"list-segment",
"default":"Green"
},
{
"maxCount":4,
"defaults":"防广告嫌疑",
"cell":"Checkbox",
"minCount":0,
"key":"checkbox1",
"alignment":"Justified",
"options":[
{
"value":"Red",
"title":"Red",
"shortTitle":"Red"
},
{
"value":"Green",
"title":"Green",
"shortTitle":"Green"
},
{
"value":"Blue",
"title":"Blue",
"shortTitle":"Blue"
},
{
"title":"Yellow",
"shortTitle":"Yellow",
"value":"Yellow"
},
{
"title":"Purple",
"shortTitle":"Purple",
"value":"Purple"
},
{
"title":"Black",
"shortTitle":"Black",
"value":"Black"
},
{
"title":"White",
"shortTitle":"White",
"value":"White"
}
],
"default":[
"Red",
"Green"
]
},
{
"cell":"Radio",
"options":[
{
"title":"First",
"shortTitle":"First",
"value":"First"
},
{
"title":"Second",
"shortTitle":"Second",
"value":"Second"
},
{
"title":"Third",
"shortTitle":"Third",
"value":"Third"
},
{
"title":"Fourth",
"shortTitle":"Fourth",
"value":"Fourth"
},
{
"title":"Fifth, please!",
"shortTitle":"Fifth, please!",
"value":"Fifth, please!"
},
{
"title":"Zero",
"shortTitle":"Zero",
"value":"Zero"
}
],
"defaults":"防广告嫌疑",
"default":"Fifth, please!",
"key":"radio"
},
{
"label":"Number",
"cell":"Group"
},
{
"showValue":true,
"min":1,
"defaults":"防广告嫌疑",
"cell":"Slider",
"label":"Slider",
"max":10,
"key":"slider",
"default":5
},
{
"label":"Stepper",
"min":1,
"defaults":"防广告嫌疑",
"autoRepeat":true,
"cell":"Stepper",
"key":"stepper",
"step":1,
"max":10,
"isInteger":true,
"default":5
},
{
"footerText":"This is the footer text of this section.",
"cell":"Group",
"label":"TextField"
},
{
"placeholder":"Enter the username",
"keyboard":"Default",
"defaults":"防广告嫌疑",
"cell":"TextField",
"key":"username",
"default":""
},
{
"placeholder":"Enter the password",
"keyboard":"Alphabet",
"defaults":"防广告嫌疑",
"cell":"TextField",
"key":"password",
"isSecure":true,
"default":""
},
{
"placeholder":"4 digits",
"keyboard":"NumberPad",
"defaults":"防广告嫌疑",
"cell":"TextField",
"label":"Number",
"key":"number",
"default":"",
"alignment":"Right",
"maxLength":4
},
{
"label":"StaticText",
"cell":"Group"
},
{
"label":"This specifier uses the label key as text content. Dynamic height of this cell is enabled.",
"cell":"StaticText"
}
],
"header":"功能界面"
}


这个只是一个例子,然后需要你们自己来修改,然后编辑一下,没必要的代码都可以删除了,这份代码主要是用来加载控件

它根据名称创建控件,例如lable,这个就是一个文本框,button那么相应的就是按钮了
我们需要做的事情就是监听按钮点击世界,然后把62数据从服务器下载下来,然后登录,并且模拟
修改一些参数配置文件
XM这个文件用来写东西再好不过了,可以创建一个控件放到keywindow上面,这样就可以全局显示了
当然你也可以在登录的地方进行修改,如果创建全局的你也可以逆向wx,然后得到它多微信登录的地方
自己实现,同时同步的登录在手机上,也就是说一个手机同时登录两个号,这个可能需要做一些处理,逻辑
上面其实是不复杂的,只需要调用,然后做一些其他的操作
%hook FindFriendEntryViewController

- (void)viewDidLoad {
%orig;
UIBarButtonItem *tweakItem = [ initWithTitle:@"   插件" style:UIBarButtonItemStylePlain target:self action:@selector(tweakItemTapped:)];
} forState:UIControlStateNormal];
self.navigationItem.leftBarButtonItem = tweakItem; // 设置界面导航栏左上角按钮
}
%new
- (void)tweakItemTapped:(id)sender {
NSString *bundlePath = [ pathForResource:@"WeChat" ofType:@"bundle"];
NSString *xuiPath = [ pathForResource:@"interface" ofType:@"json"];
;
}

%end

例如上面代码我就是使用xm写的,然后直接跳转到插件页面就可以了。
至于如何找62数据我也先说说方法,然后在贴代码,62数据我们知道是存在手机上面的,我们可以根据
app存下来的东西进行解析,然后得到这个数据,把沙盒中的内容全都遍历出来,找到文件名字,然后获取
文件路径,获取到之后就传到服务器上面,这个应该懂了把,假如不知道在哪个目录,我们可以全都遍历
了,缓存,用户文件,配置文件等等。这样我们就可以通过服务器把62数据给拿到了,你可以根据我的思路先试着用一下,如果不行就过来看代码把。
接下来我们要做的事情是找文件和接口数据,接口数据的话这个就简单很多了,我们可以直接hook系统中的方法,使用runtime获取等等方法,我们从最麻烦的开始,就是一个个找文件,看微信网络请求是在哪一个类中,这样就可以找到网络请求的url和参数了,假如做了证书的判断,那么也好解决,微信压缩包解压
解压之后我们得到了很大的文件,我们直接使用微信的证书文件,当然消息传递肯定是加密了的,那么我
们可以通过逆向微信的方式找到加密代码,这是一个很大的工程,首先你需要会汇编,还需要对iOS非常熟悉。这个我们就不考虑了,我们就只需要拿到hook文件在哪就行了,打开微信的文件夹,开始寻找文件。
在微信文件中搜索BaseRequest,我们找到了大量的文件,然后根据前面的知识进行排除。


.......晚上继续






zyk8609 发表于 2018-11-7 17:51

正在找相关的学习资料呢
非常感谢楼主热心分享啊~
期待你发新的 关于 《游戏数据破解以及游戏内置辅助如何实现以及原理附带demo》 教学贴

好人呢 发表于 2018-10-30 00:17

大哥你会修改单机游戏吗

sxlovexy 发表于 2018-10-30 00:28

大佬itouch4能弄么6.1.6系统

xin521 发表于 2018-10-30 00:53

这是非越狱开发教

bb939232907 发表于 2018-10-30 06:27

谢谢分享,从前是搞正向开发的

phenfun 发表于 2018-10-30 07:30

感谢 热心 分享!!!

xiaowanzi52 发表于 2018-10-30 08:06

你这么优秀,别人可怎么过 ?

总有刁民想约朕 发表于 2018-10-30 09:01

感谢分享

洛璃 发表于 2018-10-30 09:57

神一样啲男人 发表于 2018-10-30 11:18

{:1_893:}666{:17_1069:}感谢分享
页: [1] 2 3 4 5
查看完整版本: iOS非越狱开发(五)62数据登录与接口参数获取