第二次写Tweak,去除微商软件水印

第二次写Tweak,破解微商软件

在网上看到一款微商软件,用于生成对话和金额充值、提现等。软件名就不方便透露了,软件截图如下


第二次写Tweak,去除微商软件水印_第1张图片
第二次写Tweak,去除微商软件水印_第2张图片
第二次写Tweak,去除微商软件水印_第3张图片
第二次写Tweak,去除微商软件水印_第4张图片

软件功能大致如上,作图(微商神器吧,普通人也可以装装逼),图3中间的水印是软件自带的,虽然软件提供了注册可以去掉水印的功能,但是作为程序猿肯定不愿意用这种方式来去掉水印啊

第二次写Tweak,去除微商软件水印_第5张图片

开工

分析阶段

  • 刚下载下来的时候,没打算写Tweak来去除这个水印,打算用Flex3来做的,我使用后发现只有在聊天界面中才会出现这个水印,头脑里的第一想法就是应该是在聊天控制器的基类中的viewDidDisappearviewWillAppear中判断是否注册然后来显示水印,然后有了想法就开始动手了,因为这2个函数都是没有返回值的,所以用Flex3貌似做不了了(如果有大神有方法还请指点)

动手阶段

  • 开工写Tweak,初始化这些工作我就不截图了,可以去看我之前的文章第一次写Tweak,走进iOS逆向的世界都有详细介绍,根据我刚刚的思路,应该是在基类中的周期方法里加的判断,但是手机上我没法通过FLEX查看到基类(可能是我还不太熟悉使用),然后我就直接找到了聊天控制器,我想的是反正我hook了当前的聊天控制器,我不写super就行了,就没有父类的判断了呗!

Tweak.xm中的代码如下

%hook SDChatTableViewController

- (void)viewWillAppear:(BOOL)animated {
    
}

- (void)viewDidDisappear:(BOOL)animated {
    
}

%end

哗啦啦写完后make package,把deb装到手机上,打开软件,尼玛,和想好的不对呢,水印还在呢!神马情况,难道我的思路错了?好吧,接下来的事实确实证明我错了,接下来认真点了.

第二次写Tweak,去除微商软件水印_第6张图片

二次开工

  • 这次直接还是用电脑开工,首先使用Reveal看了下布局,布局如下图

    第二次写Tweak,去除微商软件水印_第7张图片

    果然一看这层次结构就知道自己刚刚的想法应该是错了,是直接在Window上添加了个ImageView,可能是有个工具类吧,然后直接使用Clutch敲壳,Class-dump导出头文件,这些操作我之前文章有写,不会的可以去看一下,导出了头文件,在头文件里找到自己想要的又是个难题了,首先我打开了我之前想的那个聊天控制器,找了一圈,加上找基类,确实没有找到有相关设置水印的方法,然后使用搜索功能在所有的头文件里搜索walletmark可惜的是,没有相关的方法,然后灵机一动搜索shuiyin
    第二次写Tweak,去除微商软件水印_第8张图片

    第二次写Tweak,去除微商软件水印_第9张图片

  • 既然这个方法都摆在这了,那还有什么说的,直接开始写Tweak了呗

%hook WindowManager

+ (void)addShuiyin {
    
}

%end

make package走起,安装deb,然后打开软件,打开聊天窗口,见证奇迹的时候到了

第二次写Tweak,去除微商软件水印_第10张图片

水印消失了,就是这么简单.

在使用中发现我的钱包页面导航栏是黑色的,但导航栏的文字也是黑色的,根本看不清,然后打开Tweak.xm哗哗的再写2行代码

%hook AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    %orig;
    return YES;
}

%end

然后再打包deb安装,导航栏也白了,收工。

这次写的东西也很简单,没有什么技术含量,算是入门的小练习吧,其实主要是思路,方法很简单,如果文中有什么错误,还请大家指出!如果有不懂的,可以留言!

你可能感兴趣的:(第二次写Tweak,去除微商软件水印)