Reverse Engineering
文章平均质量分 54
vbvan
这个作者很懒,什么都没留下…
展开
-
How small can a functional PE executable be?
你知道最小的PE(Windows平台下EXE可执行文件的默认格式)有多大吗?你可以看一下这个:http://www.phreedom.org/solar/code/tinype/简而言之: 最小的PE文件: 97 bytes Windows 2000平台下最小的PE文件: 133 bytes 最小的能够从网上下载并运行一个程序的PE文件: 133 bytes原创 2007-10-30 18:36:00 · 1123 阅读 · 0 评论 -
DreamSpark
DreamSpark是Microsoft公司向大学在校学生提供免费软件资源的项目,需用使用edu.cn的邮箱进行注册验证。注册之后可以获得一个验证码,这个验证码可以用于获取产品序列号和下载软件。学生可以在非商业性个人教学课程学习和科研中免费使用这些产品。对于非Express版本的软件来说,中国学生实际的下载地址都会指向IP为202.112.35.244的ftp。ftp的用户名为你的用户id,密码为原创 2008-05-29 19:14:00 · 5109 阅读 · 0 评论 -
汉之云的“免CD”,盗版商的胜利?
(注:因为评论中有回复说mycrack和MENTING不是一个人。慎重起见,对文章内容作了修改) 虽然破解汉之云并不是一件很困难的事情,但是这么快就出现盗版还是有些出人意料。操刀此次破解的是“MENTING”(不知是否就是看雪论坛的那位MENTING?),和盗版商同流合污,特意将10M+的解密数据隐藏在了3G的垃圾之中。SecuRom 的脱壳早已不是什么秘密,ARTeam有详细的教程。SecuR原创 2008-01-03 11:34:00 · 7038 阅读 · 6 评论 -
程序分析实例 - 无双大蛇(Orochi)
下面以对KOEI的无双大蛇的一个bug的研究为例,介绍程序分析的基本方法。无双大蛇是KOEI公司推出的一款动作类游戏,3.20日发布了日文PC版。在游戏过程中发现,进入某些战斗的时候程序会陷入死循环,具体表现是在菜单中选择战斗场景之后,画面变黑,但是一直不出现战前配置的界面。Alt+F4关闭主窗口之后,还可以在任务管理器中找到它的进程。因为是进入战斗场景时发生的问题,猜测可能是读取或者解析场景原创 2008-03-26 10:08:00 · 6649 阅读 · 4 评论 -
解密QQ消息文件格式
QQ的消息实际上是存放在本地的,位于"QQ安装目录/QQ号码/MsgEx.db"内。关于QQ消息文件格式的文章,网上有不少,但是没有一篇是完整并且可重现。结合QQ聊天记录察看器 5.1,我做了一些研究,重现了读取并显示历史消息的完整过程。一个很好的学习QQ相关算法的实例,是它的Linux版本LumaQQ首先,MsgEx.db文件的大致结构可以参考QQ聊天记录查看器 5.3 华军版IStorage的原创 2007-12-14 21:16:00 · 19920 阅读 · 39 评论 -
C++ Internals: 序言
要深入了解一门语言,必须同时了解其内部机理,这样才能合理高效的使用它。本系列文章旨在介绍C++各种特性是如何实现的。VC RTTI C++ Internals: VC RTTI - 基本数据结构 C++ Internals: VC RTTI - typeidC++ Internals: VC RTTI - dynamic_cast (1) C++ Internals: VC RTTI - dyn原创 2007-12-16 13:21:00 · 4290 阅读 · 0 评论 -
C++ Internals: VC RTTI - dynamic_cast (2)
返回目录下面进入正题,让我们见识一下dynamic_cast到底是如何实现的。首先,在你调用dynamic_cast之前,编译器会帮你进行语法检查。如果指针的静态类型和目标类型相同,那么就什么事情都不做。否则,首先对指针进行调整,使得它指向vftable,并将其和调整之后的指针、调整的偏移量、静态类型以及目标类型传递给内部的__RTDynamicCast函数。其中最后一个参数指明转换的是指针还是引原创 2007-12-09 17:12:00 · 4828 阅读 · 0 评论 -
GoogleBook页面地址获取工具
Google给每个页面图片的地址都加上了验证码来防止批量下载。通过对网页源代码的分析,可以发现每个页面都包含1~5个相邻页面的图片验证码。同时,每个页面都包含所有其它页面的地址。因此可以很容易的写出一个批量获取图片地址的小工具(工具可以在CSDN下载)首先进入你要分析的book的某一页,将浏览器地址栏的地址传给GoogleBook即可比如:GoogleBook "http://books.goog原创 2007-12-07 22:03:00 · 3998 阅读 · 6 评论 -
游戏资源提取软件介绍
注:资源的版权属相应的游戏公司所有,请勿将提取得到的资源用于非法的用途。中国EgoUnpacker 支持提取Studio e.go!公司的游戏。LeafUnpacker 支持提取Leaf公司的游戏。 这两款都是windseven的作品,采用类似于WinZip的界面,仅支持解包。不过他在ys168上的网盘已经不存在了。Kid Tools GUI v1.5 build 050905原创 2008-02-24 18:36:00 · 25170 阅读 · 27 评论 -
C++ Internals: VC RTTI - dynamic_cast (1)
返回目录相对而言,dynamic_cast的实现比较复杂,因此我们首先看一下它的简化版本dynamic_castvoid *>。根据标准5.2.7-7,dynamic_castvoid *>会将当前指针转化为指向实际对象(most derived object)的指针。比如说: class T1 {public: virtual ~T1() {}}; class T2 {public: vir原创 2007-11-30 13:28:00 · 3892 阅读 · 0 评论 -
C++ Internals: VC RTTI - 基本数据结构
返回目录网上资料比较少,ms还是有研究的价值 ^_^相关资源:Reversing Microsoft Visual C++ Part II: Classes, Methods and RTTIReversing C++C++的RTTI一旦遇上了多重和虚继承,简直就是噩梦 -.-这里介绍一下VC中用来表示RTTI的内部数据结构(具体可以参考《Reversing C++》里的描述)。利用下面的程序可以原创 2007-11-29 19:41:00 · 5194 阅读 · 1 评论 -
RPGViewer - 游戏常用压缩算法的介绍和识别
deflatehttp://www.zlib.net/这是ZIP默认采用的压缩算法。ZIP格式使用非常广泛,不仅有开源的C实现-zlib,还有众多的商业解决方案。因此在游戏中采用deflate,可以大大降低编程的成本。很多国外游戏的档案都采用这种压缩算法,或者直接使用ZIP文件格式存储资源。目前不少国内厂商也开始采用deflate。默认ZIP使用的deflate,传入的WindowBits是-0x原创 2008-02-25 11:26:00 · 12612 阅读 · 15 评论 -
C++ Internals: VC RTTI - typeid
返回目录在研究过VC的RTTI的基本结构之后,我们先来看看最简单的typeid是怎么实现的。在VC中,当你对多态类的指针ptr使用typeid(*ptr)之后,编译器会做两件事情:首先是将指针进行调整,使它指向当前类的vftable处(注意,类的vftable未必处在类的开始),然后再调用__RTtypeid,返回type_info对象。我们可以试验一下下面的代码。 templatetypenam原创 2007-11-29 21:54:00 · 4790 阅读 · 0 评论 -
IDA Pro中"The database is corrupted"的解决办法
ida pro默认不允许你打开由其他用户创建的idb文件,这给逆向分析带来很多不便。经过研究发现,ida pro会在idb文件中存放ida.key的信息,用于标示创建者。因此我们需要用自己的ida.key中的内容进行替换。注: 替换之后,打开idb文件会提示校验失败,保存一下就好了。另外当idb以deflate方式存放的时候需要先解压缩之后再进行替换首先打开你的idb文件,查找"$ origina原创 2007-11-16 13:07:00 · 5793 阅读 · 2 评论 -
用Winhex dump exe
为了顺利地dump,你需要准备一个内存编辑工具,比如Winhex(www.winhex.com/winhex )。下面是dump的具体步骤:首先运行exe,然后执行Winhex菜单中的“Tools”-“Open RAM...”找到你要dump的exe对应的进程,打开相应的exe。比如我们要dump Explorer.exe:点击OK,这样你就可以在Winhex的编辑窗口中看到该EXE在内存中的镜像原创 2007-11-09 13:03:00 · 4487 阅读 · 0 评论 -
RPGViewer - 档案文件格式概述
或许你经常见到某些游戏安装的时候会拷贝无数小文件到你的硬盘,而某些游戏只有若干个大块头的数据文件。我们姑且称这些大块头为“档案文件”(Archive或者Package)。它里面包含了成千上万个小文件。把小文件打包成一个单一的档案文件有若干优点。首先,类似于我们常用的zip和rar格式,压缩打包之后,可以大大降低占用的磁盘空间。即使不进行压缩,打包之后也便于管理。其次,打包之后可以简化游戏程序访问资原创 2007-11-01 16:03:00 · 4103 阅读 · 0 评论 -
藏经阁保护方式研究
藏经阁是比较著名的盗版系列,它对盗版光盘采取了保护措施。如果你将里面的安装程序拷贝到硬盘直接安装的话,会出现如下的提示:你买的不是gamez88的盘,请去退盘显然猫腻在光盘上。如果你用UltraISO打开光盘,可以看到隐藏的9999目录,里面有一个300000000字节的8888.dat文件(注:每期盘的隐藏文件都不尽相同)我们用ProcMon跟踪一下就会发现,安装程序会尝试打开隐藏文件。根据原创 2008-12-03 00:13:00 · 6890 阅读 · 2 评论