iOS开发iOS猛码计划iOS备忘录

iOS 善意破解简书APP(非越狱篇)实现一键点赞

2016-05-03  本文已影响8959人  叫我余温好了
真机运行简书APP效果

说明: 本文没有任何搞破坏实质,网上逆向文章极少,希望借助简书APP来向初学者打开逆向开发的神秘面纱! 如果觉得还可以, 请留赞!

我想有一部分人想要知道或者说不知道达到上图最终效果我们需要会什么知识和需要有什么工具, 在这里我只说工具名和需要掌握的知识, 至于每个工具的用途和使用谷歌一定比我阐述的好! (我的上篇文章也会对你有所帮助)

准备工作:


只需要完成以上6项准备工作你就可以很6了, 一步一步达到目的!

开始干活:


"拿过来"已经砸好的简书ipa解包, 没有的去我的github下载, "掏出"class-dump导出app的所有头文件, 命令和效果如下:

class-dump -H Hugo.app -o Hugo-Header

这样我们就会看到当前目录下会多一个Hugo-Header文件夹,里面是app所有的头文件.(小技巧, 把文件夹放到Xcode中查找方法更方便)

app头文件

在终端运行命令创建Tweak工程

/opt/theos/bin/nic.pl
工程创建详细步骤

我们会看到目录中新增的文件夹就是此工程, 对于各个文件是干什么的, 相信你谷歌了Theos, tweak后就知道答案了! 我们只需要对Makefile和Tweak.xm编码


工程文件夹

我们找到 HGNoteViewController.h 中的 - (void)likeNote;方法, 这个就是点赞(简书叫做喜欢)调用的方法了, .xm核心代码如下:

static HGNoteViewController *vc = nil;
static  NSMutableSet *mSet = [NSMutableSet setWithCapacity:1];
- (void)buttonClicked:(UIButton *)btn
{

NSArray *arr = [mSet allObjects];
for (int i = 0; i < arr.count; i++) {

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)((i+1) * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
HGNote *no = arr[i];
vc.currentNote._id = no._id;

self.label.text = [NSString stringWithFormat:@"点赞中...\n为作者: %@\n文章名: %@...\n ***点赞成功!***", no.user.nickname, [no.title substringToIndex:7]];

[vc likeNote];  // 点赞!!!

});

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)((arr.count+1) * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

self.label.text = [NSString stringWithFormat:@"点赞完成!!!\n  共计: %ld 个 \n ***点赞完成!***", arr.count];

});


%hook HGAvatarTagNoteCell

- (void)setupWithModel:(id)arg1
{
%orig;

HGNote *note = arg1;
[mSet addObject:note];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%@", arg1]

message:@"VM"

delegate:nil

cancelButtonTitle:@"Thanks"

otherButtonTitles:nil];

//[alert show];

[alert release];

}

%end

Makefile配置:

Makefile配置

执行命令:

make package

打包后会在当前工程debug文件夹下生成一个.dylib文件, 这个就是我们想要的最终产物了, 我们接下来要做的就是更换它依赖的环境(因为tweak会默认依赖越狱环境), 然后向app可执行文件注入此动态库, 签名, 打包, 真机运行!

格式为

install_name_tool -change old.dylib   @executable_path/new.dylib  应用程序

安装后运行命令格式为

yololib 可执行文件 要被注入的.dylib

我们需要把生成的dylib和embedded.mobileprovision文件copy到Hugo.app中,然后用codesign开始签名
格式为

codesign -f -s 自己证书名称 要签名的文件

安装到真机的方式有很多种, iTools, iTunes 等.

下图为gif动态图, 刷新页面重新查看效果

刷新页面查看gif动态图

**Ps :如果get此技能后, 同理 ,相信微信朋友圈一键点赞也不在话下了吧!学习技术可以加我的微信love0415-1314 **

遇到问题的小伙伴可以在评论留下困惑, 供大家一起探讨解决!如果觉得哪个地方不够详细可以说明, 将补充上去
互相学习, 互相进步!
由于源代码未经整理, 暂未放至我的github, 如果需要demo的人多, 我可以整理一份传上去

上一篇下一篇

猜你喜欢

热点阅读