一.序 无论是逆向分析还是漏洞利用,我所理解的攻防博弈无非是二者在既定的某一阶段,以高维的方式进行对抗,并不断地升级维度.比如,逆向工程人员一般会选择在Root的环境下对App进行调试分析,其是以root的高权限对抗受沙盒限制的低权限:在arm64位手机上进行root/越狱时,ret2usr利用技术受到PXN机制的约束,厂商从修改硬件特性的高维度进行对抗,迫使漏洞研究者提高利用技巧. 下文将在Android逆向工程方面,分享鄙人早期从维度攻击的角度所编写的小工具.工具本身可能已经不能适应现在的攻…
针对Android面临的安全风险,一些防止逆向的方法应运而生.代码混淆在X86架构上曾经被广泛研究,他被用于保护软件的只是产权,但是恶意软件也常常使用他来对抗杀毒软件或者对抗逆向分析者,代码混淆可以给逆向分析带来巨大工作量,比如,可以是反编译工具失效或者增加很多无用逻辑.下面我们就介绍几种Android相关的代码混淆工具和相关的反编译工具.代码保护:下面的这几个工具可以用来混淆代码对抗逆向分析.ProguardProguard是一个开源项目,官网http://proguard.sourcefor…
https://juejin.im/post/5d3fb44e6fb9a06b2e3ccd4e 生成对抗网络(GAN)是生成模型的一种神经网络架构. 生成模型指在现存样本的基础上,使用模型来生成新案例,比如,基于现存的照片集生成一组与其相似却有细微差异的新照片. GAN是使用两个神经网络模型训练而成的一种生成模型.其中一个称为"生成器"或"生成网络"模型,可学习生成新的可用案例.另一个称为"判别器"或"判别网络",可学习判别生…
转载自http://bbs.pediy.com/showthread.php?t=191649 以前一直对.so文件加载时解密不懂,不了解其工作原理和实现思路.最近翻看各种资料,有了一些思路.看到论坛没有类似帖子,故来一帖,也作为学习笔记.限于水平,本菜没有找到安卓平台一些具体实现思路,这些方法都是借鉴其他平台的实现思路和本菜的YY,肯定会有不少疏漏和错误之处,还请各位大牛指正,感激不尽! 简单粗暴的so加解密实现一.  概述利用动态链接库实现安卓应用的核心部分,能一定程度的对抗逆向.由于ida…
[直播]APP全量混淆和瘦身技术揭秘 近些年来移动APP数量呈现爆炸式的增长,黑产也从原来的PC端转移到了移动端,通过逆向手段造成数据泄漏.源码被盗.APP被山寨.破解后注入病毒或广告现象让用户苦不堪言. 为了解决安卓APP容易被逆向的问题,除了对产品进行加固处理,代码混淆技术是对抗逆向攻击最有效的方式之一.本直播会分享阿里聚安全带来的APP全量混淆技术.此外越来越多的新特性正在啃蚀着大型APP的用户体验,APP瘦身减肥也成了亟待解决的问题,如何能在使用安全功能同时瘦身,也将是本期主题所带来的内…
主持人导语: 近些年来,移动APP数量呈现爆炸式的增长,黑产也从原来的PC端转移到了移动端,伴随而来的逆向攻击手段也越来越高明.在解决加固产品容易被脱壳的方案中,代码混淆技术是对抗逆向攻击最有效的方式之一.但目前的移动端加固技术真能抵御黑客的攻击吗? 本报告将分享阿里巴巴集团安全部应用加固能力养成记,重点介绍Android加固对于端上的业务风险控制是如何做到自动化部署和分析,更快捷的感知安全风险,以便快速做出响应,减少不必要的业务损失. 有请阿里巴巴安全专家乱武. 嘉宾演讲正文: 非常感谢各位来…
20165309 <网络对抗技术>实验一:PC平台逆向破解 目录 实践目标 基础知识 实验原理.内容及步骤 问题与解决 实验收获 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的. 我们实践的目标就是想办法运行这个代码片段,然后学习如何注入运行任何Shellcode. 返回目录…
20155324<网络对抗>Exp1 PC平台逆向破解(5)M 实验目标 本次实践的对象是一个名为~pwn1~的~linux~可执行文件. 该程序正常执行流程是:~main~调用~foo~函数,~foo~函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,~getShell~,会返回一个可用~Shell~.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何~Shellcode~. 基础知识 掌…
20165221 <网络对抗技术>EXP1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.但是该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 三个实践内容如下: 直接修改程序机器指令…
2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解(BOF实验) 实验有三个模块: (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻击,改变程序执行流: (三)注入Shellcode并执行: 回答一下老师的问题 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:90 JNE:75 JE:74 JMP:E9(JMP immed16)EA(JMP immed32)EB(JMP immed8) CMP:38(C…