摘要:
复制自本人知乎 首先 现在是2023年四月中旬,毕业的事情暂时告一段落,于是想吐槽顺便记录一下。 23秋招其实是在2022年,而2022实在是这几年来行情最差的一年。犹记得20、21年秋天各个大厂号称“史上最大规模的秋招“,hc多开的薪资也高,一年比一年倒挂。当时我还觉得23年会更美好,没想到现实很 阅读全文
摘要:
1.DroidRA论文阅读 概述: DroidRA: taming reflection to support whole-program analysis of Android apps-ISSTA2016 开源代码:https://github.com/serval-snt-uni-lu/Dro 阅读全文
摘要:
intellij + maven 配置FlowDroid FlowDroid是一款使用Java实现的针对Android的静态污点分析框架,发表于PLDI'2014。 源码分为两部分: soot-infoflow:通用的污点分析 soot-infoflow-android:建模安卓组件生命周期等 依赖 阅读全文
摘要:
LLVM项目 LLVM是一个开源的项目,是一个编译器框架,是一系列模块化、可重用的编译器以及工具链技术的集合。 LLVM的核心是LLVM库。同时LLVM还实现了一些周边工具。 LLVM的一个设计思想是优化可以渗透在整个编译流程中各个阶段,比如编译时、链接时、运行时等。 你可以基于LLVM提供的功能开 阅读全文
摘要:
资料 USENIX Security 21: DeepReflect: Discovering Malicious Functionality through Binary Reconstruction ,相关代码开源在 DeepReflect Github 。 本文实验工作量十分丰富,篇幅所限这里 阅读全文
摘要:
概述 传统符号执行是一种静态分析技术,最初在1976年由King JC在ACM上提出。即通过使用抽象的符号代替具体值来模拟程序的执行,当遇到分支语句时,它会探索每一个分支, 将分支条件加入到相应的路径约束中,若约束可解,则说明该路径是可达的。符号执行的目的是在给定的时间内,尽可能的探索更多的路径。根 阅读全文
摘要:
注意 这条博客目前还非常不完善,可能存在一些错误,待后续完善 动机 编译时的优化。 编译器可以只根据本地信息进行一些优化。例如,考虑以下代码。 x = a + b; x = 5 * 2; 优化器很容易识到,x的第一个赋值是一个 "无用的 "赋值,因为为x计算的值从未被使用(因此第一个语句可以从程序中 阅读全文
摘要:
1. 污点分析的基本原理 污点分析可以抽象成一个三元组<sources, sinks, sanitizers>的形式。sources:污点源,代表直接引入不受信任的数据或者机密数据到系统中。sink:污点汇聚点,代表直接产生安全敏感操作或者泄露隐私数据到外界。sanitizer:无害处理,代表通过数 阅读全文
摘要:
概述 Motivation: dynamic taint analysis也被称为dynamic data flow tracking (DDFT)。State-of-the-art 的动态污点分析工具通常建立在动态二进制插桩之上,对每条可能的指令进行插桩并依靠运行时信息来决定指令是否需要进行污点传播 阅读全文
摘要:
文章 Liang H, Pei X, Jia X, et al. Fuzzing: State of the art[J]. IEEE Transactions on Reliability, 2018, 67(3): 1199-1218. 综述 Fuzzing技术可以概括为通过自动化生成并执行大量 阅读全文