摘要:这两天闲来无事,想起来许久之前曾答应朋友试着分析一下这个拨号器加密方式,花了几天时间分析,于是有了本文。下面将描述加密过程的技术细节,以及一些破解的心得。 首先,该拨号器存在三个平台的三个版本,但鉴于Windows下拨号过程需经过两次麻烦的握手(一次失败拨号,获取失败的返回值并参与第二次加密过程,从而最终生成密文),我最终选择了Linux版本来进行分析。 将拿到手的拨号器用IDA打开分析一下,发觉程序大部分数据都是不可识别的,整个程序只有一个段,且整个段是可读写执行的。这显然表明程序是加壳了的,只能动跟了。于是在虚拟机里跑一个ubuntu,在宿主机器上通过IDA对ubuntu里的拨号器进行远.
阅读全文
摘要:好的,文接上回,本文我就来讲讲微软link.exe连接器的Incremental Liking这个特性。当然这个其实不是微软linker独有的特性,很多链接器都有这个特性,这个特性实际上是为了提高链接速度的。 想象一下这个场景,我写了两个函数foo()和bar(),其中foo()在0x400100处而bar()紧接着保存在0x400200处。现在我将foo()改写了一下,添加了一些perfect的功能,然后编译了新的代码。不过现在的麻烦是foo()不可避免的变大了,他现在需要200h字节来保存了。那么链接器该怎么办? 一般的思考是——重新洗牌,将现有的编译好的exe删除了,然后重新布局所有的.
阅读全文
摘要:最近由于各种原因想要研究一下PE文件,要彻底研究PE和COFF文件格式当然是非研究微软自己的技术白皮书——《Microsoft Portable Executable and CommonObject File Format Specification》不可了。于是花了一点时间看看,有些心得,和大家分享一下。 首先本文不是讨论PE文件格式本身的,这属于技术规范的范畴,大家要是感兴趣可以参看上文中提到的微软的资料。要是不太喜欢E文的朋友也可以在网上找到很多描述PE格式的文章,在就不再这里赘述了。再说,就算我想讲,估计也讲不好(受限于本人的语文水平orz) 我们都很清楚,实际上PE格式文件里面的.
阅读全文