程序人生

代码疯子的技术博客——记录我的技术成长过程[C++ / Python]

4894人订阅
在签名的程序中隐藏和执行恶意软件? 在Blackhat USA 2016上,来自Deep Instinct的安全研究人员呈现了一个名为《Certificate Bypass: Hiding and Executing Malware from a Digitally Signed Executable》的演讲,咋一看还觉得挺惊奇的,听过演讲之后才发现原理十分简单,而且大部分内容都集中在内存加载PE文件上,于是忍不住又是一阵惊奇:这也可以?在仔细读完作者的Paper之后,发现和传统技术点还是有区别的,不过也有很大的限制。 早期的恶意[......]继续阅读
深入解析DLL劫持漏洞 0×00. 导读 DLL劫持是一种古老的技术了,本文是《CVE-2016-0041 Windows 10 PhoneInfo.dll Hijacking Vulnerability》的延伸,介绍了DLL劫持的漏洞原理、漏洞挖掘方法、漏洞利用场景等,同时引入了HaifeiLi关于Chrome/Edge自动下载漏洞的介绍,以及最新版本Edge对DLL注入的缓解措施。本文已在外部发表于乌云知识库,特别感谢tombkeeper在行文思路上的建议。 0×01. DLL劫持漏洞介绍 1.1 漏洞简[......]继续阅读
CVE-2016-0041 Windows 10 PhoneInfo.dll Hijacking Vulnerability 微软在2016年2月份发布的补丁中补掉了一个DLL劫持漏洞,该漏洞是MS16-014漏洞之一,CVE编号为CVE-2016-0041。在2015年12月份我注意到了这个漏洞的存在,但是并没有报告给微软,因为我没有给微软报告过漏洞……当时候特地去搜了一下关于phoneinfo.dll的信息,发现只有TK(@tombkeeper)在2015年的CanSecWest安全会议上的一个议题中(Sexrets of LoadLibrary)有提及。 0×01. 漏洞发现 当时候我在Windows 10下监控[......]继续阅读
绕过010Editor网络验证 010Editor是一款非常强大的十六进制编辑器,尤其是它的模板功能在分析文件格式时相当好用!网上现在也有不少010Editor的破解版,如果没钱或者舍不得花钱买授权的话,去官方下载安装包再使用注册机算号是一个比较安全的选择。不过010Editor是有网络验证功能的,可以在本地架一个HTTP服务器来绕过这个验证(网上也能找到通过修改注册表绕过的方法,没有验证)。使用Python的BaseHTTPServer模块就可以实现这个功能(继承BaseHTTPRequestHandler并重写do_GET[......]继续阅读
试用pydbg pydbg是基于Python实现的一个调试器框架,之前看《Python灰帽子:黑客与逆向工程师的Python编程之道》这本书的时候接触过一点,今天再次试用,记录一点使用心得。 0×01. 安装 1. 下载pydbg源码 从 https://github.com/OpenRCE/pydbg 下载 pydbg 的源码,解压后复制到 C:\Python27\Lib\site-packages 文件夹下,注意文件夹重命名为 pydbg; 2. 下载paimei源码 从 https://github.co[......]继续阅读
也来谈谈沙箱逃逸技术 今天在微博上看到有大神发表了关于沙箱逃逸技术的文章针对沙箱检测的逃逸技术小讨论,让我想起来我也还有几个有意思的小技巧,所以也来凑个热闹。需要声明的一点是,本文将要讨论的问题是我很久之前所做的总结,当前是否有效我没有去验证,所以,如果你实际测试的时候发现方法失效了,也请保持冷静! 0×01. 进程检测技巧 许多文章都会提到通过检测进程名字的方式来判断当前环境是否是虚拟机,那么自然要去比较进程名字了,而获取当前进程列表也无外乎几个固定的套路。我发现在检测特定进程名字的时候,是会触发火眼的监[......]继续阅读
STL笔记之二叉查找树 SGI STL的关联容器(map、set、multimap、multiset)底层都是基于红黑树(Red Black Tree,RBT)来实现的,红黑树是一种被广泛使用的二叉查找树(Binary Search Tree,BST),有比较良好的操作效率。 1. 二叉查找树 二叉查找树可提供对数时间的元素插入和访问,其遵循以下规则:任何节点的键值一定大于其左子树中每一个节点的键值,并小于其右子树中每一个节点的键值。不过在极端情况下,当所有节点位于一条链上时,二叉查找树的操作时间为O(N)。二叉查找树[......]继续阅读
Redis编程小技巧拾遗 最近接触了一下Redis数据,出于好奇看了下它的源码,觉得这是一个值得一读的开源项目。关于Redis的源码分析,已经有很多网友写了各种分析笔记,而且也有相关的书籍《Redis设计与实现》,因此我觉得完整的写一系列的博客就没有必要了,这里主要记录一些个人觉得有意思或者是值得了解的东西(之前面试也有问到一些问题,如果我早一点接触这些东西的话,可以回答的更好)。 如果对Redis源码有兴趣的话,可以先看一看1.0 Beta版的代码,非常的简短,对一些基本的东西有一个大致的了解之后再选一个新的稳定版本的[......]继续阅读
SSCTF逆向部分Writeup 11月1号~11月2号两天和队友参加了SSCTF,我主要做了一下里面Reverse相关的题目。SSCTF里面逆向相关的题目全是Windows下的CrackMe程序,除了Web分类里面夹杂了一个病毒分析题目外。总的来说不是很难,不过中间有个CrackMe是易语言写的,直接没有接触过这种题,就觉得有点棘手了,不过看了别人的writeup之后觉得还是非常简单的。 0×01. CrackMe1 通过IDA进行静态分析,可以很快找到关键函数位于00401000,F5得到伪代码,大致如下: 1 [......]继续阅读
XCTF HCTF Reverse Writeup HCTF已经过去很久了,整理一下其中两个简单逆向题的Writeup。 0×01. NormalFile 题目给了一张图片,把图片后缀改为zip,然后打开,有两个关键的地方:一个是解压根目录下有一个隐藏的desktop.ini文件,文件内容为“加油。。flag就在你眼前!”,基本没用;另一个是_MACOSX下隐藏了另一张图片。同样将图片的后缀改为zip后打开,基本断定这是一个APK文件,使用十六进制编辑器打开PNG图片文件,搜索IEND标志找到PNG文件末尾,删除PK标志前面所有的数据,就得到AP[......]继续阅读