转:http://www.dllhook.com/post/37.html

// 增加参数检测并提示,防止出错


/*yololibInject dylibs into existing Mach-O binariesDO WHAT THE FUCK YOU WANT TO PUBLIC LICENSEVersion 2, December 2004Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>Everyone is permitted to copy and distribute verbatim or modifiedcopies of this license document, and changing it is allowed as longas the name is changed.DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSETERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION0. You just DO WHAT THE FUCK YOU WANT TO.*/#include <stdio.h>
#include <string.h>
#include <mach-o/fat.h>
#include <mach-o/loader.h>
#import <Foundation/Foundation.h>NSString* DYLIB_PATH;//#define DYLIB_PATH "@executable_path/crack.dylib"
#define DYLIB_CURRENT_VER 0x10000
#define DYLIB_COMPATIBILITY_VERSION 0x10000#define swap32(value) (((value & 0xFF000000) >> 24) | ((value & 0x00FF0000) >> 8) | ((value & 0x0000FF00) << 8) | ((value & 0x000000FF) << 24) )
#define ARMV7 9
#define ARMV6 6void inject_dylib(FILE* newFile, uint32_t top) {fseek(newFile, top, SEEK_SET);struct mach_header mach;fread(&mach, sizeof(struct mach_header), 1, newFile);NSData* data = [DYLIB_PATH dataUsingEncoding:NSUTF8StringEncoding];uint32_t dylib_size = (uint32_t)[data length] + sizeof(struct dylib_command);dylib_size += sizeof(long) - (dylib_size % sizeof(long)); // load commands like to be aligned by longmach.ncmds += 1;uint32_t sizeofcmds = mach.sizeofcmds;mach.sizeofcmds += dylib_size;fseek(newFile, -sizeof(struct mach_header), SEEK_CUR);fwrite(&mach, sizeof(struct mach_header), 1, newFile);printf("Patching mach_header..\n");fseek(newFile, sizeofcmds, SEEK_CUR);struct dylib_command dyld;fread(&dyld, sizeof(struct dylib_command), 1, newFile);printf("Attaching dylib..\n\n");dyld.cmd = LC_LOAD_DYLIB;dyld.cmdsize = dylib_size;dyld.dylib.compatibility_version = DYLIB_COMPATIBILITY_VERSION;dyld.dylib.current_version = DYLIB_CURRENT_VER;dyld.dylib.timestamp = 2;dyld.dylib.name.offset = sizeof(struct dylib_command);fseek(newFile, -sizeof(struct dylib_command), SEEK_CUR);fwrite(&dyld, sizeof(struct dylib_command), 1, newFile);fwrite([data bytes], [data length], 1, newFile);}/*使用方法:./yololib 目标名称 dylib名称
*/
int main(int argc, const char * argv[])
{char buffer[4096], binary[4096], dylib[4096];// Fixed By PiaoYun// 2014-08-01if (argv[1] == NULL || argv[2] == NULL){printf("error! ===>>(argv[1] == NULL or argv[2] == NULL)\n");printf("usage: yololib binary dylib\n");return -1;}strlcpy(binary, argv[1], sizeof(binary));strlcpy(dylib, argv[2], sizeof(dylib));DYLIB_PATH = [NSString stringWithFormat:@"@executable_path/%@", [NSString stringWithUTF8String:dylib]];NSLog(@"dylib path %@", DYLIB_PATH);FILE *binaryFile = fopen(binary, "r+");printf("Reading binary: %s\n\n", binary);fread(&buffer, sizeof(buffer), 1, binaryFile);struct fat_header* fh = (struct fat_header*) (buffer);if (fh->magic == FAT_CIGAM) {struct fat_arch* arch = (struct fat_arch*) &fh[1];printf("FAT binary!\n");int i;for (i = 0; i < swap32(fh->nfat_arch); i++) {printf("Injecting to arch %i\n", swap32(arch->cpusubtype));inject_dylib(binaryFile, swap32(arch->offset));arch++;}}else {printf("Thin binary!\n");inject_dylib(binaryFile, 0);}printf("Complete!\n");return 0;
}
												

【神器】yololib 飘云修改版 -- 给iOS APP 添加导入表注入--你懂的相关推荐

  1. iOS App添加扩展App Extension

    主要参考文章 :  https://www.cnblogs.com/fengmin/p/6118592.html demo地址,里面额外添加了一个分享的扩展 :  https://github.com ...

  2. iOS app添加桌面快捷方式

    场景描述:app针对某一功能或者新闻频道,向手机桌面添加一个快捷方式 解决思路: 1.需要一个可以展示的网页,跳转到Safari 2.利用Safari的"添加到主屏幕"的方法,向手 ...

  3. 给IOS APP 添加启动页步骤

    添加启动页比较简单,这里只是记录一下,两个步骤就可以了: 添加图片到Assets中,这里命名为:LaunchImg 点开LaunchScreen.storyboard 拖动一个UIImageView到 ...

  4. 为 iOS APP 添加手机密码、指纹验证

    2019独角兽企业重金招聘Python工程师标准>>> 原文  http://my.oschina.net/u/2340880/blog/542221?fromerr=fpdpdLP ...

  5. ios服务器管理系统,ios app云服务器

    ios app云服务器 内容精选 换一换 本节操作介绍如何在移动设备上连接Linux实例.以iTerminal-SSH Telnet为例介绍如何在iOS设备上连接 Linux 实例,详细操作请参考IO ...

  6. php7米酷cms,米酷CMS6.2修改版 支持PHP7 独家首发 - 百码云

    修改版介绍 米酷CMS在8月已经更新到了6.2版本,已经解决了首页加载速度缓慢的问题,我对比了6.0版本和6.2版本的代码,改动其实有点多,但不知道为什么不支持PHP7,单从PHP版本来说,PHP7比 ...

  7. phpcms9.6 ueditor_PHPCMS V9.6.6 修改版

    本帖最后由 zhaoxunzhiyin 于 2020-12-12 18:14 编辑 PHPCMS V9.6.6 修改版官方改了后台界面,修复bug 安装文件不检查index.html 安装完删除安装目 ...

  8. 神兽来了怎么显示连接不到服务器,神兽来了修改版

    [游戏简介] 神兽来了修改版是一款魔幻风格的冒险RPG手游,大量的rougelike元素.还时常有惊喜,比卡牌.战棋多了很多的操作,绝不仅仅是数值的对比. [游戏玩法] 1.玩家可以通过修为来升级境界 ...

  9. python给pip修改镜像-cmd命令修改版

    python给pip修改镜像-cmd命令修改版 本来是想用创建pip.ini的.但没有成功,于是通过命令来设置,成功了 1.查看pip的默认源 之后想修改回默认源要用 在命令行输入 pip help ...

  10. java-net-php-python-jsp保险公司报销演示录像修改版2020计算机毕业设计程序

    java-net-php-python-jsp保险公司报销演示录像修改版2020计算机毕业设计程序 java-net-php-python-jsp保险公司报销演示录像修改版2020计算机毕业设计程序 ...

最新文章

  1. OD基本快捷键及功能
  2. iOS swift2.3 迁移到3.0 遇到的一些问题
  3. 帝国cms7.5多终端刷新单条内容信息时不起作用的解决方法
  4. bicq php,BICQ v2.0.0
  5. P2698 [USACO12MAR]花盆Flowerpot
  6. Jenkins添加从节点相关配置
  7. input限制输入小数点后两位(vue版本)
  8. 2020牛客国庆集训派对day2 MATRIX MULTIPLICATION CALCULATOR
  9. swift label不同颜色、不同字体
  10. unity3d 射击游戏BOSS行为代码
  11. while(条件) 语句;语句 容易理解错的一点
  12. CAD打开文件总是弹出要求选择字体怎么办
  13. SpringBoot之整合thymeleaf渲染Web页面
  14. imo与slack竞品分析报告
  15. Linerlayout Layout_wight
  16. css斜条纹背景——linear-gradient
  17. 360秒抓取收录批量提交程序
  18. Android果冻效果(阻尼动画)
  19. jquery返回上一页,前一页
  20. PC端微信下的dat 文件在线解码还原成为图片

热门文章

  1. matlab绘制函数傅里叶,MATLAB中如何实现矩形函数的傅里叶变换
  2. 《失控》对当下的互联网投资有哪些借鉴意义
  3. DNSPod-免费智能DNS解析服务商
  4. java楼宇报警器,楼宇智能防盗报警系统毕业设计论文.doc
  5. Mac删除文件时显示“不能完成此操作,因为项目‘xxxx’正在使用中”(添加/删除新用户引发的问题)
  6. R语言和医学统计学(11):球形检验
  7. uni 获取本地文件_uni-app 图片(文件) 本地存储解决方案
  8. nginx参数keepalive_timeout
  9. OpenSees二次开发实例01
  10. 【MM 容差】采购订单中的容差