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

简介: 真机运行简书APP效果说明: 本文没有任何搞破坏实质,网上逆向文章极少,希望借助简书APP来向初学者打开逆向开发的神秘面纱! 如果觉得还可以, 请留赞!我想有一部分人想要知道或者说不知道达到上图最终效果我们需要会什么知识和需要有什...
img_7a911b3fb0a40c6f4b6bb61aee5590fe.png
真机运行简书APP效果

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

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

准备工作:


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

开始干活:


  • class-dump

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

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

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

img_dfb4c6035705d97f5932d15a12125c6b.png
app头文件
  • Theos

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

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

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


img_bd2e97f3f05c851413afe2ec97ef4b87.png
工程文件夹
  • Tweak编码

我们找到 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配置:

img_0231e576af7ef1eb3f7c2ae577a9c65e.png
Makefile配置
  • 至此, 我们已经完成了一大半, 接下来就是安装到手机了, 越狱的小伙伴可以通过SSH安装到手机上, 也就是Makefile文件中加入 THEOS_DEVICE_IP = 172.18.1.123(换成你手机的IP), 通过make package install 安装到手机

  • 本文针对于未越狱安装, 未越狱的小伙伴请往下看!

执行命令:

make package

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

  • 更改环境

格式为

install_name_tool -change old.dylib   @executable_path/new.dylib  应用程序
  • 注入动态库 需要安装yololib

安装后运行命令格式为

yololib 可执行文件 要被注入的.dylib
  • 证书签名

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

codesign -f -s 自己证书名称 要签名的文件
  • 真机运行

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

  • 见证劳动成果

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

img_d8885d483395227f1e6aca020d7f5df9.gif
刷新页面查看gif动态图

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

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

相关文章
|
26天前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
81 3
|
27天前
|
iOS开发 开发者
一键制作 iOS 上架 App Store 描述文件教程
一键制作 iOS 上架 App Store 描述文件教程
|
1月前
uni-app 185iOS端兼容处理
uni-app 185iOS端兼容处理
32 1
|
26天前
|
Android开发 iOS开发 开发者
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
78 0
|
26天前
|
开发者 iOS开发
iOS App上架新规解析:如何进行App备案
iOS App上架新规解析:如何进行App备案
84 0
|
27天前
|
iOS开发 开发者
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
|
2月前
|
iOS开发 开发者
iOS App 上架指南及关键建议
上架App Store是将iOS应用提交申请并上线的过程,旨在让应用在App Store上展示,吸引用户并获取流量。本文将介绍iOS上架的整体流程,并提供一些建议和注意事项。
|
2月前
|
iOS开发 开发者 UED
2023年iOS App Store上架流程详解(上)
在2023年,随着苹果发布机制的微调,有些关于iOS App上架流程的资料已经过时。本文将根据最新的要求和经验,详细介绍iOS App上架的流程。
|
Java iOS开发
IOS学习笔记十三(使用类别实现非正式协议)
IOS学习笔记十三(使用类别实现非正式协议)
105 0
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2