八月流水账

2013年8月27日 5 条评论

越来越觉时间不够用,有很多东西要学习,有很多事情要处理,可是效率却不高。现在连博客都没时间打理了,几个流水账吧,这两个月还是有不少事情的。
一、学习
感谢实验室的大力支持,我终于有机会参加几个会议长长见识了。
首先是七月底去西安参加了在西北大学举行的ISSISP2013(The Fourth International Summer School on Information Security and Protection),ACM和DAPA(digital asset protection a[……]

继续阅读

分类: 流水账本 标签: , ,

简单Android CrackMe分析3

2013年7月25日 5 条评论

作者:代码疯子
博客:Http://Www.ProgramLife.Net/ 求关注,求勾搭!
这是在crackmes.de上找到的一个Android CrackMe,也属于比较简单的类型,当然如果从学习的角度玩,可以尝试通过阅读smali代码并手动将其翻译成Java代码,最终写出一个Keygen出来。
分析之前先把apk装到模拟器上看一下,有两个Activity,提示了两个Hardware ID,需要输入用户名和注册码进行注册。
使用Apktool GUI将apk解包,查看AndroidMan[……]

继续阅读

简单Android CrackMe分析2

2013年7月8日 没有评论

作者:代码疯子
博客:Http://Www.ProgramLife.Net/ 求关注,求勾搭!
这是在网上找到的一个Android CrackMe,属于比较简单的类型,只是使用了ProGuard进行处理。
一、switch结构
在分析这个CrackMe之前,先说一下JD-GUI对switch结构的支持问题,知道这个BUG的存在就好了。JD-GUI反编译出来的switch语句可读性很差,所以最好结合一下smali代码看一下分支的走向。我们先来自己写一段switch代码,体会一下这个BUG。编译下面[……]

继续阅读

简单Android CrackMe分析

2013年7月3日 8 条评论

这是今年ISCC的一道Android CrackMe题目,相对简单的题,懂点ARM指令就差不多了,至于smali什么的,随便看看就好。大概玩一两个这样的CrackMe就对Android的逆向有个大概的了解了。不过后来发现这玩意是从非虫的《Android软件安全与逆向分析》上拿过来的原题,略显蛋疼。
这是个重启注册型APK,题目要求对其进行Patch,使得进入程序后就是企业版程序。首先,使用ApkTool GUI进行解包,发现这个App调用了一个NDK编写的so库文件,crackme6\lib\a[……]

继续阅读

分类: Android安全, CTF 标签: , , ,

Linux使用ROP进行栈溢出攻击

2013年6月25日 6 条评论

通过Protostar stack6演示Linux下ROP的简单使用,ROP就是所谓的Return Orientated Programming,早期也叫ret2libc,关于ROP的介绍可以看早期的文章《CVE2012-1889 Exploit编写(三)》,思路是一样的,只是平台换到了Linux下而已。
0x01. __builtin_return_address函数
先介绍下__builtin_return_address这个函数,这个函数接收一个参数,可以是0,1,2等。__builtin[……]

继续阅读

分类: CTF, Linux安全 标签: , , , ,

Linux GOT与PLT

2013年6月19日 2 条评论

读《深入理解计算机系统》第七章《链接》笔记。

在ELF文件的动态连接机制中,每一个外部定义的符号在全局偏移表 (Global Offset Table,GOT)中有相应的条目,如果符号是函数则在过程连接表(Procedure Linkage Table,PLT)中也有相应的条目,且一个PLT条目对应一个GOT条目。以简单的例子观察GOT与PLT的变化机制。

其实就是第一次调用函数之后,会修改GOT条目的内容,第一次相对来说慢一点,以后快一点。有点像Windows下PE文件的导出表条目中的FirstThunk和OriginalFirstThunk的东西。Linux的东西刚接触,如有错误,欢迎指正。

下面是一个简单的Hello World程序:[……]

分类: CTF, Linux安全 标签: , ,

Chrome源码学习之scoped_ptr

2013年5月8日 4 条评论

scoped_ptr是一个智能指针,Boost中实现了一份,用于管理指针(参考《设计模式之桥接模式 Boost::scoped_ptr》)。Chrome也自己实现了一份,但是比Boost实现的版本要更加复杂,前者支持数组,后者不支持数组(数组使用scoped_array)。本篇分析文件为src\base\memory\scoped_ptr.h,记录要点:
1. 将错误提前到编译器提示
错误越早发现越好,一些不合理的语句的使用如果能提前到编译器就检测出来自然是件好事,Chrome使用了enum技巧[……]

继续阅读

设计模式之桥接模式 Boost::scoped_ptr

2013年4月29日 3 条评论

打算把Chrome浏览器源码阅读的一些笔记写到博客上来,Chrome是个大工程,源码下载下来光压缩包就有2G多,解压之后6G多,过段时间我会写一篇如何编译Chrome浏览器的文章。最近阅读了src\base下部分基础组件的代码,感觉学到了很多东西。本文作为第一篇,可能看起来和Chrome没什么关系,不过这个知识点会在实际的开发中经常用到。
你可能没有系统学过设计模式,不懂桥接模式是什么玩意,没关系,你应该见过Impl;你也可能没接触过Boost,不懂scoped_ptr是什么,没关系,你应该见过[……]

继续阅读

error LNK2019 无法解析的外部符号

2013年4月20日 3 条评论

我是菜鸟我是菜鸟……最近遇到一个常识性错误,关于内联函数的(error LNK2019 无法解析的外部符号)。
通常编写函数时,会把声明放到头文件(*.h)中,而把函数定义放在源文件(*.cpp)中,在其他源文件中使用时包含对应的头文件即可。
但是内联函数(inline)不要定义在cpp文件中,因为我们通常都是包含头文件,而编译器在编译时会对内联函数进行展开操作,但是编译器只能在包含的头文件里搜索函数的定义体,如果头文件只有声明,显然编译器不知道该如何展开,于是就出错了。
每一个使用内联函数的地[……]

继续阅读

HqBaiduMusic V2.0 百度音乐高品质下载Chrome扩展

2013年4月9日 19 条评论

无力吐槽,大家手工下载吧
百度反应这么快,无力吐槽有木有啊~ 那就在这里告诉大家怎么手工下载320Kbps的MP3吧,如果再封了那我也没办法了,大家可以试用下他的会员(有七天体验期),说邀请好友最长可以达到3个月,当然用完了也没法了。好了,不多废话,下面开始。
1. 搜索你要下载的音乐,然后点击歌曲名字进入到歌曲页面(如风吹麦浪,对应的一个地址为http://music.baidu.com/song/34182398)
2. 点击“保存到云”这个按钮,如图所示:
收藏到百度云音乐
3. 打开百度云音乐(http[……]

继续阅读