hutrace的功能已经实现的比较全面了,dynamroio与pin虽然在对程序的分析处理上各有一定的优势,但是实际中测试下来dynamorio在Linux下的兼容性要比pin稍微差一点,存在一些无法用hutrace记录但pin可以追踪的情况,而且pin提供的接口功能也更丰富,故基于pin完成了大部分hutrace的功能,也即是下面要介绍的hzytrace工具。hzytrace目前仅支持linux平台,windows平台上基于dynamrio的hutrace在效率、兼容性上均优于pin,暂时就还没完善window下的hzytrace。
2022-06-06-hutrace工具系列第3篇之Linux应用
本文字数: 7.5k 阅读时长 ≈ 7 分钟
Linux上常用程序记录工具有strace、ltrace等,能够记录到程序的系统调用以及API函数调用信息,但是均无法得到进一步的调用位置等,hutrace则同时利用dynamorio实现了基本块以及指令状态等的记录,功能与Windows平台保持一致,本文仅对与win有差异的部分进行简单介绍,且Linux平台能公开的样例较少,内容偏少一点。
2022-06-06-hutrace工具系列第2篇之Windows应用
本文字数: 22k 阅读时长 ≈ 20 分钟
上一篇主要介绍hutrace的各个看着花里胡哨的功能,这里结合一些漏洞、样本的实例进行分析,日常工作见到的一些测试用例不方便公开,很多程序来自网上搜集,演示效果还不够好,而且本文主要目的是介绍hutrace功能用于辅助分析,对于用例的漏洞成因等不再介绍,暂时也确实没足够精力深入分析这些测试样例,网上也已经有比较多的文章了。。
2022-06-06-hutrace工具系列第1篇之基本功能介绍
本系列文章预计分4篇介绍下hutrace以及hzytrace工具,前3篇主要介绍下hutrace基本功能以及不同应用场景使用示例,hutrace工具本身是基于drltrace开源项目开发,支持Windows+Linux平台,最后1篇会介绍hutrace的同款工具hzytrace,hzytrace是基于Pin开发完成hutrace大部分功能,但侧重点略有区别,虽然hzytrace也可以支持windows,但Windows上相应需求基本可全部由hutrace达成,且效率更高,故目前暂先完善了Linux平台下的hzytrace。利用hutrace、hzytrace在很多分析场景下甚至可以不需调试就可以完成分析目的,因为Linux上找到样例偏少,本篇基本功能介绍部分将主要以Windows为例介绍其功能,实际两个平台上功能基本一致(dynamorio本身是支持arm linux、arm android的、pin也支持macos,但我自己测试移植到对应平台还有些问题,需求比较小众,对应平台也有一些替代工具,暂也没来及继续深入研究)。
2021-03-01-使用Unicorn模拟运行破解简单的IOS-IPA-Crackme
IPA是Apple程序应用文件iPhoneApplication的缩写。苹果手机上ios系统上安装开发的app,首先要将项目打包成ipa文件。利用IDA静态分析以及Unicorn的模拟执行功能,可以在没有ios调试环境的情况下对ios app开展静态分析以及模拟动态执行工作。
2020-06-05-Frida辅助分析OLLVM混淆的算法
看雪的安卓培训网课例子动手做了一遍,记录下Frida辅助分析OLLVM混淆的相关方法,,(自己记录总结备忘用的,详细的讲解还是推荐去听看雪的课,附件先暂不提供下载)。
2020-05-07-Frida常用Hook安卓APP方式
最近学习了下看雪的安卓培训网课,但是时间比较紧张,才抽空学了几节,课程很不错内容很干(大力推荐),例子动手做了一遍,记录下Frida常用的Hook方法,后续可能会根据内容拆成几篇总结(自己记录备忘用,主要还是靠多练习额。。光看这些没用,而且这里总结的也不够全面。详细的讲解还是推荐去听看雪的课,因版权限制附件先暂不提供下载),先备份下等有空了再把相关知识好好写写,现在根本不是能给人看的东西。。。。
2020-04-11-修改DLL文件不脱壳爆破虚拟机强壳
声明:仅作研究目的,不牵扯相关产品信息。
整理下之前见到过的一些绕过强虚拟机壳破解的知识,最近又见到一个Enigma加壳的64位程序,小伙伴让看看好不好破解,这个程序的注册算法还使用了Enigma的SDK保护,最初简单看了看都打算放弃了,后来意外发现这个程序SDK保护的并不完全,依旧存在被破解的可能,所以在实现软件保护方案时需要注意可能一个很小的疏忽都可能导致产品被攻破的。
2020-02-24-常见设备固件GDB调试环境搭建小记
本来想合并到上一篇固件镜像转换的,但是好像关系不大。没啥技术含量,备份下操作步骤及相关工具。
2020-02-24-常见格式固件镜像转换编辑工具
先做记录用,后续继续补充,整理下之前用到过的一些镜像转换、编辑工具,以及一些镜像如何打包gdbserver进行调试(打包gdb的内容移到另一篇了)等,常见情况下其中一两款工具就可以满足需求了,我也是少数情况下某个工具出现问题或者特定环境下换用其它的。
2019-10-22-记一次诡异的进程崩溃分析
2019-07-03-Chrome V8+Edge Chakra引擎漏洞利用技术分析(未完成)
2019-01-24-一段简单的Shellcode内存加载PE的分析
2018-02-06-Windows内核驱动与Rootkit杂记
这里主要介绍一下Windows驱动开发的一些基础知识,善用Windows驱动可以做到很多事情,比如常见的Rootkit隐藏文件、进程等,其实不仅仅是隐藏自身的目的,驱动可以做很多事情,获取到内核之后基本无所不能,但是很多情况下是理论上的,实际做到可能门槛很高,代价大,下面首先介绍一下驱动开发环境的配置(PS:本文是2020年初把以前内部交流的PPT整理了下发布,描述比较简单仅为个人整理记录备忘用,部分图片及文字描述如IRP部分来自麦洛克菲内核编程培训,其它有一部分忘记来源,当时是内部交流没注意保留来源,后来找不到出处了,如有侵权请与我联系标注来源)。
2018-01-10-利用硬件断点Hook法不脱壳爆破某VMP加壳程序
前几天得到一个VMP加壳的木马程序,要求bypass掉它的UKey弹框验证,虽然乍一看感觉挺麻烦的,当然最重要的是完成指标即可,没必要脱壳,能尽量减少工作量。因为不脱壳情况下代码未解密且存在文件校验,无法打文件补丁,最后考虑到这个程序的VMP壳没有开启反调试选项,所以最终通过模拟一个简单调试器完成了挂载程序爆破搞定,实际一共也就花了三四个小时。
2017-11-28-漏洞分析:MS17-017 Windows内核提权漏洞Exploit分析
原文以前首发到安全客了,这里备份一下,此次分析的内核提权漏洞为SENSEPOST的Saif El-Sherei在分析微软MS17-017补丁的时候发现的,该漏洞类型为win32k.sys驱动程序中处理GDI对象的函数EngRealizeBrush内发生的整型溢出,利用方式也比较经典,Saif El-Sherei在今年的Defcon会议上发布了一款针对Win7 Sp1 x86平台的Exploit,我就主要针对该Exploit进行了下简单的分析,如果分析过程存在问题,欢迎联系我交流指正。
2017-09-30-深入剖析:利用Flash漏洞传播的小马样本分析
原文以前首发到安全客了,这里备份一下,这是一个利用Flash漏洞CVE-2015-8651进行传播的病毒程序,关于这个Flash漏洞网上已经有了详细的分析报告,这里关注下利用这个漏洞进行传播的样本行为、通信加密方式等。
2016-01-17-Atom截胡-CVE-XX-XX内核提权漏洞分析
2015-12-19-句柄与句柄表结构简介
这里说的句柄指内核对象的句柄,窗口句柄hWnd等是另外的管理结构,不牵扯内核对象,系统的句柄表主要有三种,第一种是系统全局PspCidTable句柄表,保存所有进程和线程的句柄,第二种是进程内部句柄表,保存该进程所打开的内核对象句柄,最后一种是系统进程system的全局句柄表,这几种句柄表对应的格式都是一样的。
2015-12-18-内核对象结构简介
内核对象包括多种进程对象、文件对象等等,应用层每次创建或打开进程、文件都会对相应的内核对象创建一个句柄(进程的pid值其实就是该进程内核对象的句柄),这个句柄其实就是一个索引值,在通过句柄操作内核对象时,由内核根据该句柄值查找句柄表,定位内核对象的位置,最终完成相应操作。
2015-04-01-吾爱破解脱壳练习笔记
主要记录吾爱破解脱壳练习集的部分练习过程及脱壳方法总结,对关键点记录备忘,实际上脱壳需要看壳所具体开启的保护措施(如穿山甲及Pespin的Debug-Block)。除穿山甲及部分壳记录遗失或未记录外整体总结不够完整,还有三四款未做深入研究,待有需求时再做记录补充。
6 :telock笔记
方式一:
最后一次异常法记录最后一次异常的位置,然后设置代码段内存访问断点。运行即在OEP处断下,dump之后使用importrec的telock插件修复即可。
2014-02-28-逆向笔记【贰】
- PE文件各区段解释(区段名称跟功能没有必然关系,这里只是说明常见的定义):
- .code或.text段:存放程序的代码数据。
- .data段:存放程序运行使用的数据。
- .rdata或.idata段:程序的导入表数据。
- .edata段:程序的导出表所在的节。
- .rsrc段 :程序资源节,为多层的二叉排序树,节点指向PE文件的各种类型资源(图标、对话框、菜单等)。
- .reloc段:重定位表所在的节,实际加载基址改变之后,程序里的有些数据(如部分全局变量等)地址是写死的,程序加载时将这些数据的地址更新,重定位表就用来存放需要重定位的数据信息。
2014-01-05-逆向笔记【壹】
常见压缩壳:UPX、ASPACK、NSPACK。
常见加密壳:Asprotect、Zprotect、Yoda、Telock、Svkp。
常见虚拟机保护壳:Vmprotect、Themida、WinLicense 。
2013-10-26-彩虹表破解开机密码、MD5算法等的原理
或许对于大多数人来说,实际中并不需要了解这些理论,能够使用现成的工具就行,但是我个人觉得了解了这些可以将工具使用的更好,更何况理论研究中思维的碰撞也是一种乐趣。
简介
彩虹表技术以时空折中理论为基础,即增大存储空间的开销缩短密码破解所需要的时间,时空折中的相关理论在密码学中应用很广,最初是在1980年,公钥密码学的提出者之一Hellman针对DES算法提出的一种攻击方式,经过不断地改进,2003年瑞典的Philippe Oechslin 在Making a Faster Cryptanalytic Time-Memory Trade-Off一文中提出了一种高效破解windows开机密码的时空折中算法,并命名为彩虹表,当然当时是针对Windows Xp开机认证的LM-HASH算法。除了破解开机密码,彩虹表目前还应用于散列密码如SHA、MD4、MD5等算法的破译,速度快、效率高、疗效有保证,Philippe的论文中提到:“1.4G的彩虹表可以在13.6s内破解99.9%的数字字母混合型的Windows密码”,具有很强的实用性。
2013-08-07-HeapSpray+Rop绕过IE8的DEP防护--堆喷射技术利用超星老漏洞
堆喷射技术已经发展很多个年头了,相关的研究也挺多的,虽然现在Win7、Win8系统下的利用越来越难,但是该技术仍然是可用的,比如最近新出的IE8 use after free漏洞(CVE-2013-1347),Metasploit里的利用代码就是使用堆喷技术及ROP实现Shellcode的布置和绕过DEP防护的,网上有关的资料不多,0Day2书中有关的内容并不多,只是简单介绍了HeapSpray技术,并没有讲解如何结合ROP绕过DEP防护,在看雪上有讨论过这个漏洞在IE8上的利用,我尽量把做的过程写的详细些,细节和学习过程遇到问题的解决方案都做一下说明,本人很菜,高手飘过,如果有问题欢迎交流,希望能对学习漏洞的人有所帮助(工具及资料都会打包提供下载)