<a name="tMJSz"></a>
# ![china-2.png](https://cdn.nlark.com/yuque/0/2023/png/213807/1682377811568-62430f6e-2085-4044-b2c0-f372851ef03c.png#averageHue=%23eac4c2&clientId=u7a05b3c8-bd4d-4&from=paste&height=50&id=u3b8a15b3&originHeight=100&originWidth=100&originalType=binary&ratio=2&rotation=0&showTitle=false&size=10497&status=done&style=none&taskId=u04a94635-1d8b-40b7-98eb-efe61c6e631&title=&width=50)
<a name="beqYw"></a>
### English | [中文](/README_ZH.md)
<a name="wNymF"></a>
# Preface
By chance, I ran into the iOS [vest bag business](https://www.yuque.com/docs/share/7e70244c-5dea-4035-b634-65cc082097da?translate=en) . I also used other tools on the market in the early stage, but the actual effect was not ideal. After a lot of practice, a full-featured [obfuscation tool has been developed](https://github.com/520coding/confuse) . The tool have been packaged into a Mac application which support multiple programming languages, such as OC, C++, Swift. More functions are still being packaged, so stay tuned.
<a name="ixxhF"></a>
# Prompt
In order to let everyone get started quickly and compare the effects of confusion, a new test project [**confuse_test**](https://github.com/520coding/confuse/tree/master/confuse_test) was created. If you encounter problems during actual use, welcome to extend the test project. Please indicate the bug details in the project, and there will be rewards.
<a name="sbrhD"></a>
### Test engineering description:
> [confuse_test](https://github.com/520coding/confuse/tree/master/confuse_test): Contains oc, c++, swift and some third-party use cases to quickly verify the overall effect
> [confuse_test_oc](https://github.com/520coding/confuse/tree/master/confuse_test_oc): only contains oc, which is convenient to verify the effect of each function
> [confuse_test_oc_fast](https://github.com/520coding/confuse/tree/master/confuse_test_oc_fast): only contains oc, which is convenient to quickly verify the effect of some functions
> [confuse_test_swift](https://github.com/520coding/confuse/tree/master/confuse_test_swift): only contains swift, the code comes from[ Apple's official example code](https://docs.swift.org/swift-book/index.html#//apple_ref/doc/uid/TP40014097-CH3-ID0), which is convenient to verify the effect of each function
The source code can be modified arbitrarily to verify the actual effect. It is recommended to use different tools to confuse the above test projects or third-party open source library projects to compare the effects.
> Instructions for the old version before 1.2.0:
> Introduction: No grammar and compilation requirements are involved, but partial omissions or corrections may occur after confusion, please add to the blacklist filter by yourself.
> Applicable projects: RN and other mixed projects that have not yet been adapted.
> Conditions of use: temporarily unavailable, reopen later
<a name="Yng3v"></a>
# Readme
<a name="6e674183b5d2f1af15baaa27bb7c93b2"></a>
### The essence of vest bag:
1. The first stage reduces the repetition rate. The initial version of my development is basically similar to other tools currently on the market, mainly the basic function of global substitution of class name, method name, and variable name.
2. The second stage reduces the similarity (normal distribution of the same elements). At present, the tool has been greatly improved after optimization and continuous reconstruction, and it basically meets the requirements in this respect. For details, see the following function introduction. There are two sides to everything. The more powerful the function, the longer it will take to confuse. If your project is large, it is possible to confuse for a few hours. Please do not take offense, and continue to optimize.
<a name="fc8a03eacc987f4c5e94e6dc0086ea50"></a>
### Distinguish the pros and cons of tools
In fact, to identify the pros and cons of a tool, just look at the following points:
1. Can modify all attributes, methods, and all parameter names of methods
2. Modify the name of the member (attribute, method), can it be distinguished by class, or a simple global replacement
3. Can modify the method with block parameters, a typical network request
> For example:+ (BOOL)post:(NSString *)url parameters:(NSDictionary *)parameters success:(HttpRequestResponse)success error:(HttpRequestResponse)error;
3. The length of the changed name of the method name and attribute name (this tool can guarantee that 60~80% of the changed name is a common word, such as name, title, etc., and ensure that it does not conflict with the system.~~Completely abandon the simple practice of relying on a large number of word libraries to ensure the uniqueness of naming~~, The real simulation of manual development)
4. Modify the layout (Frame, Masonry, SDAutoLayout)
5. Is the code inserted or "garbage" (this tool creates custom controls, encapsulates network requests, and uses MVC pattern association between files to completely bid farewell to "garbage" and mix the spurious with the genuine).
6. Not to mention "Who else..." can identify macros, distinguish contextual content such as inheritance chains, and intelligently identify unmodifiable parts
> For example: + (void)init ;-(void)reloadData; basically can be changed, who else can do it? "
7. Normal projects (or third-party libraries) basically do not report errors after obfuscation (except for some individual [improper grammars](https://www.yuque.com/docs/share/4a87ec96-80fe-4d25-873d-93cb428b3e15#iz0Zi) that cause confusion and report errors)
<a name="426215c094f184f34acdb12593ddb1fc"></a>
# Features
confuse is a [confusion tool](https://github.com/520coding/confuse) that simulates manual development as much as possible, imitates some functions of Xcode, and avoids machine core 4.3, 2.1, 2.3.1, account surveys, etc.<br />Goal: **Simulate manually modify everything that can be changed** , which is why this tool only has a blacklist and no whitelist<br />The detailed functions are as follows (the basic functions are not described, see other tools for details):
<a name="82f2e3582d1466241460f1564b36b2a6"></a>
## Completed
The following functions are supported:
1. Blacklist (secondary) filtering, freely control the obfuscated content of each function, and adapt to almost all projects.
2. Confusion percentage control, you can freely adjust according to the actual needs of your own project
3. Smart noun substitution:
1. When renaming, use the combination of related type existing information + similar semantics + type + some old vocabulary, and filter sensitive words. At the same time, users can also customize sensitive words.~~Deprecate'random word brainless combination'~~
2. Different types of members with the same name -> different types of members with different names, and different types of different name members -> different types of members with the same name, simulating normal development. Members refer to methods, attributes, and functions
4. Intelligent identification of unmodifiable parts: Identifying systems, third parties, and Pod methods through types and inheritance chains is not a'simple' equality judgment, for example:
1. Class method: + (void)init; in principle, it can be changed anywhere
2. Object method:-(void)reloadData; can be changed if it is not a subclass of UITableView
3. Property: @property (readonly) NSUInteger length; it can be changed if it is not a subclass of NSString
<a name="7e02145ffab0f7184b0a6b92e79d9acd"></a>
### General part
1. [Project Configuration], as long as you select the project path, other default configurations will be automatically completed
1. Global setting "Ignore path", support regular, better use with blacklist
2. ' xcodeproj' setting, for multiple xcodeproj projects and xx.xcodeproj is not in the project root directory
3. 'Scheme' is confused and consistent with Xcode
4. 'Debug mode', It is convenient to view the comparison before and after the modification in t
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
iOS混淆加固差异化翻新加密工具,模拟人工手动混淆,识别上下文 ,支持继承链、类型识别、方法多参等复杂高级混淆。source-to-source obfuscation of iOS projects,Xcode's refactor->rename. 告别插入毫无关联的垃
资源推荐
资源详情
资源评论
收起资源包目录
iOS混淆加固差异化翻新加密工具,模拟人工手动混淆,识别上下文 ,支持继承链 (1522个子文件)
CppFunction.cpp 3KB
CppClass.cpp 1KB
CppStudent.cpp 970B
CppTemplate.cpp 766B
CppBase.cpp 708B
confuse.dmg 42.84MB
UIView+SDAutoLayout.h 16KB
MBProgressHUD.h 13KB
MBProgressHUD.h 13KB
NSObject+YYModel.h 13KB
NSObject+YYModel.h 13KB
NSString+YYAdd.h 12KB
NSString+YYAdd.h 12KB
UIImage+YYAdd.h 12KB
UIImage+YYAdd.h 12KB
UIColor+YYAdd.h 12KB
UIColor+YYAdd.h 12KB
NSObject+YYAdd.h 12KB
NSObject+YYAdd.h 12KB
YYCGUtilities.h 11KB
YYCGUtilities.h 11KB
YYCategoriesMacro.h 10KB
YYCategoriesMacro.h 10KB
YYClassInfo.h 8KB
YYClassInfo.h 8KB
UITableView+YYAdd.h 8KB
UITableView+YYAdd.h 8KB
MASConstraint.h 8KB
MASConstraint.h 8KB
NSData+YYAdd.h 7KB
NSData+YYAdd.h 7KB
NSDate+YYAdd.h 7KB
NSDate+YYAdd.h 7KB
NSDictionary+YYAdd.h 6KB
NSDictionary+YYAdd.h 6KB
UITableView+SDAutoTableViewCellHeight.h 6KB
MASUtilities.h 6KB
MASUtilities.h 6KB
UIDevice+YYAdd.h 6KB
UIDevice+YYAdd.h 6KB
MASConstraintMaker.h 6KB
MASConstraintMaker.h 6KB
NSObject+MJKeyValue.h 5KB
NSObject+MJKeyValue.h 5KB
NSArray+YYAdd.h 5KB
NSArray+YYAdd.h 5KB
View+MASAdditions.h 5KB
View+MASAdditions.h 5KB
View+MASShorthandAdditions.h 5KB
View+MASShorthandAdditions.h 5KB
UIFont+YYAdd.h 4KB
UIFont+YYAdd.h 4KB
UIView+YYAdd.h 4KB
UIView+YYAdd.h 4KB
NSBundle+YYAdd.h 4KB
NSBundle+YYAdd.h 4KB
NSNotificationCenter+YYAdd.h 3KB
NSNotificationCenter+YYAdd.h 3KB
CALayer+YYAdd.h 3KB
CALayer+YYAdd.h 3KB
MJExtensionConst.h 3KB
MJExtensionConst.h 3KB
NSObject+MJClass.h 3KB
NSObject+MJClass.h 3KB
NSArray+MASAdditions.h 3KB
NSArray+MASAdditions.h 3KB
YYCategories.h 3KB
YYCategories.h 3KB
UIControl+YYAdd.h 3KB
UIControl+YYAdd.h 3KB
NSTimer+YYAdd.h 3KB
NSTimer+YYAdd.h 3KB
UIApplication+YYAdd.h 2KB
UIApplication+YYAdd.h 2KB
TestProperty.h 2KB
NSObject+MJProperty.h 2KB
NSObject+MJProperty.h 2KB
CppFunction.h 2KB
MASConstraint+Private.h 2KB
MASConstraint+Private.h 2KB
NSObject+YYAddForKVO.h 2KB
NSObject+YYAddForKVO.h 2KB
MJProperty.h 2KB
MJProperty.h 2KB
UIScreen+YYAdd.h 2KB
UIScreen+YYAdd.h 2KB
NSKeyedUnarchiver+YYAdd.h 1KB
NSKeyedUnarchiver+YYAdd.h 1KB
MASViewConstraint.h 1KB
MASViewConstraint.h 1KB
UIGestureRecognizer+YYAdd.h 1KB
UIGestureRecognizer+YYAdd.h 1KB
MASViewAttribute.h 1KB
MASViewAttribute.h 1KB
UIScrollView+YYAdd.h 1KB
UIScrollView+YYAdd.h 1KB
TestLayoutTableViewController.h 1KB
TestLayoutViewController.h 1KB
MJPropertyType.h 1KB
MJPropertyType.h 1KB
共 1522 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16
资源评论
极致人生-010
- 粉丝: 4375
- 资源: 3087
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功