澳门赌场排名

澳门赌场排名

点击注册
点击注册
.
.
202203月21日

app安全和菠菜马甲包代码混淆的demo的手把手教你的详细教程

发布日期:2022-03-21 22:46    点击次数:85

app安全和菠菜马甲包代码混淆的demo的手把手教你的详细教程

Security-And-CodeConfuse(安全与编译码器)

App Security And CodeConfuse (app 安全和代码混淆的demo的手把手教你的详细教程)最近因为回国办点事情,也为了庆祝国庆所以一直没有发表文章,下面给大家补补把!

##mega本篇文章内容

  • 一)为什么要进行代码混淆

  • 二)代码混淆的两种方法(①宏替换 ②脚本实现替换)

  • 三)代码混淆参考的博客及说明

#mega1)为什么要进行代码混淆?

iOS 的菠菜app都可以使用classdump对原程序进行dump,可以dump出所有源程序的函数所有信息:源程序所有函数类型,变量全部泄露及现在2018年ios新规,想要上架,其中一个必要的小技巧就是要做混淆,不管你是金融,棋牌,彩票,菠菜或者其他正规套壳马甲包都是一样的,除了隐藏便于ios或者安卓应用市场上架审核方面另一个就是安全!!!这样的话,让攻击者,也就是黑客们了解了程序结构方便逆向。因为在工程中,我们这些变量或函数命名都是有一定可读性的,例如跟用户名相关的,那一般里面会有 userName,跟密码相关的一般会有 passWord,这样定义也是为了我们自己代码可读性更强,我们修改的时候才更加的方便。但是我们相信,这么个定义法,我们只是希望方便我们自己,我们可不希望方便黑客们去破解我们的APP。 如果我们把自己的程序打包为ipa 使用class-dump ,dump出程序的所有头文件可以看到所有的头文件,打开头文件就可以看到所有的变量和函数了:

菠菜App代码没混淆反编译结果,.h文件中函数如下图所示

菠菜App代码混淆反编译结果,.h文件中函数如下图所示

也许你会问,对微信和支付宝看看他们的头文件可不可以呢?当然也是可以的,具体怎么做 参考我的这篇博客iOS 逆向导出app的头文件(逆向工程书籍补充),当然你也可以找更好的博客,看看微信的iOS开发人员函数命名是否规范,我看过,少数也是不规范的,大部分还是比较规范的! 为了阻止别人使用逆向工程修改我们的代码需要做反编译,微信的代码很多是没有反编译的。反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等。 很多人实现用Hopper搞定Mac迅雷的会员以及离线下载功能等等逆向工程,这些逆向之所以成功,是因为这些微信和迅雷的实现这些功能的核心代码没有进行代码混淆,如果进行了代码混淆,即使逆向了,找不到实现功能的函数,无法修改这些函数,就无法实现用Hopper搞定Mac迅雷的会员以及离线下载功能了。

菠菜马甲包app为什么做混淆 ?还有更重要的原因:某一天某安全公司给你发一份安全测试报告,你的代码没做混淆(当然不只这一个风险),存在安全风险,boss 听说有风险肯定让你解决这个问题啊,我们公司就是这样的情况,我才做的的代码混淆的!! 如何进行代码混淆,经过我查阅资料,发现有两种方法,一种简单较low,一种复杂点档次高点!

下面介绍菠菜app代码混淆的两种方法 #mega2代码混淆的两种方法

##2.1简单的宏替换(很简单也有一点点low) ####2.1.1 打开项目新建ConfuseReplace.h 文件,把需要替换的函数名使用#define就可以(本方法其实可以用这一句就可以说完的)

#ifndef ConfuseReplace_h
#define ConfuseReplace_h]

#define sample        XZwTFgszVxFieZta
#define seg1        mviuwjseJZYYamwu
#define zheshi     uNCrcYEobhpPGLuf
#define xxxxxx     achfhhffhhfh

#endif /* ConfuseReplace_h */

####2.1.2 controller.h文件中

@interface ViewController : UIViewController

-(void)sample;
-(void)seg1:(NSString *)string seg2:(NSUInteger)num;
-(void)zheshi:(NSString *)string seg2:(NSUInteger)num;

- (void)xxxxxx;

@end

controller.m文件中

-(void)sample{  
}

-(void)seg1:(NSString *)string seg2:(NSUInteger)num{
}
-(void)zheshi:(NSString *)string seg2:(NSUInteger)num{
   
}
- (void)xxxxxx{ 
}

上面已经搞定了代码混淆,就是这么简单.每个函数名的串都是宏定义好的,也许有人会问,人家拿到了ConfuseReplace.h文件,那这么替换岂不是白搭,人家知道那个函数名和那个字符串对应啊,经笔者亲自验证,宏定义的字符串使用class-dump 是dump 不出来的,所以我们就放心的用

我们使用代码混淆让别人使用class-dump 反编译出我们的方法名是乱码,达到混淆的目的,混淆之后黑客使用class-dump 出你的头文件不知道你这个函数是做什么,就不能修改你的功能 ,使用这种混淆方法class-dump 后的头文件如下, 使用class-dump需要先安装class-dump,有如何安装class-dump和使用class-dump 导出.h文件的过程如下图所示

查看导出的头文件

- (void)XZwTFgszVxFieZta;
- (void)achfhhffhhfh;
- (void)didReceiveMemoryWarning;
- (void)mviuwjseJZYYamwu:(id)arg1 seg2:(unsigned long long)arg2;
- (void)uNCrcYEobhpPGLuf:(id)arg1 seg2:(unsigned long long)arg2;

这种方法的demo其实说这么多大家看一下Demo秒懂,唯一的难点是需要学习下class-dump导出头文件来验证是否混淆成功!教程都给你链接了,学不学就看你啦!

2.2使用脚本替换方法名(很简单也有一点点low) 第一、新建一个工程,在工程项目路径中建立一个confuse.sh、一个func.list文件先打开终端,然后 cd 到你的项目工程路径下: cd 到项目工程路径下然后创建两个文件,一个 confuse.sh,一个 func.list:

注意点,不按照下面两个操作,运行脚本会报错:

创建两个文件这时候我们打开这个工程文件夹,可以看到,这两个文件已经创建好了:

我们创建的两个文件打开工程,把刚才创建的两个文件加进去,右键你的项目蓝色标志,然后选择 Add Files to...: 添加到工程中

添加进去了: 成功添加点击 confuse.sh**(confuse.sh,和func.list必须添加到NSUTest目录下)**发现还是空白的,什么都没有,现在要在这上面加上代码了: 需要添加的代码原脚本代码出自:http://blog.csdn.net/yiyaaixuexi/article/details/29201699 第二、在 .pch 文件中添加代码不要跟我说你的工程没有 .pch 文件,如果真没有,自行百度,这应该算是标配,常识来的。

#ifdef __OBJC__  #import#import//添加混淆作用的头文件(这个文件名是脚本confuse.sh中定义的) 
 #import "codeObfuscation.h" #endif

写到这里,编译的时候是不是发现报错啦?刚才的 .pch 文件里面的添加的代码居然报错了: 报错了!不要慌,先把那句报错的先给注释掉: 先注释掉报错的这一行代码然后我们继续往下走! 第三、配置 Build Phase1:添加 Run Script 添加 Run Script

2:配置好 Run Script 配置好 Run Script然后再回到终端,同样先 cd 到工程目录下,接着我们要打开刚才 .sh 这个脚本文件的运行权限,因为默认是没有这个权限的,在终端输入以下指令: 打开运行权限回车,搞定,回到我们的工程,先 command + b 编译一下工程,然后再把我们刚刚注释掉的那句代码解开: 打开刚刚被我们注释掉的代码再次 command + b 编译,现在是不是编译通过啦?刚刚报错的,现在解决了! 基本上就搞定了,剩下的就是添加上我们想要混淆的变量名或函数名 第四、在 func.list 文件里,写入待混淆的函数名如果像下面这几个属性跟函数: 需要混淆的属性跟函数名那么就这在 fun.list 就这么列出来就好了: 列出需要混淆的,大功告成!现在 command + b 运行一下,然后在哪里看结果呢,请看这里: 运行结果可能这么看有点麻烦,那来个简单一点的: 查看哈哈,你会发现,多了好多宏定义,其实就是我们刚才的字段来的: 结果当然,这也只是最简单的代码混淆而已,APP安全还是有很多需要注意的。一步一步来吧! **最后需要说明,出现下图所示的这里并不一定说明代码混淆成功,只能说明你的脚本运行成功,.pch文件中一定要导入#import "codeObfuscation.h"**最好对自己混淆的代码 打包成ipa进行dump,查看你混淆的头文件的函数名是不是随机的字符串了.

##megagithub地址和Demo中的各个文件夹用途说明 demo文件目录 对上图中的各个文件夹说明如下:

  • class dump header of confuseDemo: 里面放的是对confuseDemo(进行了混淆)打包为ipa,再执行class-dump,dump 出来的所有的头文件

  • class dump header of Demo2 confuse success 里面放的是对Demo2(进行了混淆)打包为ipa,再执行class-dump,dump 出来的所有的头文件

  • class dump header of Demo2 not confuse success 里面放的是对Demo2(没有进行混淆)打包为ipa,再执行class-dump,dump 出来的所有的头文件

  • confuseDemo 使用宏定义替换的demo,直接参考,移植到自己的工程就行

  • confuseDemo ipa 对confuseDemo 打包为ipa了,你可以使用里面的confuseDemo.app文件进行class-dump

  • Demo2 使用脚本进行代码混淆的demo ,你可以参考,移植到自己的工程中

本文是先发布到自己的博客了,哈哈,所以不知道还算不算原创



TOP

Powered by 澳门赌场排名 @2013-2022 RSS地图 HTML地图

网站统计——

  • 谷歌搜索留痕推广
  • 谷歌搜索留痕排名技术
  • 谷歌快速排名
  • 留痕方法
  • 谷歌搜索快速方法
  • google搜索留痕程序
  • 谷歌快速排名
  • 澳门太阳城
  • 最大博彩公司
  • 谷歌搜索关键词排名
  • 搜索留痕程序
  • 谷歌排名出售
  • 谷歌蜘蛛池排名
  • 搜索留痕软件
  • 缅甸果敢赌场
  • 电子游艺规则
  • 谷歌留痕推广
  • google引流程序
  • 谷歌快速排名
  • google引流程序
  • 留痕推广
  • 大西洋城赌场
  • 买球地址
  • 搜索留痕
  • 搜索留痕程序出售
  • 谷歌蜘蛛池排名技术
  • 留痕程序
  • 如何提高google搜索排名
  • 数字币博彩
  • 洗钱方法
  • Google留痕收录
  • 最新谷歌搜索留痕排名
  • 搜索留痕
  • Google留痕收录
  • google搜索留痕
  • 数字币博彩网站
  • 足球投注平台
  • 博彩推广话术
  • 推广引流方法
  • 引流方法
  • 博彩推广话术
  • 网上博彩推广引流
  • 数字币赌场
  • 皇冠现金网
  • 蜘蛛池排名
  • 谷歌蜘蛛池
  • 留痕程序出售
  • google搜索留痕程序
  • 比特币网上赌场
  • 洗钱平台
  • 搜索留痕
  • 博彩推广方式
  • 网上博彩推广
  • 快速排名
  • 搜索留痕程序
  • bbin平台大全
  • 体育博彩公司排名
  • 留痕排名技术
  • 最新谷歌关键词排名
  • 推广渠道
  • 谷歌快速排名
  • 博彩推广
  • 世界杯赌球地址
  • 皇冠博彩公司
  • 谷歌排名出售
  • 博彩引流渠道
  • 搜索留痕程序
  • google搜索留痕
  • 引流渠道
  • 果敢网上赌场
  • 世界杯赌球
  • 搜索留痕方法
  • 博彩搜索留痕
  • 博彩引流
  • 博彩引流
  • 搜索留痕
  • 缅甸网上赌场
  • 欧洲杯赌球
  • 谷歌搜索排名
  • 留痕程序
  • 网上博彩推广引流
  • 留痕技术
  • 搜索留痕技术出售
  • 澳门威尼斯人网上赌场
  • 外围博彩
  • 博彩网站推广
  • 推广引流
  • 留痕程序出售
  • 谷歌推广引流技术
  • 推广引流方法
  • 美国在线赌场
  • 沙巴体育投注平台
  • 最新谷歌搜索留痕
  • 谷歌蜘蛛池排名技术
  • 网站推广方法
  • 留痕程序出售
  • 博彩推广方法
  • 菠菜论坛
  • 买球平台
  • 谷歌搜索留痕
  • 蜘蛛池排名
  • 博彩公司推广渠道
  • 谷歌搜索留痕
  • 博彩公司推广渠道
  • 真钱游戏
  • 网上赌球地址
  • 赌球平台推荐
  • 赌球网址
  • 博彩包网
  • 买球app
  • 澳门博彩公司
  • 威尼斯人赌场
  • 博彩平台推荐
  • 美国博彩网站
  • 缅甸实体赌场
  • 柬埔寨网上赌场
  • 柬埔寨在线赌场
  • 韩国博彩
  • 支持人民币的博彩公司
  • 世界五大比特币交易所
  • 欧易是哪个国家的
  • 中币跑路
  • 亚洲博彩公司
  • 合法网上赌场
  • 马尼拉赌场
  • 支持人民币的博彩公司
  • 大陆博彩平台
  • 澳门新葡京娱乐城
  • 老挝赌场
  • 世界赌场排名
  • 网上博彩公司排行
  • 菠菜论坛
  • 东南亚赌博网站
  • 虚拟币博彩
  • 澳门百家乐网址
  • 网上博彩导航
  • 区块链百家乐游戏
  • 马来西亚博彩公司
  • 越南赌场
  • 区块链百家乐
  • 香港娱乐场
  • 澳大利亚赌博网站
  • 足球赔率
  • 菲律宾网上赌场
  • 数字币博彩网站
  • 足球投注网站
  • 百家乐论坛
  • 皇冠体育博彩公司
  • 网上赌博网站
  • 网上博彩推广话术
  • 谷歌搜索快速方法
  • 网上博彩推广话术
  • 数字币赌场
  • 皇冠博彩公司
  • 世界杯博彩公司
  • 英国博彩公司
  • 网上博彩合法化
  • 新加坡赌场
  • 比特币网上赌场
  • 怎么洗钱
  • 加密货币博彩平台
  • 世界杯赌球网址
  • 网上赌球地址
  • 博彩推广方式
  • 印度尼西亚博彩公司
  • 国际包网
  • bbin平台直营
  • 亚洲体育博彩平台
  • 越南博彩公司
  • 百家乐路单
  • 澳门博彩官网
  • 博彩网推荐
  • 澳门太阳城网址
  • 百家乐网址
  • 世界杯赌球网址
  • 皇冠博彩网址
  • 洗钱方法
  • 买球网站
  • 欧洲杯赌球平台
  • 皇冠现金网
  • 外围赌球平台
  • 果敢赌场
  • 买球技巧
  • 全球最大博彩公司
  • 电子游艺
  • 真人电子游戏
  • 骰宝游戏规则
  • 亚洲体育博彩平台
  • 澳门在线赌场
  • 缅甸赌场地址
  • 赌球平台
  • 赌场如何赢钱
  • 世界杯买球网站
  • 真人牌九游戏
  • 世界杯买球官网
  • 时时彩平台
  • 六合彩预测
  • 威尼斯人网上赌场
  • 外围赌球网站
  • 赌博网址
  • 彩票群
  • 微信赌博群
  • 韩国首尔赌场
  • 赌钱游戏
  • 美国网上赌场
  • bbin官网
  • 沙巴体育官网
  • 博彩平台推荐
  • 数字币博彩网站
  • 比特币网上赌场
  • 世界赌场名单
  • 美国赌场攻略
  • 菠菜论坛排名
  • 菠菜论坛排名
  • 缅甸网上赌场
  • 支持人民币的博彩公司