吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6334|回复: 17
收起左侧

[iOS 原创] iOS非越狱开发(四)重构项目篇

  [复制链接]
清新 发表于 2018-10-11 11:57
本帖最后由 清新 于 2018-10-11 12:02 编辑

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

不好意思,前面第一章有个地方,写错了,已经改过来了,就是class-dump那,mz135135 说dump不出,我看了下,写错了,欢迎大家
指出错误。
好了接下来我们说说第四章把,WeChat消息获取,抢红包,和功能增加修改,还有就是这一章是一个总结第一到第四的总章。
前面都是教大家如何使用,这个最后一章,我们把自己的代码重新构造一遍,不然有些难看,我会教大家在微信中添加一个按钮,然后进行修改
就不用以前那么麻烦了。至于找的方法,前面几章已经详细说过了,如果你有越狱手机的话,就更加容易找了,但是越狱这方面的我就不说了,学懂了这个
你弄越狱开发也会简单很多很多,第五章可能晚点更新,而且看的人多我再发吧,我看了消息,貌似对62数据感兴趣的不是一点点~,我也不知道你们想
拿来干什么,还有一些奇奇怪怪的需求,但是我就不弄了,毕竟它是一个教程。
现在我们开始第四章,先打开xcode建立一个工程,名字WeChatExtension,不会建立的你们先看看前面的文章,前面我都写好了
在WeChatExtensionDylib新建几个文件夹,WeChatConfig,WeChatHeader,WeChatHook。
WeChatConfig中存放配置,用来传递值
WeChatHeader中存放WeChat函数方法或者属性
WeChatHook中存放hook文件
A5B8057E-8B72-409C-AC81-83C09BDCEB8C.png
文件存放如上图所示
现在我们开始编写WeChatConfig.h里面的内容,我们需要做哪些事情事先要想明白
[Objective-C] 纯文本查看 复制代码
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>

[url=home.php?mod=space&uid=593715]@interface[/url] WeChatConfig : NSObject

- (void)setStepCount:(NSInteger)step;
@end

上面代码修改运动步数,是否开启自动抢红包,是否开启消息防撤回功能.m文件中内容
[Objective-C] 纯文本查看 复制代码
#import "WeChatConfig.h"

@implementation WeChatConfig

- (void)setStepCount:(NSInteger)step{
}
@end

这上面的代码全都是用来传递值,然后进行下一步WeChatPluginConfig.h
[Objective-C] 纯文本查看 复制代码
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>

[url=home.php?mod=space&uid=341152]@Class[/url] WeChatPluginConfig;
//(extern)iOS外部常量,也就是说我们可以直接在外面直接使用
extern WeChatPluginConfig* pluginConfig; 

@interface WeChatPluginConfig : NSObject

+(WeChatPluginConfig*)sharedInstance;


@property(nonatomic, assign) NSInteger stepCount;//运动步数

@end


WeChatPluginConfig.m文件中内容
[Objective-C] 纯文本查看 复制代码
#import "WeChatPluginConfig.h"
#import <CaptainHook.h>

WeChatPluginConfig* pluginConfig = nil;

@implementation WeChatPluginConfig

+(WeChatPluginConfig *)sharedInstance{
    static id sharedInstance;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedInstance = [self new];
    });
    return sharedInstance;
}

- (instancetype)init
{
    self = [super init];
    if (self) {
        _stepCount = 0;
    }
    return self;
}

@end

//构造函数
CHConstructor{
    pluginConfig = [WeChatPluginConfig sharedInstance];
}



好了这里写完了,我们回到WeChatConfig文件中把内容完善
[Objective-C] 纯文本查看 复制代码
#import "WeChatConfig.h"
#import "WeChatPluginConfig.h"

@implementation WeChatConfig

- (void)setStepCount:(NSInteger)step{
    [pluginConfig setStepCount:step];

} 
@end



现在我们写WeChatStepHook.m中的内容,这里只需要新建一个.m文件,如上图所示
[Objective-C] 纯文本查看 复制代码
#import <Foundation/Foundation.h>
#import <CaptainHook.h>
#import "WeChatPluginConfig.h"

CHDeclareClass(WCDeviceStepObject)
CHOptimizedMethod0(self, unsigned int, WCDeviceStepObject, m7StepCount){

    //返回类型unsigned int
    return (unsigned int)pluginConfig.stepCount;
}

CHConstructor{

    CHLoadLateClass(WCDeviceStepObject);
    CHHook0(WCDeviceStepObject,m7StepCount);
}

这样我们就把运动步数修改基本上写好了,然后我们到WeChatExtensionDylib.h文件中使用
先把所有东西都引入进来
[Objective-C] 纯文本查看 复制代码
#import <Foundation/Foundation.h>

#import "WeChatConfig.h"

然后在.m文件中使用,引入WeChatConfig.h文件,如果出现引入导致的错误,你就把所有文件引入进来
好了,现在我们写一下.m文件中的代码
[Objective-C] 纯文本查看 复制代码
#import "WeChatExtensionDylib.h"
#import <CaptainHook/CaptainHook.h>
#import <UIKit/UIKit.h>
#import <Cycript/Cycript.h>
#import <MDCycriptManager.h>

#define INSERT_SUCCESS_WELCOME @"\n               &#127881;!!!congratulations!!!&#127881;\n&#128077;----------------insert dylib success----------------&#128077;"

CHConstructor{
    NSLog(INSERT_SUCCESS_WELCOME);
    
    [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
        
        WeChatConfig * config = [[WeChatConfig alloc]init];
        [config setStepCount:2018];
        
    }];
}


你只需要在通知下面调用WeChatConfig,然后传入值就可以了,是不是比先前的代码简单明了多了?还有就是
想要修改步数你只需要添加一个控件,然后输入文本框,获得文本里面的值,放到setStepCount中,点击进入微信运动
运动步数就修改了,代码已经重新构建好了,然后下一篇我们就开始写抢红包,消息打印,消息防撤回功能了以及为微信
添加一个按钮然后跳转页面控制是否抢红包,是否开启消息防撤回,消息打印。


ps:感觉写这种文章好难,打字要打好多,对于我来说太难了,本来几行代码可以解决的事情,写出来没想到就这么多了,后
面的文章我会更新慢一点,整理成一个word文档,因为后面的东西太多了,还需要每一个步骤都需要写明白,基本你看了所有
文章,现在写这些东西你都会写了,但是为了更加容易理解下一篇文章我会把demo放上来加上注释,你只需要在我原有的模版
上写代码就OK了,还有就是自己多练练就对技术上提高有帮助了,这些东西都是非常基础的,网络上面教程也很多,只是没有这么
详细,还有就是工程中的logos文件里面的写法你也可以尝试一下,只能告诉你它很强大,但是用它来写教程实在是要打太多字了,
如果前面的文章都会了,掌握的不错,你也可以试试越狱开发,都是换汤不换水的,掌握了其中的一个怎么编写你就知道了,其他的
都是一些工具上的利用,好了就到这里了,后面的东西我慢慢更新,前面的这几篇都很容易,后面的写东西太麻烦,我写这么多你不会
相信我其实弄了3个小时。


祝你玩的愉快!












免费评分

参与人数 12吾爱币 +13 热心值 +11 收起 理由
wy0515 + 1 + 1 学习!
mz135135 + 2 + 1 期待楼主的下一次更新。放大招吧
非己非人 + 1 + 1 谢谢@Thanks!
78765403 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wjy515400 + 1 + 1 谢谢@Thanks!
dengwenjie + 1 + 1 谢谢@Thanks!
miracles + 1 + 1 谢谢@Thanks!
lookerJ + 1 热心回复!
砼小砼 + 1 + 1 牛逼
553429363 + 1 + 1 优秀优秀 每天都关注你哦
876704221 + 1 + 1 用心讨论,共获提升!
isbus + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kwok0125 发表于 2019-2-28 18:42
[url=home.php?mod=space&uid=341152]  这行代码是什么含义  只有有这行代码的地方全都报错
折猫科技 发表于 2018-10-11 12:31
明歌 发表于 2018-10-11 12:54
希望统一整理好教程,目前是用flex3修改达到微信修改的目的.关注IOS逆向!
waimn 发表于 2018-10-11 16:33
没看懂!!帮顶
强杰杰 发表于 2018-10-11 19:11
期待游戏修改
y294945022 发表于 2018-10-11 19:42
和之前一样,顶一个
头像被屏蔽
亂爱 发表于 2018-10-11 21:15
提示: 作者被禁止或删除 内容自动屏蔽
angustung 发表于 2018-10-11 22:22
很好很强大
wjy515400 发表于 2018-10-12 08:38
IOS的教程真的不多,感谢分享
gm188 发表于 2018-10-12 16:20
期待游戏修改,尤其是网络联机游戏或内购方面。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 03:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表