自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (4)
  • 收藏
  • 关注

原创 战略转移, 各位zhihu见

这段时间有不少同学留言和私信我咨讯有关静态分析的问题. 感谢大家的热情, 但一来我这三脚猫实在水平实在有限, 而且这段时间确实很忙(CCS赶不上了::>_空闲时间我喜欢刷刷zhihu, 上面也有很多大神, 所以就把个人zhihu po在这里, 有兴趣的同学可以去zhihu找我.点我以后会开zhihu专栏, 各位敬请期待.鞠躬

2016-05-16 07:10:15 1044

原创 Visio 画括号等

“文件(File)”—“形状(Shapes)”--“其他Visio方案(Visio Extras)”—“标注(Callouts)”

2016-01-22 04:54:59 2225

原创 编译WALA

刚编译WALA时差点被恶心到。由于贡献者鱼龙混杂,特别是android支持那块,有些dep写的很屎。怎么能犯这么低级的错误。。。提两点,1. 在wala\com.ibm.wala.cast\lib下补commons-io-2.4.jar;2. 在com.ibm.wala.dalvik\lib下补commons-io-2.4.jar和dexlib-1.3.4.jar。目前就这

2016-01-18 12:53:47 1598 3

原创 Soot, FlowDroid 代码实例: 生成call graph, control flow graph等

安利一下老夫之前写的一些例子, 包含了些简单的实例. 移除了为我论文服务的核心代码, 等项目结束后会重新开源. 详情见我的github.

2016-01-14 10:14:19 6696 8

原创 Ant合并jar

需要把多个jar合并成一个, 参考了许多中文资料都不成功. 最后摸索出绝对可以的简单build.xml放在这作备份. 把它置于要合并的jar所在目录, cmd下直接运行ant即可.

2016-01-13 04:32:24 1247

转载 Ubuntu下安装Scheme/Lisp解释器

如果你也在陶冶情操闲暇时以SICP为乐,那必须先利其器。运行sudo apt-get install plt-scheme然后alt + F2输入drracket就能看到酷酷的半条命图标啦(雾)。还没完,需要在language中选择一种dialect, 选教学用就好了(否则不如直接去摸Scalar/Haskell).ref: http://www.cnblo

2015-11-25 14:23:17 3302

转载 搜狗输入法/ficix导致Ubuntu下CPU占用高解决方案

转自 http://www.findspace.name/res/786先用top或者system monitor杀掉ficix进程,再用如下命令重启即可。fcitx &fcitx-qimpanel &妈妈再也不担心老子电脑慢如王八啦!

2015-11-25 12:16:28 3834

原创 指针分析/Point-to Analysis/Reference Analysis

目录目录指针分析指针分析的目的基础Anderson 算法例子图示指针分析指针分析紧接数据流分析,是静态分析中的一个难点。遗憾的是能把相关内容讲得通俗易懂的资料非常少,中文的更基本没有。所以我斗胆在这里以例子的形式讲一下静态分析中的指针分析。参考资料主要在此. 如果有讲错的地方还望斧正。指针分析的目的对于任何一个指针/引用,能否在编译阶段就知道它会指向内存那块位置(位置在这里并不是0x

2015-11-21 10:44:23 7472 3

原创 Android 模块化编译的一些问题解决方案

mm指从当前目录开始编译,mmm是从指定目录下搜寻Android.mk编译。模块编译完成后,回到source code所在根目录运行make snod进行打包。在此期间遇到了如下问题:1. 修改/frameworks/base/core/java/android/app下文件后模块编译出现找不到R.stamp错误rm -r -f /out/target/common/obj/A

2015-06-07 00:50:04 3001

翻译 解决Ubuntu 14.04下gnome多显示器设置无法保存的问题

参考自http://askubuntu.com/questions/450767/multi-display-issue-with-ubuntu-gnome-14-04配置好gnome display setting后,在开机启动程序中添加命令pkill -9 -f gnome-settings-daemon即可。

2015-05-13 00:41:54 2315

原创 HMM

在项目中遇到了和语音识别中类似的无法准确切割信号的问题,于是想到了使用隐马尔科夫模型解决。 先聊一下隐马尔科夫模型中的”隐”字来源。下面讲到的例子原作者是知乎的Yang Eninala,出处在这里写链接内容。我将依据我的理解并且根据项目中实际的过程重新讲一遍。 说我现在在vegas, 赌场上一共有三个色子,分别是四面的六面的和八面的,每次选一个色子掷出点数。我把三个色子当做系统,在t时刻选中的

2015-05-08 00:45:02 1153 2

原创 LASSO

WhyWhat和岭回归一脉传承,只是惩罚项有所变化。

2015-03-17 11:27:00 5771

原创 Ridge Regression - 岭回归

Why 目的predictors X之间存在严重的多重共线性(multicollinarity, 即自变量之间线性相关-correlation很高)时,会导致p (|predictors|)< n (|observations|) 使得least-square(最小二乘法)计算公式β̂ =(XTX)−1XTY\hat{\beta} = (X^TX)^{-1}X^TY中的R=(XTX)R = (X^T

2015-03-17 01:57:21 2731

原创 WHYPER: Towards Automating Risk Assessment of Mobile Apps

又到了昊哥读论文时间. 今天搞的是一篇思路比较新颖的CCS 13’ paper. 作者来自于北卡州立(现在在UIUC)的谢涛组, 还算有点远房关系呢.之前一提到软件安全就离不开什么static /dynamic analysis, 不是model checking就是symbolic execution, 虽然每篇paper都用了很多吓人的terminology且都说自己有多么新颖, 站在外面看一看

2015-03-14 00:28:18 1315

原创 Binary Classification的另两种models

Why除了常用的logistic 模型做$Y = \{0, 1\}$的预测外, 还有Probit Regression 和Complimentary log-log 两种方法. Logistic 和probit 输出结果相似. 对于单变量, 没有证据表明哪种表现最突出. 但多变量时一般采用logistic. 考虑上篇的心脏病例子. $Y = 1$表有病, $Y = 0$没病. 现实中有病没病是通过测

2015-03-13 07:28:09 1612

原创 Logistic Regression -- 单自变量

Why传统的回归过程如线性回归解决的是YY为连续实数的情况。Logistic 回归是解决离散的分类问题,换句话说,要求YY是0或者1。 名字来自于指数分布家族中的Logistic 分布。What我们处理的是0-1分类问题. 输入n个样本, 第ii个样本为Xi,YiX_i, Y_i. XiX_i是有限的离散空间, YiY_i是00或11. 当X=xiX= x_i, Yi=1Y_i = 1发生的概率为

2015-03-11 12:52:32 2271

原创 统计学习

矩阵why为了更紧凑的表示一堆数并把复杂的乘除运算转化为简单的加减运算。what由向量引伸过来。矩阵是一个由数构成的表,而行列式是按一定运算法则确定的一个数。 Am∗nA_{m * n}表示一个m行n列的矩阵,当m=nm = n时,A被称作n阶方阵。 常见矩阵有单位矩阵: 主对角线上全是1,其余元素都是0的n阶方阵,记为InI_n.对称矩阵: ∀i,jaij=aji\forall i, j

2015-03-10 01:27:26 639

原创 部分最小二乘--PLS

Why和岭回归要解决的问题一样,同样是多重共线性导致的RR接近奇异使得β\beta的估算值β̂ \hat{\beta}过大。What定(Yi,xi)(Y_i, x_i)是第i个样本, xix_i是p维存在严重多重共线性(其实就是自变量有相关性,极端情况是线性代数里的线性相关)。和岭回归一样,首先做standardized(去中心干掉了截距,scale使得β\beta具有可比性;和correlatio

2015-03-09 13:03:16 2962 1

原创 线性代数的直观理解 -- Intuition in Linear Algebra

受《理解线性代数》启发,结合自身学习的经验,直观的总结我对线性代数的理解。强调直观是因为在这里不纠缠于数学的严谨性,所以如果追求数学严谨性和证明的还是去看教材比较好。统计的目标是对数表内各种数据进行挖掘从而找出隐含其中的关系,线性代数为统计提供了对数表的表达方式和对数表进行处理的工具。在初等数学中我们学过函数,用来表示的数据之间一种确定的关系,给定x一定能算出唯一的y。但现实中我们遇到的数据可就没有

2015-03-08 08:58:38 6202 1

原创 FlowDroid: 精确的上下文,流,字段, 对象敏感和生存周期感知的污染分析

一个Android app可包含多个组件,如activity, service, content-provider 和broadcast receiver。其中activity负责成像,也就是人机交互,是我们分析的主要入口和场所。不像传统的Java程序,Android app里不带main函数,我们无法简单的像之前一样找到程序的入口和出口来画控制流图,但app里每个组件都有函数来反应此组件的生命周

2015-02-16 15:25:15 10558 15

原创 用求解图内节点是否可达的算法来解决IFDS问题

IFDS 问题是 Interprocedure, Finite, Distributive, Subset 问题的所写,代表了一类比较典型的静态分析问题。Interprocedure 与Intraprocedure相对,表示分析包含函数间关系;Finite 表data flow fact集合元素有限; Distributive表Join operator(也叫meet或者confluence)是并

2015-02-15 15:24:35 6400 6

原创 静态分析理论基础

本blog我将简要讲讲我所理解的静态分析。参考了Lecture Notes和那谁的ppt。静态分析为在不运行程序的前提下,对程序的行为进行分析。静态分析核心思想总的来说就三点 1)控制流图 (CFG) 2)Lattice (格) 3) Transfer functions (转移函数,也叫constraints)。静态分析把程序转化成控制流图,程序中的每条语句对应图中的一个节点,每个节点都对应一个

2015-02-15 14:07:06 2556 4

原创 Operational Semantics in Programing Language (编程语言的操作语义)

之前一直不懂什么是semantics (语言), syntax (句法) 和grammar (语法),也不懂environment (context 上下文)到底指的是什么。 现在先简单讲下在自然语言下这些都代表了个啥。syntax和grammer是语法,即句子或者短语的组成规则,规定了什么样的句子或者短语是合法的句子或短语。一个句子由主谓宾构成即最基本的语法。而语义是指句子符合语法后所表达的意思

2015-02-15 13:59:51 1740

原创 Soot II: 数据流框架

设计数据流分析包含4步1. 决定分析的本质。是向前还是向后?是否需要对分支特殊考虑?2. 决定近似的目标。是may还是must? 具体来说是在merge时找交集还是并集。3.

2015-02-14 06:41:16 5063 5

原创 Soot I: 基本了解

Static analysis指在不对program进行运行的情况下,对其行为进行分析。搞compiler的人用之于优化,搞安全的用于做taint analysis。对于Java有两大开源的static analysis 框架,Soot和WALA,前者由McGill大学维护,后者是IBM。最新的Soot开始支持对Andoird 代码分析,包括static taint analysis。从这篇开

2015-02-13 15:58:47 18312 6

原创 Andoird Apps Reverse Engineering IV: DEX - Dalvik VM excutes

.dex文件作爲Dalvik VM的可執行文件,是我們分析的核心。我們先來看看對於一個apk它的打包過程是如何的。上節我們說了大致流程,現在我們來看下詳細流程安裝過程是如何的(略)。現在我們來詳細看看一個dex文件的組成。string_ids 到class_def皆爲索引,真實的數據存放在data區,link_data爲靜態鏈接數據區(目前爲空,預留)。其中DexHea

2015-02-01 00:37:24 1271

原创 Andoird Apps Reverse Engineering III: Dalvik Virtual Machine

继续上篇blog。上次粗略的引入了通过apktool得到的smali code。这次来谈谈详细谈谈Dalvik bytecode。Android 的apps 虽然基于Java, 但并非跑在传统的Java 虚拟机,而是跑在由Android 开发团队自己定制的Dalvik虚拟机上。Dalvik bytecode也即与跑在Java virtual machine 的java bytecode相对应的

2015-01-30 16:37:40 898

原创 Android Reversing Engineering II

接下来我将按照http://book.douban.com/subject/20556210/此书的内容快速将流程大致走一遍。在这里感谢书作者非虫。首先我按照书内容第二章用Android Studio开发了个简易的注册码验证app(代码见http://www.ituring.com.cn/book/1131)。并使用apktool把新开发的app解包并反编译成smali格式的反汇编代码。目

2015-01-29 15:56:27 875

原创 Android Reverse Engineering: Basics -- Tools Usage and Proguard

步骤参考http://blog.csdn.net/wawxf2008/article/details/21303907所在平台: Mac OSX 10.9.x所用工具: Android Studio 1.01 , dex2jar用Android Studio 生成一个默认blank activity (带个hello word)的兼容从2.3.3到5.01的apk。大小为934KB。

2015-01-29 09:19:07 1021

转载 关于VNC远程登录ubuntu的各种问题及解决方法

关于VNC远程登录ubuntu的各种问题及解决方法 (2013-04-11 10:42:37)标签: vnc ubuntu windows d键 全屏 1、系统配置首先要安装vnc服务器端  sudo apt-get install vnc4server2、安装完成后

2015-01-29 07:40:39 31085

原创 Ubuntu 14.04 遠程登錄

原先參考了 http://jingyan.baidu.com/article/8ebacdf0cdc64949f75cd555.html 此文設置了支持微軟遠程登錄協議remote access。發現每登錄一次就會創建一個新的session, 當創建到4個左右時就無法繼續創建了,也就無法登錄了。後來看到http://blog.csdn.net/sunnylgz/article/details/

2015-01-28 09:23:35 987

原创 androguard安装和使用 (一)

这两天在改好google play的crawler之后正式开始折腾androguard了。花了快一下午才在Mac上配置成功。这里说几点安装心得,for Mac OSX 10.9在brew里是找不到这些的。python-dev python-bzutils libbz2-dev libmuparser-dev libsparsehash-dev python-ptrace python-

2015-01-25 09:11:04 6174 4

原创 Life is a Game

看了《自控力》,重温了《7天治愈拖延症》和《》

2014-09-17 18:43:35 961

原创 Monte Carlo Method

Reference: Jonathan Pengelly, Monte Carlo Methods, 2002 Basic DescriptionMC为许多数学上难以解决的问题通过运行统计采样实验提供了近似解(approximate solution),所以MC也可定义为统计模拟方法。那统计模拟方法(statistic simulation)又是什么呢?就是任何通过利用随机数序列(se

2013-08-22 18:53:02 1510 1

原创 Google 不是神

Google毫無疑問是高科技巨頭的代表,業界標杆,牛逼xx,是我等磚男夢寐以求的磚廠。但是Google也不是神,它會犯錯,會做出許多不盡如意的產品。拿Android上的Chrome瀏覽器來說,曾經我是它的死忠,因為同步太方便了。有時候不得不用手機訪問在desktop上保存的照片,而作為Google的腦殘粉,巴不得把所有都同步到Google的雲端。Desktop上的Chrome瀏覽器無疑是出類拔

2013-07-31 00:40:55 749

原创 移植时的一点心得

今天做ECS175的Assignment 4.要把一个别人做好了的VC++ 6.0写的OpenGL的一个Battle Field的场景移植到Linux下用g++编译并能正常运行.好在OpenGL本身跨平台,而且源代码没有用MFC和过多的Windows部件.但是还是很苦逼的移植了将近一天.说说弯路.1) 不要一味的在Linux下改来改去最后两个平台都不能运行还不知道哪里错了.Soluti

2013-05-28 15:45:48 670

转载 函数名作为参数传递 与 回调函数

reference: http://space.itpub.net/10697500/viewspace-612406成员函数名不能作为参数传递,否则会发生错误,因为里面隐藏着一个this 指针回调函数,就是由你自己写的。你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可以在回调函

2013-04-15 14:42:46 1747

转载 Linux 死机了怎么办

今天在 Linuxgem.org 上面发现一篇很有意思的文章,和大家分享。{Via http://blog.upsuper.org.cn/what-to-do-if-linux-crash/}Linux 会死机么?我可以很肯定地说,会!要让 Linux 死机很容易,但难的是在死机以后如何安全的让他摆脱死机状态,本文讲述如何从 Linux 的死机状态中挣脱出来。Linux 死机有

2013-03-27 14:52:33 853

转载 我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了)

轉自:我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了)http://bbs.chinaunix.net/thread-2083672-1-1.html要过年了,发个年终总结贴,只是个人理解,不包正确哈。本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical add

2013-03-15 14:08:18 596

转载 Wozniak给青少年的一封信:自学和移动的重要性

最近Steve Wozniaks在他给韩国学生的信中给予了他对青少年的一些希望,并强调了自学和移动的重要性。苹果联合创始人Steve Wozniaks是济州论坛的明星嘉宾,去年他在这里发表了“PC时代的结束以及未来的IT产业”演讲。之后,19岁的杨研苏给他写信表示学校因为地理位置偏远没有很多跟成功人士交流的机会,所以希望Wozniaks给予一些有希望的话,来给学生们一些启迪,所以我们有幸看

2013-03-11 12:59:12 770

OPENGL C實現的掃描線填充

使用VC6爲IDE環境的二維圖形掃描線填充法。opengl。c語言。

2012-10-18

用C語言實現多邊形的種子填充算法

如題。有代碼。graphic頭文獻實現的有趣的效果。不停回車可以看到種子填充的路徑

2012-10-18

visual prolog 7.3

Visual Prolog 7.3的很好的简单例子。 对于刚接触VIP的人是很好的入门材料。代码转自他人,感谢原作者。

2012-05-09

A星算法解决旅行商问题:java实现

A星算法解决旅行商问题:java实现 有comment,通俗易懂

2012-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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