第二次写Tweak,破解微商软件
在网上看到一款微商软件,用于生成对话和金额充值、提现等。软件名就不方便透露了,软件截图如下
软件功能大致如上,作图(微商神器吧,普通人也可以装装逼),图3中间的水印是软件自带的,虽然软件提供了注册可以去掉水印的功能,但是作为程序猿肯定不愿意用这种方式来去掉水印啊
开工
分析阶段
- 刚下载下来的时候,没打算写Tweak来去除这个水印,打算用Flex3来做的,我使用后发现只有在聊天界面中才会出现这个水印,头脑里的第一想法就是应该是在聊天控制器的基类中的
viewDidDisappear
和viewWillAppear
中判断是否注册然后来显示水印,然后有了想法就开始动手了,因为这2个函数都是没有返回值的,所以用Flex3貌似做不了了(如果有大神有方法还请指点)
动手阶段
- 开工写Tweak,初始化这些工作我就不截图了,可以去看我之前的文章第一次写Tweak,走进iOS逆向的世界都有详细介绍,根据我刚刚的思路,应该是在基类中的周期方法里加的判断,但是手机上我没法通过FLEX查看到基类(可能是我还不太熟悉使用),然后我就直接找到了聊天控制器,我想的是反正我hook了当前的聊天控制器,我不写super就行了,就没有父类的判断了呗!
Tweak.xm中的代码如下
%hook SDChatTableViewController
- (void)viewWillAppear:(BOOL)animated {
}
- (void)viewDidDisappear:(BOOL)animated {
}
%end
哗啦啦写完后make package
,把deb装到手机上,打开软件,尼玛,和想好的不对呢,水印还在呢!神马情况,难道我的思路错了?好吧,接下来的事实确实证明我错了,接下来认真点了.
二次开工
-
这次直接还是用电脑开工,首先使用Reveal看了下布局,布局如下图
果然一看这层次结构就知道自己刚刚的想法应该是错了,是直接在Window上添加了个ImageView,可能是有个工具类吧,然后直接使用Clutch敲壳,Class-dump导出头文件,这些操作我之前文章有写,不会的可以去看一下,导出了头文件,在头文件里找到自己想要的又是个难题了,首先我打开了我之前想的那个聊天控制器,找了一圈,加上找基类,确实没有找到有相关设置水印的方法,然后使用搜索功能在所有的头文件里搜索walletmark
可惜的是,没有相关的方法,然后灵机一动搜索shuiyin
既然这个方法都摆在这了,那还有什么说的,直接开始写Tweak了呗
%hook WindowManager
+ (void)addShuiyin {
}
%end
make package
走起,安装deb,然后打开软件,打开聊天窗口,见证奇迹的时候到了
水印消失了,就是这么简单.
在使用中发现我的钱包页面导航栏是黑色的,但导航栏的文字也是黑色的,根本看不清,然后打开Tweak.xm
哗哗的再写2行代码
%hook AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
%orig;
return YES;
}
%end
然后再打包deb安装,导航栏也白了,收工。
这次写的东西也很简单,没有什么技术含量,算是入门的小练习吧,其实主要是思路,方法很简单,如果文中有什么错误,还请大家指出!如果有不懂的,可以留言!