自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雪一梦的博客

静下心来,感受努力的快乐。。

  • 博客(86)
  • 资源 (20)
  • 论坛 (6)

原创 方舟编译器处理第一款APP发布尝鲜以及简要分析

一、华为EMUI10.1系统更新说明:二、华为应用市场下载到的最新的3.6.1版本的新浪新闻极速版本说明:三、测试一下:3.1性能我也做了对比在同一个level的非华为手机上,发现冷启动在某些时候快,热启动差不多,虽然性能没有形象的那么大,但是这是一个开始的信号,期待后面对于性能的优化。3.2运行测试观察安装包发现一个不一样的地方:很明显,因为maple就是方舟编译器处理完以后的中间文件名称,打开以后发现:在分析之前测试一下看有没有脱离安卓的java虚拟机

2020-07-02 15:52:09 5138 1

原创 AI模型安全学习记录一

一、背景: 随着5G以及AIOT时代的到来,未来逐渐的成为一个数据主导的时代,AI等技术型的公司,会成为新的主流,和各行各业做大跨度的融合,这种融合当然在学术以及产业中会一直的存在,并且近年来的AI一直在各个世界顶级互联网大会中被频频的提到,现实中的成果也已经很多惠及到我们,比如目前成熟的人脸识别,以及前一段时间比较火的换脸—“ZAO”,还有未来不久百度为主导的无人驾驶车...

2019-10-27 14:02:41 1084

原创 怎么愉快的复制网页上不能复制文字的方法

网上的办法有很多,大部分是使用上的漏洞,但是我们作为技术人员那么去弄就太LOW了,接下来从修改代码的角度去过掉,很简单:这里以百度文库为例子,毕竟百度文库真的是XX;第一步:ctrl+s保存:比如:https://wenku.baidu.com/view/142a3a06a26925c52dc5bf14.html?from=search这个链接里面的文字我们是不能复制的...

2019-10-18 11:38:24 1081

原创 TX手游so保护实现分析

一、腾讯so保护的分析:字符串加密:so中大量的调用了字符串解密函数:接下来看JNI_Onload相关的函数:接下来看导出符号中有一个g_tprt_ori_array,放在.bss节中,是一个未初始化的全局变量。还有一个g_tprt_pfn_array,可以看到下面保存着一堆函数的地址:在sub_57A8中可以看到的...

2019-10-09 19:13:53 1283

原创 华为方舟编译器理解:初探

华为踩着2019年8月的尾巴开源了方舟编译器:github:https://github.com/Himself65/OpenArkCompiler背景:方舟编译器主要要做的事情:1.将多语言之间联合优化,比如c/c++、 java包括前端等,然后自己设计一个IR,不同的前端分析完后,然后转为统一的IR,这个是编译原理上常做的事;具体可见对于mapleIR的说明:...

2019-09-17 19:19:29 721 2

原创 方舟编译器理解二:ModulePhase && MeFunctionPhase

上一篇文章大致讲解了一个HelloWorld的中间文件跟基于LLVM生成的中间文件的形式上的对比,接下来的文章主要是讲解这个生成过程,方舟编译器是怎么处理这些class文件的。从源码中可知,Phase分为ModulePhase 和 MeFunctionPhase;类似于LLVM中的ModulePass和FunctionPass,Phase也就类似于llvm中的Pass的概念。一...

2019-09-17 19:19:20 392

原创 PHP代码保护浅析

今日无聊,正好一个网友问到这块,就随手写一篇水文,简单总结一下,这里简单的来总结一下PHP代码保护的现状和思路:一、背景:保护PHP就是保护知识产权之类的,包括一些重要的接口等等。二、目前常用的方案:对于PHP这类的动态语言的保护,感觉跟前面总结的js保护上差不多,无非就是:加密;(强度最弱,没办法,这种动态解释语言的特性导致)动态调试或者hook来解决,当然瞪眼发...

2019-09-08 17:12:25 599

原创 nshc加固浅析

一、dex保护:1.1反回编译:按照上面的提示找到对应的位置,把那个函数删掉。由于这个函数别的地方也没有调用,应该不影响结果。总结:可以把这个函数改造。构造一个能够去调用它参与逻辑的,增强反回编的难度。1.2.对于dex中重要信息字符串的解密:反编译的时候看到大量的这种加密字符串解决办法:由于这个解密函数是java层面的,且不是很复杂。因...

2019-08-28 19:56:55 227

原创 JavaScript代码保护浅谈

一、国外:1.jscrambler(商业):链接:https://jscrambler.com/收费比较高;2.JavaScript-Obfuscator(开源)有了开源很多人都在这个基础上改改,但是强度也是会比较弱;二、国内:1.jshaman:https://www.jshaman.com/guide.html看了他们这个说明可能以上两个...

2019-08-02 19:57:17 913

原创 一起学些LLVM(五): 学习lli/vmir

一、GIthub链接:https://github.com/andoma/vmir二、原理:Optionally it can generate machine code (JIT) to speed up execution significantly. JIT is currently only supported on 32 bit ARM.相对于官网的LLI源码相比...

2019-08-02 18:58:08 550

原创 爱加密so VMP浅析

一、静态分析:如图是函数入口和vmp的整体器部分:可以大致看到整个的dispatcher部分如下所示:虚拟数据表如下所示,根据这些去调用对应的Handler;二、动态分析:这里分析简单列出几个比较重要的handler:case 16:对于参数赋值操作;case 76: 得到函数头信息;case 77: 也是重点函数,从“mov pc r1”可以看出...

2019-07-28 13:02:57 1314

转载 人工智能为何值得更强的安全保护

转自:https://www.synopsys.com/zh-cn/china/resources/dwtb/why-ai-needs-security.html转载原因:对于AI模型安全这一块有了大致的了解,也是未来软件安全的一个方向。作者:Synopsys安全IP产品营销经理Dana Neustadter订购 DesignWare技术通报简介在创新型深度学习技术和大规模投资...

2019-07-15 12:57:56 175

原创 IL2CPP的原理(生成)机制

一、IL2CPP的原理(生成)机制:Runtime库:il2cpp相关的工具库在unity安装目录下:D:\Program Files\Unity\Editor\Data\il2cpp对于一个工程通过配置生成选项生成的CPP文件的临时目录是:E:\Work\2019Q2\Unity\HotfixCalc\Temp\StagingArea\Il2Cpp\il2cppOut...

2019-07-14 20:42:15 1282 3

原创 某lua游戏简单分析

一、静态分析: framework_precompiled.zip是quick-cocos2d-x框架对lua中的API的拓展和封装,第一次了解lua手游,先粗略这么理解。在这个游戏中这个zip还没有进行保护,是可以正常进行解压的,对于交叉引用loadChunksFromZIP函数发现,没有解密函数的样子,再次说明没有进行保护,重点就关注在lua代码保护上。观察lua脚本...

2019-06-02 18:58:54 1727 1

原创 Lua学习(一):luac、luajit编译与反编译

最近开始学习对于lua代码的保护,先对基本的概念加以理解并进行记录;一、编译lua1.1 lua源码编译这些在Linux下的支持比较好,直接make就可以;第一种:下载mingw在Windows下面可以通过下载mingw,通过mingw软件,我们可以在windows上模拟出linux的环境;第二种:通过VSlualib工程:1)添加除了lua.c 和 luac...

2019-05-17 21:20:42 10692

原创 编译与代码安全之认识(二):Source2Source源码混淆方法

一、说明: 针对源码混淆其实在代码保护中应用很多,大部分是应用在像JS这种脚本语言中,因为很多时候JS是以源码的形式出现,网上有很多关于JS保护的工具,比较出名的是JSugly和javascript obfuscator。当然最近发现了一个做JS VM保护的,https://www.v2ex.com/t/552383#reply33,很感兴趣,之前研究过这种...

2019-05-15 20:21:36 650

原创 一起学习LLVM(四):学习llvm-cbe

近来学习一下LLVM-cbe这个后端对于ir解析成c的一个框架,很有意思。github源码:https://github.com/buzhishishi/llvm-cbe一、安装注意事项:由于要编译C到ir的过程,所以要安装clang,这里注意由于后面要执行make llvm-cbe,要在llvm 下面的CmakeList.txt中添加这个任务: option (...

2019-05-15 12:21:04 600

原创 安全开发注意事项总结

养成一个好的代码风格是多么的重要,但是自己还需要打磨:1.模块与模块之间功能独立,尽量少的之间不要有交互; 设置为一个基类;2.尽量不要设置全局变量,用成员变量来代替;3.开发的时候对于各个情况尽量多的考虑周全,减少后期qa测试再修改的时间的浪费;4.开发的时候注意性能消耗,相同的功能使用内存消耗少的方法;5.注意析构的时候对于引用的释放;注意:养成一个好的代码...

2019-05-12 15:31:24 242

原创 Android中常见的HOOK框架收集

Android中常见的各类Java HOOK框架,先收集起来,因为好多的基础原理差不多,后面有时间会归类以及对于原理进行重点分析。1.Xposed:Java层的HOOK框架,由于要修改Zgote进程,需要Root;2.CydiaSubstrator:本地层的HOOK框架,本质上是一个inline Hook3.dexposed框架:随着阿里的热修复的框架:原理上跟Xpo...

2019-04-27 19:23:31 6475 1

原创 Frida 学习(一)

Frida一个轻量级的HOOK 注入神器,能够满足我们对一切搞事情的要求:无论是内核插桩,还有到上层的HOOK ,以及演变的脱壳等等都可以使用,佩服国外这些大佬。在去看原理的时候,首先先体验一下效果:一.安装:1.PC端:保障自己电脑上Python以及pip环境;安装frida 模块以及frida-tools模块pip install fridapip install...

2019-04-13 17:26:17 1944 2

原创 Android反调试方法总结(二)

反调试防御网机制一、介绍:反调试对于逆向安全工作者再熟悉不过了,一般是配合壳的形式出现,我认为反调试在某些时候还是能起到一定作用的,特别是在Android应用程序的逆向过程中,由于其一Android动态调试建立过程相对于其他比较麻烦点,其二即使在通过一定的脚本可以过掉调试一半的前面的反调试,但是如果这种反调试本身是随机的且随着样本的不同是呈现多样性的,那么这种就起不到好的效果了。...

2019-04-12 09:48:14 1845

原创 360加固保Java2c加固分析

加固前:加固后:生成两个so文件:libjgdtc.so文件为官方dex2c以后的结果;libjiagu.so为dexVMP以后的so文件;运行结果:在android 4.4 5.0等会崩溃闪退;libjiagu.so为早先的dex Vmp 加固,之前分析过,忽略。接下来分析libjgdtc.so:静态分析看到:这里面的重点函数是sub_4DA0...

2019-04-08 16:11:31 2408

原创 arm64位编译出错:aarch64-linux-android/bin\ld: unrecognized option '--fix-cortex-a53-843419' 的解决方法

一、问题出现:在NDK R10C上利用一个改造过的安全编译器clang编译一个arm64位so:报错:无法识别GCC链接器中的unrecognized option '--fix-cortex-a53-843419',导致编译出错,但是在ndkR10e上没问题,同时用之前的NDK R10C本身自带的clang去编译也没有问题。二、解决问题:Google了好久,最后实在找不...

2019-03-27 21:19:49 4912

原创 一起学习LLVM(三)

学习LLVM常用的API操作常用的结构:---关于函数和指令以及block和指令的操作;引用的各自类型:---Dynamic casts---Instanceof-of casts修改CFG的几种方式---修改基本块或者指令一、Runtime type inference(RTTI)...

2019-03-25 20:11:58 305

原创 一起学习LLVM(二)

一、llvm opt优化介绍:在学习LLVM的过程中可以看出:最重要的是优化这一块,包括平台无关的优化和平台相关的优化。平台相关的优化是涉及到后端中具体指令的生成,在这一块只是简单的来说明平台无关的优化:如下图所示为关于O1、O2、O3的优化选项:比如以下这个例子:不优化的时候直接生成对应的字节码:进行优化:1.寄存器优化./o...

2019-03-17 18:42:45 346

原创 一起学习LLVM(一)

学习LLVM的源码目录:一、LLVM的周边项目:1.clang、llvm、clang-tools-extra、compiler-rt:clang+LLVM:clang是LLVM的前端,把各种源码编译处理;clang-tools-extra:clang默认以外的认为不是很重要的工具;Compiler-RT 项⽬为硬件不⽀持的低级功能提供特定的⽀持。例如,32位⽬标通常缺少...

2019-03-02 11:29:12 1621

原创 腾讯御安全加固保护简单分析

腾讯本身除了乐固安全以外还有一个叫御安全:官网:https://yaq.qq.com/强度分析:加固前后文件结构对比:字符串完全的暴漏,比较容易的进行定位: 从以上加固可以看出属于二代加固。...

2019-02-20 10:22:38 2846

原创 2019新的一年开始了

        今天2019年02月18号,明天是农历的元宵节,好像从升入初中以来似乎对元宵节没有太大的概念,因为好像没在家里过过,亦或者父母不在,所以公司发的明天提前两个小时下班的邮件也毫无感觉,毫无一丁点兴奋,首先回想2018这一不平凡的一年,2018.07是自己此刻人生学业的终结点,带着很多的遗憾和不舍之情离开了校园,遗憾自己曾经对各种的不珍惜。结业中间所有的流程还算比较顺利,最后还莫名其妙...

2019-02-18 19:56:27 204

原创 聚安全libsgmain.so、libsgavmp.so初步分析

版本:libsgmainso-5.4.2010.so一、静态分析:1.IDA分析:Binary data 16 is incorrect, maximum possible value is 0. Do you want to continue with the new value?经过简单的修复以后可以打开:发现有这种JNI API函数的导出;并且别的导出函数名...

2019-02-15 15:28:52 3655 7

转载 用Golang来保护Java程序

#反编译带来的困扰对于一个开发给自己组织内部用的程序,我们是不怎么需要考虑程序被反编译的事情的,但是对于商业软件来说,这又显得有必要,毕竟国内软件行业的竞争还是非常的激烈,大家可以把竞争对手的程序搞过来反编译一下(至于怎么拿别人的程序我相信大家都已经很老手了),轻易的知道对手基于什么软件来做,或者能够比较容易知道实现原理,然后。。抄抄抄,换个名字,完事,一个全新的产品就出来了。对于 Java ...

2019-01-06 21:40:12 864 1

原创 IDA出现不能进行F5,”F1EC:positive sp value has been found!!!!!“的解决方法

IDA出现不能进行F5,”F1EC:positive sp value has been found!!!!!“的解决方法一、在用IDA分析So文件,F5的时候经常会出现以上这种情况,这个时候可能是以下导致的:1.栈sp不平衡:比如360加固中的libjiagu.so中的虚拟机解释函数。首先打开栈指针选项,在options--------->General--------...

2018-12-24 20:36:22 1203

原创 几维KVM虚拟机分析(一)

由于虚拟机运行的runtime,几维混淆的实在是太凶了,可能是怕被人分析吧!在关键函数中出现有个cmp R0,5,感觉可能会影响后面程序的运行流程,因此关注运行的第五次结果。大量的伪造控制流使得分析起来的难度很大;由于控制流中大量的这种操作,简直分析起来太美妙。 接下来不知道做了什么操作:F7进去如下:这个函数为真正的Hand...

2018-12-23 13:11:11 342

原创 几维so文件加壳初步分析

这是早期分析的一点点几维中的so文件加壳,没分析完,好像也现在很少看到他们用了,也没时间看,以下是之前分析的:一、分析篇:首先看到核心的函数全部变成了以下这种形式:So加壳的话,首先定位到.init_proc这个导出函数中,去分析:通过静态分析可知道:加固完以后几个So文件的主要功能如下:libkwscr.so:主要是程序crash记录函数;libkwscmm.so:加...

2018-11-04 19:34:26 2071 3

原创 编译与代码安全之认识(一)

好久没有更新博客了,今天周末索性喝杯茶,静下心来把最近一段时间自己所理解和思考的关于软件代码保护的东西写下来。帮助所需之人,多有不对,望批评指正。正确的运用编译知识可以在我们代码保护中达到事半功倍的效果。 一提到编译,大家很多人觉得不就是词法分析、语法分析然后产生一个针对特定机器的文件。感觉这是一个很成熟,有规则,本身就是很有章法的东西,好像不需要我们本身去理会...

2018-11-04 13:45:13 429

原创 小密盾简单逆向分析

前几天出了个小密盾,针对插件加固的,好奇的简单分析了一下,写了个样本简单的加固了一下,以下是分析过程。小密盾简单逆向分析一:静态分析    静态分析发现,根据这些函数参数很多函数进行了加密,并且新加了几个节,接下来动态分析。二:动态分析由于JNI_Onload经过了加密,因此可以猜测在.init/.init_array处经过了加密处理,不需要仔细分析这些加密算法,在JNI_...

2018-05-21 21:06:52 1359 2

转载 突破Android P(Preview 1)对调用隐藏API限制的方法

原文:https://juejin.im/post/5acf3be5f265da23a40534f4?from=timeline感谢原作者的idea,加固又开始愉快的玩耍了!特别是如今流行的java2c。一.概要本文基于对Android P(Preview 1)的源码分析,实现了三种绕过对调用隐藏API限制的方法,有效性均已得到验证,能够成功调用系统隐藏API。二.限制原理首先

2018-04-12 23:03:04 482

原创 JW加固简单分析

一、  猜想加固的几维Demo,这里简单的分析一下它的强度,Java2c主要是借助于JNI反射技术对java层的方法全部的反射为本地层,增大分析难度。Java2cpp以后再借助于编译混淆或者编译虚拟的技术来增大分析难度。接着对编译以后的So文件进行加壳保护。这里主要是对demo中的onCreate方法进行了java2c,并且对于保护以后的so没有做任何的破坏、加壳保护,因此直接在IDA中打

2018-04-12 16:21:31 771 1

原创 人工智能软件安全

人工智能犹如一场革命一样在影响着我们生活的方方面面,渗透在我们生活的各个方面,

2018-04-12 14:17:33 266

原创 顶象企业版加固逆向分析

首先看一下顶象对于这种自身的虚拟源码保护是怎么说明的? 结合免费版分析可以猜测是这样的加固流程:1.   首先进行免费版转换把dex中对应的方法通过JNI反射转换为cpp文件(当然这里企业版比免费版转换的方法要多,免费版中的内部类MainActivity$1就没有进行转换);2.   然后就是独有工具链的编译,猜测很有可能是基于LLVM的自定义编译;3.   进行虚拟化保护...

2018-03-03 16:36:08 1914

原创 2018新的一年开始了

       今天2018年02月26号,春节过后正式开启了新的一年的学习生活生涯,新的一年新的挑战,希望在新的一年多看几本好书,多发几篇好的帖子,多交几个好朋友。心态上多多磨炼,遇事和问题多几分淡定和冷静。...

2018-02-26 11:04:08 363 1

UPX加壳保护资料

Android so文件使用UPX加壳保护

2017-07-08

测试样本APK

360一代加固的APK

2017-05-25

Android 加载执行ELF可执行文件

Android 加载执行ELF可执行文件

2017-05-08

adbd最新版

2017-04-20

JAVA程序员面试宝典++第4版

JAVA程序员面试宝典++第4版

2017-03-17

对于反调试的研究一

反调试在代码保护中扮演着很重要的角色,虽然不能完全阻止攻击者,但是还是能加大攻击者的时间成本,一般与加壳结合使用,核心还是加壳部分。

2017-03-09

对于Android代码保护过后软件的评估

对于Android代码保护过后软件的评估

2016-10-26

apktool 最新版apktool2.2.1工具

apktool 最新版apktool2.2.1

2016-10-22

Android So动态调试之反jdb附加的解决大法

Android So动态调试之反jdb附加的解决大法

2016-10-06

Android So动态调试大法

Android So动态调试大法

2016-10-06

Android SO文件保护OLLVM混淆加固——混淆篇(二)

Android SO文件保护OLLVM混淆加固——混淆篇

2016-10-03

Android逆向调用so(一)

Android逆向调用so

2016-10-03

Android StudioJNI的静动态注册开发

Android StudioJNI的静动态注册开发

2016-10-01

Android Studio JNI 的静动态注册开发以及CC++ JNIEnv的理解

Android Studio JNI 的静动态注册开发以及CC++ JNIEnv的理解

2016-09-30

Android SO文件加固加密二

Android So中基于二进制的函数加密和解密

2016-09-29

Android SO文件保护加固——加密篇

2016-09-28

Android SO文件保护加固——混淆篇(一)源代码

Android SO文件保护加固——混淆篇

2016-09-26

Android SO文件保护加固——加密篇(二)源代码

2016-09-24

so文件的保护

有源码的SO文件的自己定义section的加解密

2016-05-26

Android JNI实例

Android NDK开发实例以及NDK开发步骤讲解

2016-05-03

如何在CmakeLists.txt中实现LOCAL_CFLAGS := -fvisibility=hidden隐藏符号表的作用

发表于 2016-11-10 最后回复 2020-04-24

如何从后端传输一个js代码到前端?

发表于 2017-01-11 最后回复 2018-12-03

前台怎么通过ajax接受后台的传过来的字符串数据?

发表于 2017-01-12 最后回复 2018-08-10

大神们,帮忙理解一个JavaScript函数调用关系

发表于 2017-02-16 最后回复 2017-02-17

基于参数的JavaScript源码的语法树的构建

发表于 2017-01-06 最后回复 2017-01-06

怎么用JavaScript去读取一个js文件?

发表于 2016-12-29 最后回复 2017-01-06

空空如也
提示
确定要删除当前文章?
取消 删除