<?xml version="1.0" encoding="utf-8" ?>
<!-- generator="FEEDCREATOR_VERSION" -->
<rss version="2.0" xmlns:sns="http://blog.sina.com.cn/sns">
    <channel>
        <title>没有人的城市</title>
        <description></description>
        <link>http://blog.sina.com.cn/bluescity</link>
        <lastBuildDate>Wed, 26 Oct 2011 00:22:18 +0800</lastBuildDate>
        <generator>FEEDCREATOR_VERSION</generator>
        <language>zh-cn</language>
        <copyright>Copyright 1996 - 2009 SINA Inc. All Rights Reserved.</copyright>
        <pubDate>Thu, 16 Feb 2012 12:26:10 +0800</pubDate>
        <item>
            <title>W20DEARX硬盘使用心得</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100uupi.html</link>
            <description><![CDATA[<div>
前言：新入手一个2T硬盘，折腾了不少时间，把这段时间的使用心得记录下来，以供参考。题外话……，在入手硬盘的第二天泰国就发大水了，结果全线涨价了，不知道现在应该用什么心情面对才好了……</DIV>
<div>另外，关于高级格式化 advanced format 其实应该翻译为：先进格式化
才对，原来用的这个词在中文中有其他的意义的，很容易把人弄混乱。</DIV>
<div><span STYLE="line-height: 72px; font-size: -webkit-xxx-large;">*<a HREF="#SinaEditor_Temp_FontName">关于数据对齐程序</A></SPAN></DIV>
<div>由于新品种的硬盘使用的是4K扇区，而不是之前的512byte的扇区，为了兼容旧的程序就需要进行这个数据对齐程序。</DIV>
<div>从官网上的下载需要你注册产品后才给下载……真是蛋痛。</DIV>
<div>相关下载地址</DIV>
<div>
http://support.wdc.com/product/download.asp?groupid=608&amp;lang=en</DIV>
<div>WD Align Windows - Powered by Acronis 这个，已经改了个名字了</DIV>
<div><br /></DIV>
<div>看了下说明，感觉这个是在纠正分区的边界而已，如果重分区后可能要再次使用才有用的样子。</DIV>
<div>说明是说WIN7下用自带的工具分区不需要使用，但是如果在WIN7下用其他的工具分区来分的话也还是需要的。</DIV>
<div>也就是说，必须使用新的支持4K分区的工具才不需要对齐而已，和系统什么的无关。</DIV>
<div>以后新出的硬盘分区工具应该都可以支持的了，所以到时这个工具应该就没什么用了。</DIV>
<div>建议挂从盘分区，如果有数据再进行对齐会弄得很慢。</DIV>
<div><br /></DIV>
<div><a HREF="#SinaEditor_Temp_FontName"><font SIZE="7">*关于速度的问题</FONT></A></DIV>
<div>
也是因为4K扇区的问题，旧式硬盘如果要写入一个扇区数据，直接写入512byte就行，而新硬盘需要先读出4K数据，把其中的512byte改成新的数据，再写回去，所以即使是对齐了，理论上XP下可能也只有1/2到1/8的速度吧（大量随机小文件的读写操作条件下）</DIV>
<div>
理论上只有在WIN7打上补丁后能达到正常的速度，需要NTFS分区，并且分配单元是4K的倍数（默认的是4096，正好是4K的)</DIV>
<div>此外在对齐程序的下载界面上有提到一个针对Nvidia系列主板的WIN7补丁：</DIV>
<div>
http://www.wdc.com/global/products/features/?id=7&amp;language=1</DIV>
<div>补丁直接下载：</DIV>
<div>http://support.microsoft.com/kb/982018</DIV>
<div>不过即使这样，也只是能达到一般硬盘的速度的而已。毕竟是新技术，还需要一般时间更新让所有的软件兼容才行……</DIV>
<div><br /></DIV>
<div><a HREF="#SinaEditor_Temp_FontName"><font SIZE="7">*西数
C1（磁头升降次数）门&nbsp;</FONT></A></DIV>
<div>
所谓C1门，就是西数的硬盘，为了节能，硬盘磁头在无操作一定时间后，自动移动会停泊区，因为西数设置的时间太短(内定的为8秒)，所以磁头的起降相当频繁，据称达到30W次以后，磁头将会随时报废。</DIV>
<div>个人感觉应该不是什么问题，只是设计上的问题而已，不过为了安心还是可以关掉的。关掉的办法是使用wdidle3 1.05
(WD的官方网上就有下)，需要在DOS下运行才行，并且拔掉其他的硬盘，因为这个工具不会给你选硬盘的，会直接对接在机子上的所有硬盘进行操作的。</DIV>
<div>
因为关掉会少一项功能，我是设定为最大值：300(5分种)来使用的，或者作为系统盘来使用，这样子它就不会自动停了，毕竟如果5分种时间内不使用的话，也可以进入节能模式了。</DIV>
<div><br /></DIV>
<div><a HREF="#SinaEditor_Temp_FontName"><font SIZE="7">*开启AHCI和NCQ</FONT></A></DIV>
<div>
要发挥新硬盘的能力最好的办法是开启硬盘的NCQ功能，看了下说明感觉对于4K的硬盘很有用的，能大概提升10%的速度。开启NCQ需要先开启主板的AHCI功能，一般的主板都已经支持这个功能了的。但是启用的话需要完全重新安装系统才行，无论是XP还是WIN7都需要，WIN7下直接改注册表的办法证明是无效的。</DIV>
<div>不过最主要的麻烦在于开启后就不再兼容DOS下的全部程序了，此时硬盘相当于是SCSI设备了，没有驱动
ghost在DOS下会无法识别到硬盘了。真要用的时喉还要临时改回IDE模式……</DIV>
<div><br /></DIV>
<div><a HREF="#SinaEditor_Temp_FontName"><font SIZE="7">*XP下,1100Ｇ以后的空间无法访问，提示全是坏道.</FONT></A></DIV>
<div>
这个是开AHCI模式后才发现的问题，如果关了ahci换成IDE模式就是正常的，推论应该是驱动问题，GHOST版和XP自带的驱动可能有这个问题。在WIN7下没发现有这个问题。</DIV>
<div><br /></DIV>
<div><a HREF="#SinaEditor_Temp_FontName"><font SIZE="7">*关于驱动：</FONT></A></DIV>
<div>我主板是SUPoX磐正， nForce560 芯片</DIV>
<div>试了所有的驱动都安装不上去,强行安装直接蓝屏.</DIV>
<div>一直试到针对4的驱动才是正确的呀.</DIV>
<div>可用的最高版本是：</DIV>
<div>15.23_nforce_winxp32_international_whql.exe</DIV>
<div>SATA驱动版本为 10.3.0.42 (2008-8-18)</DIV>
<div><br /></DIV>
<div>WIN7下只能安装VISTA版的驱动（为什么没WIN7的驱动的呀！！！）</DIV>
<div>使用 nv_nforce_15.25_vista32 驱动中拆出来的10.3.0.46 驱动</DIV>
<div>安装正常后能在设置管理器中设置是否打开命令合并完成功能。比使用默认那个驱动在启动时快上很多了</DIV>
<div>不过在WIN7下安装后 hd turn 得不到硬盘的温度数据了，我的另一个软件却又可以正常读，感觉很奇怪的问题。</DIV>
<div>64位因为没安装，所以没试过……</DIV>
<div><br /></DIV>
<div><a HREF="#SinaEditor_Temp_FontName"><font SIZE="7">*关于命令合并完成</FONT></A></DIV>
<div>看说明这个功能对于4K硬盘能提升写入效率的样子</DIV>
<div>需要安装正确的Sata的驱动后才能看到这个选项</DIV>
<div>开启后用软件测试的结果，结果波动很大，看来是根据不同的数据有不同的效果的样子。</DIV>
<div>实际用了一阵感觉也不像会变慢的样子，于是一直开着了。</DIV>]]></description>
            <author>blues_city</author>
            <category>其他</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100uupi.html#comment</comments>
            <pubDate>Wed, 26 Oct 2011 00:22:18 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100uupi.html</guid>
        </item>
        <item>
            <title>自定义pylint的代码规范正则的办法</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100ui3o.html</link>
            <description><![CDATA[pylint
是一个方便的用于代码分析的工具，反正只要能通过它的代码，基本上跑起来是没有问题的。比C下的工具好很多，有能通过但无法跑的。总之，现在是没它写不了东西了……
<div>几个经常会遇到的问题：</DIV>
<div>
<div>如何知道一个错误的具体原因？</DIV>
<div>pylint --help-msg= C0111</DIV>
</DIV>
<div>C0111就是得到的错误的代码了。这个命令会显示出一些具体的提示或者修改意思之类的。</DIV>
<div>
<div>不检查某种错误。</DIV>
<div>参数&nbsp;</DIV>
<div>&nbsp;-d &lt;msg ids&gt;,
--disable=&lt;msg ids&gt;</DIV>
<div>例子</DIV>
<div>-d E1102</DIV>
</DIV>
<div>这个需要加到 命令行参数中去，如果 是使用 pydev 就直接加到下面那个大框子中就可以了，</DIV>
<div>另外一个办法是 可以直接在出错的行后面写上：</DIV>
<div>#IGNORE:E1102</DIV>
<div>
两个的区别是后面只是屏蔽出错提示而已，实际上你的评分并没有变化的，而前面的命令是直接不检查这种错误了，得分会直接上去的，不过，不推荐使用前面的办法，毕竟错误还是在那里的。</DIV>
<div><br /></DIV>
<div>
<div>自定义代码风格</DIV>
<div>大多数时候每人有个自己的代码大小写定义的，所以它内部指定的命令方法不一定都适合，所以可以修改为自己使用的式样的。</DIV>
<div>pylint --generate-rcfile &gt; pylint.conf</DIV>
<div>用来产生一个设定文件。</DIV>
<div>然后编辑其中的[BASIC]
这部分，有各种命名的正则表示，按需要改就行了，不会的请查看下正则表达式的写法，其实大多数是不必要修改，针对驼峰命名法只要加入一个针对可以匹配大写的“A-Z”这个表达就可以了。</DIV>
<div>最后在使用时加上参数&nbsp;--rcfile&nbsp;调用
就行了：</DIV>
<div>例：</DIV>
<div>pylint --rcfile=pylint.conf dw.py</DIV>
<div>注意的是在pydev中调用时需要使用完整的路径。</DIV>
<div><br /></DIV>
<div><br /></DIV>
<div>参考：</DIV>
<div>http://tech.ddvip.com/2009-12/1261124629141546.html</DIV>
<div>&nbsp;</DIV>
</DIV>]]></description>
            <author>blues_city</author>
            <category>程序</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100ui3o.html#comment</comments>
            <pubDate>Sun, 09 Oct 2011 16:30:19 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100ui3o.html</guid>
        </item>
        <item>
            <title>幸福的青鸟</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100psj2.html</link>
            <description><![CDATA[传说中，青鸟能够带给人们幸福。<br />
从前有一只青鸟，人们看到他，就会说“真是幸福呀~”。但这只青鸟自己却无法理解什么是幸福。于是他开始环游世界，希望能了解什么是幸福。他走到了很多地方，人门看到他就会说“真是幸福呀~”，可是他自己却越来越难以理解什么才是幸福了。他开始感觉到是不是在给人带去了幸福的同时，把不辛都留给了自己，于是他开始害怕人类，害怕听到“幸福”这个词了。直到有那么一天，他发现当人们看到他时再也不会发出那个单词了。<br />

他没办法再给其他人带去幸福了吗？但他依然感觉不到自己的幸福。于是他回到了自己故乡，回到了原本一直呆着的地方。在那里，有另一只青鸟，代替他，接受着人们幸福的赞扬。就在那里，没什么特别的，不在意其他人评论，不在意自己的身姿，也时不时的在思考着什么。他虽然也没有感觉到自己有什么变化，“真是幸福呀~”，他却也这么说了。于是他变成了人类，成了每天对着青鸟赞扬的那些人类中的一员，直到有一天，那只青鸟也消失了……
#bluebirdStory<br />
后记：本来想的时候是个很甜的故事……结果写到结局的时候不知为什么就变黑了……。果然是被阿虚的小圆脸害的吗……<br />]]></description>
            <author>blues_city</author>
            <category>自言自语</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100psj2.html#comment</comments>
            <pubDate>Tue, 08 Mar 2011 15:18:08 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100psj2.html</guid>
        </item>
        <item>
            <title>关于日文中Ka行和ta行在行首和行中发音的问题的研究</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100oj0l.html</link>
            <description><![CDATA[<div STYLE="text-align: center;"><font STYLE="font-size: 20px;">关于日文中Ka行和ta行在行首和行中发音的问题的研究</FONT><br /></DIV>
<font STYLE="font-size: 20px;"><br />
<font STYLE="font-size: 12px;">目录:</FONT></FONT>
<div>
<div><a HREF="#$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.h0">关于日文中Ka行和ta行在行首和行中发音的问题的研究</A></DIV>
<div><a HREF="#$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.h58">
为什么我听か有时发ka音有时发ga的音呢？</A></DIV>
<div><a HREF="#$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.h1152">
那么应该如何发 ［b］［d］［g］ 音呢？</A></DIV>
<div><a HREF="#$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.h1671">
结论，这个是送气清音和不送气清音和浊音的区别</A></DIV>
</DIV>
<br />
<a>Back</A>
<hr SIZE="1" />
<a NAME="$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.h58"></A>
<h2>为什么我听か有时发ka音有时发ga的音呢？</H2>
最近在学习日语中，这个问题一直在困扰着我，明明是同一个假名，却会听出两个音出来。查了下书，书上说KA行在行首时发K的音，在词中或者词尾是g的音，ta行则会变成da行的音。(修正：这个结论是错误的，而且这个g字指是的中文的g音，而不是日文中的g音)<br />

很显然……我的脑子无法接受这个结论的。<br />
在检查了各种发音原理后，原来这个是中文发音的问题呀……<br />
首先，か的发音按国标音标来拼其实是[kha],（wiki: 清軟顎塞音 <span><a HREF="http://zh.wikipedia.org/zh-cn/%E6%B8%85%E8%BB%9F%E9%A1%8E%E5%A1%9E%E9%9F%B3">
http://zh.wikipedia.org/zh-cn/清軟顎塞音</A></SPAN> 另，
这里的h是个上标的小写，我做不出那种格式来。这个标示表示在发音时需送气)，而这个发音是和中文拼音中的ka是相近的。而在中文中经常发的ga音，其实是[ka]来的，就是不送气的KA音而已。而日文中的[ga]音属于浊音(wiki:浊软颚塞音
<span><a HREF="http://zh.wikipedia.org/zh-cn/%E6%BF%81%E8%BB%9F%E9%A1%8E%E5%A1%9E%E9%9F%B3">
http://zh.wikipedia.org/zh-cn/濁軟顎塞音</A></SPAN>
)，虽然很接近中文中的ga，但是实际上这个音在中文中是不存的。而我们听到的ka音变成ga音的现像，其实只是[kha]这个音变成[ka]音而已，即送气音变成不送气音而已。日文中送气与否并不作为语义的区分，所以，其实我们听起来是两个音，在日本人耳中其实都是一个意思的。<br />

这个并不是日语特有的现象。在英语和其他语言中也有类拟的现像。<a HREF="#$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.f4">[4]</A><br />

比如最普通的在英文中s后的音节变音的问题：比如 student
这个单词，在s后面的音节t,听起来很像是d音，但是实际上是个不送气的t音而已。(才发现一直被坑爹了，以前从来不知道，以前一直听老师这样子说要变音的。)
英文同日文一样，同样也是［p］［t］［k］这三个清辅音有送气音变不送气音的变化。并且由于不区分词意而可以被视为同一个词。<br />
所以应该怎么发音呢？<br />
我认为应该直接发KA音就可以了还方便记忆。日本人是听不出来区别，或者认为是一样的（推理，后详)<br />
（修正：问了下在日本的人，可能日本人还是听得出来的，虽然意思他们都能正确理解，一般的场合下也不会去纠正你的，虽然这个例子也无法确认大多数人是否是真的听得出区别来……）<br />

关于会不会听起来怪怪，或者难受的问题。难受的不是听的人，而是发音的你而已。<br />
日文的语速是世界上最快的（难怪有会咬到舌头的事）。需要一口气把这么多音节发出来，中间还需要用气流发出送气音是根本不可能的事，在读多读快了后自然就会发成不送气的KA音了的。<br />

<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.h1152"></A>
<h2>那么应该如何发 ［b］［d］［g］ 音呢？</H2>
问题解决了一半，因为你直接在词中把ka发成ga音是完全合法合理的了，但是现在的问题变成了 怎么发［b］［d］［g］这些浊音的问题了……
完全没有办法……据说在江浙一带的方言中如果有带浊音的人可能听得出来区别，但是大多数中国人并不能区分出不送气的 ka 音和 浊音 ga
的区别。虽然知道发音的方法和区别就是同清音一样，只是需要一开始就需要震动声带发声就是了，可是那零点几秒的微妙区别对于母语中不使用浊音的人来说，是会自己过虑掉的（中文中并不使用浊音，全部被清音化了）。所以我想大概就同日本人对于送气和不送气音的区别完全一样的了，因为不用于区分语义，所以脑子里会自己把这两个音归为同一个字（<a HREF="#$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.f5">[5]</A>参考让日本人区分
l 和 r 音的实验的例子）<br />
虽然很想和大多数教材上说的只要多听多练习就会了解了的……实际上呢……这大概就是中国人学外语的天堑之一了吧……<br />
其实，我想如果英文的发音标准的人应该这个比较容易吧，和中文的比起来，这几个音更加接近英文中的b d g
的音。在英文中这几个也是浊音。不过这个的前提是你的英文发音必需是正确的才对，但是现在的英文教育……<br />
总之呢，按日语的思维去考虑去学习，不要揪着国语。。。这感觉是最基本的一点（感谢 陪你看雪）<br />
2011年01月19日 按 看雪 指出的问题进行了一些修正，感谢<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.h1671"></A>
<h2>结论，这个是送气清音和不送气清音和浊音的区别</H2>
参考了很多资料，也有一些是分析出来的结果，其实我也是在纠结不送气音和浊音听起来差别在那里，到底有什么区别。<br />
读书笔记+经验之谈。可能会有错误，等待修正，请自行确认来源资料<br />
话说我在学日语却整了一大堆英文学习法的资料，我在做啥子呀……<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<p STYLE="text-align: right;">CopyRight by blues_city(子陵) @
2002-2010</P>
<br />
---<br />
资料来源：<br />
<a NAME="$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.f1"></A>[1]谷歌
<span><a HREF="http://www.google.com/">http://www.google.com</A></SPAN><br />
<a NAME="$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.f2"></A>[2]wiki
日语 词条 <span><a HREF="http://zh.wikipedia.org/zh/%E6%97%A5%E8%AF%AD">http://zh.wikipedia.org/zh/日语</A></SPAN>
和<br />
国标音标的部分 <span><a HREF="http://zh.wikipedia.org/zh-cn/%E5%9B%BD%E9%99%85%E9%9F%B3%E6%A0%87">
http://zh.wikipedia.org/zh-cn/国际音标</A></SPAN><br />
清浊音 <span><a HREF="http://zh.wikipedia.org/zh-cn/%E6%B8%85%E6%BF%81%E9%9F%B3">http://zh.wikipedia.org/zh-cn/清濁音</A></SPAN><br />

<a NAME="$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.f3"></A>[3]日语中的不送气音，不送气清音与浊音的区别&nbsp;<span><a HREF="http://hi.baidu.com/%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD/blog/item/1c254a616acd654aeaf8f874.html"></A></SPAN><a HREF="http://hi.baidu.com/%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD/blog/item/1c254a616acd654aeaf8f874.html" TARGET="_blank">http://hi.baidu.com/&#65533;&#65533;&#65533;&#65533;&#65533;/blog/item/1c254a616acd654aeaf8f874.html</A><br />

<a NAME="$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.f4"></A>[4]英语清音浊化和清音浊音的问题
<span><a HREF="http://binfen.blogbus.com/logs/10698887.html">http://binfen.blogbus.com/logs/10698887.html</A></SPAN><br />

《千万别学英语系列》<br />
<a NAME="$65e5$6587$4e2dKa$884c$548cta$884c$53d1$97f3$7684$95ee$9898#.f5"></A>[5]英语学习的真实方法及误区分析:
<span><a HREF="http://xc84.com/xiao-cheng-bi-ji-ying-yu-zheng-shi-fang-fa-wu-qu-fen-xi-01">
http://xc84.com/xiao-cheng-bi-ji-ying-yu-zheng-shi-fang-fa-wu-qu-fen-xi-01</A></SPAN><br />

<br />
<br />
<hr SIZE="1" />]]></description>
            <author>blues_city</author>
            <category>读书笔记</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100oj0l.html#comment</comments>
            <pubDate>Wed, 19 Jan 2011 15:47:58 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100oj0l.html</guid>
        </item>
        <item>
            <title>对自己说一声 &quot;Merry Christmas&quot;</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100o1y6.html</link>
            <description><![CDATA[<font STYLE="font-size: 20px; font-weight: bold;">听说</FONT>呢，如果把一个人的一生都记录下来，就可以写成一本精彩的书，或者拍成一部完美的电影。不过显然对正在街角放着闪光的情侣们来说，在这个场情中我们只是背景A，朋友B，路人C这样而已，可就算是你遇到的所有情侣都是失散多年的亲兄妹又如何？还不是照样有人会继续啪啪啪啪~~。<br />

所以呢，最终临时演员们还是拿了便当各自回家，而那种电影般的情节大概永远不会发生在自己身上……<br />
不过呢，却有这么一部电影当中你是主角，这就是你自己的电影。你是自己生活的主角和导演，虽然其中有这么多不满的镜头要处理，虽然有这么多的场境没有拍摄完成，虽然有这么多的脚本还需要修改……<br />

所以呢？即使是这样孤单的一个人的夜， 即使是这样灰蒙蒙的下着冷雨的夜，即使是没有网络、手机也不见的夜，对自己说一声 "Merry
Christmas" 吧。<br />
你已经努力了一年了。<br />]]></description>
            <author>blues_city</author>
            <category>自言自语</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100o1y6.html#comment</comments>
            <pubDate>Mon, 27 Dec 2010 23:21:53 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100o1y6.html</guid>
        </item>
        <item>
            <title>破解日记：[011012][RaSeN]傷モノの学園+cgpack</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100nstj.html</link>
            <description><![CDATA[趁在我还有精神时把这东西写出来。放在硬盘里的话大概不久就会被当成垃圾文件清理掉了吧……<br />
文件封包很简单。(其实是忘记记了……)<br />
只记得是分三段的，文件名全在一起，后面一段全是长部，最后一段全是起始地址。<br />
图像是g24a格式，专用的格式。后期的重制版直接使用PNG文件了。无视文件名的话可以用通用工具直接抽出来。<br />
图像头格式如下：<br />
struct {<br />
&nbsp; char
magic[8],&nbsp;&nbsp; ;
g24a(\0\0\0&nbsp;&nbsp;&nbsp;
头部标志<br />
&nbsp; u32&nbsp;
width,&nbsp;&nbsp;&nbsp;
&nbsp; ; 图像的宽和高<br />
&nbsp; u32&nbsp; height,<br />
&nbsp; u16&nbsp;
unknow,&nbsp;&nbsp;&nbsp;
&nbsp; ; 01<br />
&nbsp; u16&nbsp;
depth,&nbsp;&nbsp;&nbsp;
&nbsp; ; 色深，这里为0x18 = 24<br />
&nbsp; u64&nbsp;
zero,&nbsp;&nbsp;&nbsp;
&nbsp; ; 0 0<br />
&nbsp; u32&nbsp;
unknow2,&nbsp;&nbsp; ; 0b12 = 2834 or 0ec4
0ec3<br />
&nbsp; u32&nbsp;
unknow3,&nbsp;&nbsp; ; 0b12 同样未知
两个相同，但是不同的图像也完全不同。<br />
&nbsp; u64&nbsp;
zero,&nbsp;&nbsp;&nbsp;
&nbsp; ; 0 0<br />
&nbsp; u32&nbsp;
656c,&nbsp;&nbsp;&nbsp;
&nbsp; ;一样？le? 行压缩？压缩标志或者是??<br />
&nbsp; u32&nbsp; imagesize, ;宽x高x3
为解开后实际的大小。<br />
}<br />
后面接着为图像的dib数据。使用LZ77压缩。窗口大小为4K(0-0xfff)，窗口缓冲起始位置为0xfee，已经是第三次在游戏中看到这种算法了……这东西看来很好用呀。<br />

反汇编的代码：<br />
0042A096&nbsp;&nbsp;&nbsp;
8B5C24
24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov ebx,dword ptr
ss:[esp+24]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; start?<br />
0042A09A&nbsp;&nbsp;&nbsp;
8B7424
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov esi,dword ptr
ss:[esp+10]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; esp+10 = mask<br />
0042A09E&nbsp;&nbsp;&nbsp;
D1EE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
shr esi,1<br />
0042A0A0&nbsp;&nbsp;&nbsp; F7C6
00010000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
test esi,100<br />
0042A0A6&nbsp;&nbsp;&nbsp;
897424
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov dword ptr ss:[esp+10],esi<br />
0042A0AA&nbsp;&nbsp;&nbsp; 75
1C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jnz short
kizumono.0042A0C8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 每次处理8个字节。FF = 0 为止<br />
0042A0AC&nbsp;&nbsp;&nbsp;
397C24
2C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cmp dword ptr
ss:[esp+2C],edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 读入一个byte<br />
0042A0B0&nbsp;&nbsp;&nbsp; 0F8E
C3000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jle kizumono.0042A179<br />
0042A0B6&nbsp;&nbsp;&nbsp;
33C9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xor
ecx,ecx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; ecx = 0<br />
0042A0B8&nbsp;&nbsp;&nbsp;
8A0C1F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov cl,byte ptr
ds:[edi+ebx]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; ecx = buff[i] 07 edi = i ebx= buffer<br />
0042A0BB&nbsp;&nbsp;&nbsp;
47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc
edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; i++<br />
0042A0BC&nbsp;&nbsp;&nbsp;
8BF1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov
esi,ecx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; esi = ecx<br />
0042A0BE&nbsp;&nbsp;&nbsp; 81CE
00FF0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
or
esi,0FF00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; or 0xff00 头加上FF<br />
0042A0C4&nbsp;&nbsp;&nbsp;
897424
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov dword ptr ss:[esp+10],esi<br />
0042A0C8&nbsp;&nbsp;&nbsp;
F64424 10
01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
test byte ptr
ss:[esp+10],1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; MASK最后一位是否为1。<br />
0042A0CD&nbsp;&nbsp;&nbsp;
8B4C24
2C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov ecx,dword ptr
ss:[esp+2C]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 0491B6 ? 长度吗？<br />
0042A0D1&nbsp;&nbsp;&nbsp; 74
29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
je short
kizumono.0042A0FC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 以下是为0时的处理<br />
0042A0D3&nbsp;&nbsp;&nbsp;
3BCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cmp
ecx,edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 是否BUFF结束<br />
0042A0D5&nbsp;&nbsp;&nbsp; 0F8E
9E000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jle
kizumono.0042A179&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 长度结束了没、<br />
0042A0DB&nbsp;&nbsp;&nbsp;
8B7424
28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov esi,dword ptr
ss:[esp+28]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 02450048? 结果存放地址<br />
0042A0DF&nbsp;&nbsp;&nbsp;
33C9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xor
ecx,ecx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 一次处理一个BYTE过去，并且在MAP中存放一份<br />
0042A0E1&nbsp;&nbsp;&nbsp;
8A0C1F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov cl,byte ptr
ds:[edi+ebx]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; byte<br />
0042A0E4&nbsp;&nbsp;&nbsp;
47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc edi<br />
0042A0E5&nbsp;&nbsp;&nbsp;
880C30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov byte ptr ds:[eax+esi],cl<br />
0042A0E8&nbsp;&nbsp;&nbsp;
8B7424
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov esi,dword ptr ss:[esp+14]<br />
0042A0EC&nbsp;&nbsp;&nbsp; 83C6
08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add esi,8<br />
0042A0EF&nbsp;&nbsp;&nbsp;
40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc
eax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 从0fee开始存，其他为0<br />
0042A0F0&nbsp;&nbsp;&nbsp;
880C16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov byte ptr
ds:[esi+edx],cl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 4F9F2E 为什么又存一份？<br />
0042A0F3&nbsp;&nbsp;&nbsp;
42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc edx<br />
0042A0F4&nbsp;&nbsp;&nbsp; 81E2
FF0F0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
and edx,0FFF<br />
0042A0FA&nbsp; ^ EB
9E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jmp short kizumono.0042A09A<br />
0042A0FC&nbsp;&nbsp;&nbsp;
3BCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cmp
ecx,edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 为1时的处理<br />
0042A0FE&nbsp;&nbsp;&nbsp; 7E
79&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jle short kizumono.0042A179<br />
0042A100&nbsp;&nbsp;&nbsp;
33C9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xor ecx,ecx<br />
0042A102&nbsp;&nbsp;&nbsp;
8A0C1F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov cl,byte ptr
ds:[edi+ebx]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; DC byte 1<br />
0042A105&nbsp;&nbsp;&nbsp;
47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc edi<br />
0042A106&nbsp;&nbsp;&nbsp;
8BE9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov ebp,ecx<br />
0042A108&nbsp;&nbsp;&nbsp;
8B4C24
2C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov ecx,dword ptr
ss:[esp+2C]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 结束长毒<br />
0042A10C&nbsp;&nbsp;&nbsp;
3BCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cmp ecx,edi<br />
0042A10E&nbsp;&nbsp;&nbsp; 7E
69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jle short kizumono.0042A179<br />
0042A110&nbsp;&nbsp;&nbsp;
33C9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xor ecx,ecx<br />
0042A112&nbsp;&nbsp;&nbsp;
8A0C1F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov cl,byte ptr
ds:[edi+ebx]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; byte 2 ff<br />
0042A115&nbsp;&nbsp;&nbsp;
47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc edi<br />
0042A116&nbsp;&nbsp;&nbsp;
8BF1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov esi,ecx<br />
0042A118&nbsp;&nbsp;&nbsp; 83E1
0F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
and ecx,0F<br />
0042A11B&nbsp;&nbsp;&nbsp; 81E6
F0000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
and esi,0F0<br />
0042A121&nbsp;&nbsp;&nbsp; C1E6
04&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
shl esi,4<br />
0042A124&nbsp;&nbsp;&nbsp;
0BEE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
or
ebp,esi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 组合成0fdc<br />
0042A126&nbsp;&nbsp;&nbsp; 83C1
02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add ecx,2<br />
0042A129&nbsp;&nbsp;&nbsp;
896C24
18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov dword ptr ss:[esp+18],ebp<br />
0042A12D&nbsp;&nbsp;&nbsp;
894C24
1C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov dword ptr ss:[esp+1C],ecx<br />
0042A131&nbsp;&nbsp;&nbsp; BE
00000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov esi,0<br />
0042A136&nbsp; ^ 0F88
5EFFFFFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
js
kizumono.0042A09A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; ?<br />
0042A13C&nbsp;&nbsp;&nbsp; EB
04&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jmp short kizumono.0042A142<br />
0042A13E&nbsp;&nbsp;&nbsp;
8B6C24
18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov ebp,dword ptr ss:[esp+18]<br />
0042A142&nbsp;&nbsp;&nbsp;
8B5C24
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov ebx,dword ptr
ss:[esp+14]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; ESP+14 是开始位置以LE开始<br />
0042A146&nbsp;&nbsp;&nbsp;
03EE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add
ebp,esi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; esi + offset<br />
0042A148&nbsp;&nbsp;&nbsp; 81E5
FF0F0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
and ebp,0FFF<br />
0042A14E&nbsp;&nbsp;&nbsp;
33C9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xor ecx,ecx<br />
0042A150&nbsp;&nbsp;&nbsp;
40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc eax<br />
0042A151&nbsp;&nbsp;&nbsp;
8A4C2B
08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov cl,byte ptr
ds:[ebx+ebp+8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; map[buffer+8]?<br />
0042A155&nbsp;&nbsp;&nbsp;
8B6C24
28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov ebp,dword ptr ss:[esp+28]<br />
0042A159&nbsp;&nbsp;&nbsp; 83C3
08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add ebx,8<br />
0042A15C&nbsp;&nbsp;&nbsp;
42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc edx<br />
0042A15D&nbsp;&nbsp;&nbsp;
884C28
FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov byte ptr ds:[eax+ebp-1],cl<br />
0042A161&nbsp;&nbsp;&nbsp;
884C13
FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov byte ptr ds:[ebx+edx-1],cl<br />
0042A165&nbsp;&nbsp;&nbsp;
8B4C24
1C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov ecx,dword ptr ss:[esp+1C]<br />
0042A169&nbsp;&nbsp;&nbsp; 81E2
FF0F0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
and edx,0FFF<br />
0042A16F&nbsp;&nbsp;&nbsp;
46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc esi<br />
0042A170&nbsp;&nbsp;&nbsp;
3BF1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cmp esi,ecx<br />
0042A172&nbsp; ^ 7E
CA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jle short
kizumono.0042A13E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 11 = f +3 从0 运行到12结束？<br />
0042A174&nbsp; ^ E9
1DFFFFFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jmp kizumono.0042A096<br />
0042A179&nbsp;&nbsp;&nbsp;
5F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pop
edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 结束<br />
0042A17A&nbsp;&nbsp;&nbsp;
5E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pop esi<br />
0042A17B&nbsp;&nbsp;&nbsp;
5D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pop ebp<br />
0042A17C&nbsp;&nbsp;&nbsp;
5B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pop ebx<br />
0042A17D&nbsp;&nbsp;&nbsp; 83C4
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add esp,10<br />
0042A180&nbsp;&nbsp;&nbsp; C2
0C00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
retn 0C<br />
<br />
<br />
后面还没完。解压完成后还需要对每个像素点进行操作，汇编如下：<br />
004164EA&nbsp;&nbsp;&nbsp;
0FAFF7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
imul
esi,edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; esi = width * height 得到总的像素点数。<br />
004164ED&nbsp;&nbsp;&nbsp;
33FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xor
edi,edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; edi = 0<br />
004164EF&nbsp;&nbsp;&nbsp; 8B43
04&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov eax,dword ptr ds:[ebx+4]<br />
004164F2&nbsp;&nbsp;&nbsp; 8B40
18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov eax,dword ptr
ds:[eax+18]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; buffer = eax 保存的是数据缓冲位置。<br />
004164F5&nbsp;&nbsp;&nbsp;
03C7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add
eax,edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; buff[i] ,edi = i 循环次数。<br />
004164F7&nbsp;&nbsp;&nbsp;
8A08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov cl,byte ptr
ds:[eax]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 读入第一个字节 byte<br />
004164F9&nbsp;&nbsp;&nbsp; 83C0
03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add
eax,3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 3 每3个像素相互操作。<br />
004164FC&nbsp;&nbsp;&nbsp; 83FE
01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cmp esi,1<br />
004164FF&nbsp;&nbsp;&nbsp; 7E
0D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jle short
kizumono.0041650E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; esi &lt; 1 跳到 50e 处。<br />
00416501&nbsp;&nbsp;&nbsp; 8D56
FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lea edx,dword ptr
ds:[esi-1]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; edx = esi - 1 ???<br />
00416504&nbsp;&nbsp;&nbsp;
0008&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add byte ptr
ds:[eax],cl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; buff[3] += buff[0] 每三和前面的相加<br />
00416506&nbsp;&nbsp;&nbsp;
8A08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov cl,byte ptr
ds:[eax]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 结果还是要读回来的<br />
00416508&nbsp;&nbsp;&nbsp; 83C0
03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add
eax,3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; buff += 3<br />
0041650B&nbsp;&nbsp;&nbsp;
4A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
dec
edx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; edx--<br />
0041650C&nbsp; ^ 75
F6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jnz short
kizumono.00416504&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; 循环一直到 edx == 0 对每个像素点进行一次+ 操作。<br />
0041650E&nbsp;&nbsp;&nbsp;
47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc
edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; edi++<br />
0041650F&nbsp;&nbsp;&nbsp; 83FF
03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cmp edi,3<br />
00416512&nbsp; ^ 7C
DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jl short
kizumono.004164EF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; loop edi &lt;3, 循环三次，就对除第一个字节外所有字节进行操作了。<br />
<br />
思前苦后想了半天……用c写了一遍，再用python写了一次。再用cprofile
测试代码速度，最终的结果以下代码是最快和最容易理解的……<br />
int endpos = (nWidth * nHeight - 1) * 3;<br />
for (int i = 0; i&lt; endpos; i++ )<br />
{<br />
&nbsp;
&nbsp;&nbsp;&nbsp; gdata[3] +=
gdata[0];<br />
&nbsp;
&nbsp;&nbsp;&nbsp;
gdata++;<br />
}<br />
……<br />
我那跑一次要14.2秒的ptyhon函数呀……<br />
教训：<br />
我对大型项目的拿控还是不足呀，现在使用的系统的复杂度已经差不多超过我的控制能力了……<br />
说什么用python来写，把重要部分用C来写提升速度完全是胡扯。在两个不同的语言系统中来回切换你会得人格分裂的。<br />
python太好用了，以至于你会认为启动vc的IDE是件麻烦的事。还不能即时的知道运行结果……<br />
<br />
更新……<br />
以下是发在绯月的CG包，不给发，于是只好直接贴在这里了……喜欢就转走吧。<br />
GETCHU:http://www.getchu.com/soft.phtml?id=6484<br />
预览<br />
<a HREF="http://www.turboimagehost.com/p/5294591/rh01b.jpg.html" TARGET="_blank"><img SRC="http://s1d6.turboimagehost.com/t1/5294591_rh01b.jpg" ALT="Free Image Hosting" BORDER="0" /></A> <a HREF="http://www.turboimagehost.com/p/5294593/kh10a.jpg.html" TARGET="_blank"><img SRC="http://s1d6.turboimagehost.com/t1/5294593_kh10a.jpg" ALT="Free Image Hosting" BORDER="0" /></A><br />
【遊戲全稱】: 傷モノの学園<br />
【発売日期】:2001.08.24/2001.10.12（再版）<br />
【圖片格式】:BMP，未压缩，原汁原味的格式。<br />
【圖片像素】:640x480】CG,BG,EV全部<br />
【空間期限】:115,js,30天<br />
【文件大小】: 66M，解压后 301M<br />
<br />
为什么做这个？<br />
这个是一个经典的老游戏了，让我感兴趣的地方是在CG选项中有大片大片的空白部分，感觉和其他游戏完全不同呢 于是查了下被禁止发行的理由……
http://www.geocities.jp/wonderepion/kaisyu.htm (日文站，需翻墙)<br />
&nbsp;&nbsp;&nbsp;
他微妙なのが数枚<br />
大该看明白的意思就是说这游戏有没使用过的CG和大量地方打码没打完全的。于是试着去找了下解包工具，竟然发现完全没有，（唯一找到的是针对新版的，旧版的系统只有这个游戏有使用过）<br />

于是想起毛主席教导我们说过的 自己动手非衣足食，于是自己写了解包器，以了解所谓“微妙”这个词的含义。<br />
<br />
解包器可以到我BLOG里下，地址：http://blog.sina.com.cn/s/blog_571b19a00100nsgq.html
,js下载： http://tora.to/blog/476193.htm&nbsp;
游戏的话在hongfire上还有下。注意是大约500M的原始版本，另一个700M版本是重制版。已经重新改过图了的。<br />
我就这么喜欢收集老游戏吗？<br />
<br />
115 http://u.115.com/file/f3abddeab1<br />
js http://tora.to/blog/476275.htm<br />
<br />]]></description>
            <author>blues_city</author>
            <category>程序</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100nstj.html#comment</comments>
            <pubDate>Thu, 16 Dec 2010 00:08:17 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100nstj.html</guid>
        </item>
        <item>
            <title>游戏文件多功能通用分析器(RipFile System python)发布页</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100nsgq.html</link>
            <description><![CDATA[目录：
<div>
<div><a HREF="#RipFileSystem#.h28">游戏文件多功能通用分析器(RipFile System
python ver. 0.08.200.101214)</A></DIV>
<div><a HREF="#RipFileSystem#.h91">文章更新</A></DIV>
<div><a HREF="#RipFileSystem#.h379">简介</A></DIV>
<div><a HREF="#RipFileSystem#.h813">系统原则：</A></DIV>
<div><a HREF="#RipFileSystem#.h1341">版本号说明：</A></DIV>
<div><a HREF="#RipFileSystem#.h1528">使用说明：</A></DIV>
<div><a HREF="#RipFileSystem#.h1536">命令行参数说明：</A></DIV>
<div><a HREF="#RipFileSystem#.h2470">GUI图形界面</A></DIV>
<div><a HREF="#RipFileSystem#.h2898">支持的插件类型</A></DIV>
<div><a HREF="#RipFileSystem#.h3100">已知BUG</A></DIV>
<div><a HREF="#RipFileSystem#.h3227">下载：</A></DIV>
<div><a HREF="#RipFileSystem#.h3354">SDK和相关介绍说明下载：</A></DIV>
<div><a HREF="#RipFileSystem#.h3745">更新说明：</A></DIV>
<div><a HREF="#RipFileSystem#.h3753">ver 0.08.200.101214</A></DIV>
<div><a HREF="#RipFileSystem#.h4040">ver 0.08.199.101214</A></DIV>
<div><a HREF="#RipFileSystem#.h4148">Ver 0.08.199.090312</A></DIV>
<div><a HREF="#RipFileSystem#.h4312">Ver 0.08.199.090129</A></DIV>
<div><a HREF="#RipFileSystem#.h4578">Ver 0.07</A></DIV>
<div><a HREF="#RipFileSystem#.h4609">Ver 0.06.100.080810</A></DIV>
<div><a HREF="#RipFileSystem#.h4779">Ver 0.06.100.080722</A></DIV>
<div><a HREF="#RipFileSystem#.h5215">2007年11月3日(星期六)</A></DIV>
<div><a HREF="#RipFileSystem#.h5414">2007年10月18日(星期四)</A></DIV>
<div><a HREF="#RipFileSystem#.h5518">2007年10月7日(星期日)</A></DIV>
<div><a HREF="#RipFileSystem#.h5736">2007年7月4日</A></DIV>
<div><a HREF="#RipFileSystem#.h5835">已有插件介绍</A></DIV>
<div><a HREF="#RipFileSystem#.h5867">Plugin: ActG.dll
Info</A></DIV>
<div><a HREF="#RipFileSystem#.h6238">Plugin: BIG.dll Info</A></DIV>
<div><a HREF="#RipFileSystem#.h6985">Plugin: RBO.dll Info</A></DIV>
<div><a HREF="#RipFileSystem#.h7337">Plugin: Rbo_ImgCg.dll
Info</A></DIV>
<div><a HREF="#RipFileSystem#.h7698">Plugin: ypf.dll Info</A></DIV>
<div><a HREF="#RipFileSystem#.h8139">Plugin: MaxPayne.dll
Info</A></DIV>
<div><a HREF="#RipFileSystem#.h8597">Plugin: Nexus_dat.dll
Info</A></DIV>
<div><a HREF="#RipFileSystem#.h9153">Python: pyPluginTest</A></DIV>
<div><a HREF="#RipFileSystem#.h9236">Plugin: pyZipArchie
Info</A></DIV>
<div><a HREF="#RipFileSystem#.h9504">Plugin:
pyBionicCommandoRearmed Info</A></DIV>
<div><a HREF="#RipFileSystem#.h9727">Plugin: pyKIRIKIRI
Info</A></DIV>
<div><a HREF="#RipFileSystem#.h10156">Plugin: pyTRABULANCE
Info</A></DIV>
<div><a HREF="#RipFileSystem#.h10338">Plugin: pyAmaneka
Info</A></DIV>
<div><a HREF="#RipFileSystem#.h10654">Plugin: pyRaSen
Info</A></DIV>
</DIV>
<br />
<a>Back</A>
<hr SIZE="1" />
<a NAME="RipFileSystem#.h28"></A>
<h2>游戏文件多功能通用分析器(RipFile System python ver. 0.08.200.101214)</H2>
<a NAME="RipFileSystem#.h91"></A>
<h3>文章更新</H3>
本文最后更新于：2010年12月14日(星期二)<br />
blog见： <span><a HREF="http://blog.sina.com.cn/bluescity">http://blog.sina.com.cn/bluescity</A></SPAN><br />

CSDN站：<span><a HREF="http://blog.csdn.net/blues_city">http://blog.csdn.net/blues_city</A></SPAN><br />

sina发布页：<span><a HREF="http://blog.sina.com.cn/s/blog_571b19a00100nsgq.html">http://blog.sina.com.cn/s/blog_571b19a00100nsgq.html</A></SPAN><br />

js上的发布（下载）页 : <span><a HREF="http://tora.to/blog/476193.htm">http://tora.to/blog/476193.htm</A></SPAN><br />

旧版(0.6 命令行版) 地址：<span><a HREF="http://blog.sina.com.cn/s/blog_571b19a00100a84k.html">http://blog.sina.com.cn/s/blog_571b19a00100a84k.html</A></SPAN><br />

<a NAME="RipFileSystem#.h379"></A>
<h2>简介</H2>
首先，这个是一个用来解开各种游戏的资源包的程序。程序原来的名称叫做
RipFile，现在这个版本是用C++和PYTHON再加上wxPython用swig黏在一起形成的。嗯，当然，通常对应的游戏还是需要相应的插件才能正常运行的。就像SUSIE(没找到官网，是个日本的软件)
或者 汉工 做的那个 <span><a HREF="http://tieba.baidu.com/f?kw=crass">汉工
的CRASS</A></SPAN> 还有 <span><a HREF="http://blog.csdn.net/vbvan/">Van 做的RPGViewer</A></SPAN>
之类的类似的工具吧。<br />
最初做这个程序的原因嘛……因为之前想在为汉工的那个CRASS做插件的时候，无论如何我都做不好的样子，总是运行失败（没这方面的天分呀）。后来，在一次和汉工对话时说一句话提醒了我！原本谈的内容我已经模糊了，大概记得是关于讨论所有的文件读写操作都是通过主程序，再调用DLL来完成这类的话题的吧。于是我突然想起了很久以来一直没法弄明白前的一个想法：<br />

<a NAME="RipFileSystem#.h813"></A>
<h2>系统原则：</H2>
<b>如何使用最少的代码来描述和定义一个资源文件包的结构和信息，这样子就可以使用极少的代码来操作各种文件资源包了～～，甚至只需要使用一个INI文件来定义一组信息就可以进行解包操作了。</B><br />

突然有种被苹果砸到了的感觉！想出了一个解决的办法：就是把所有的读写操作交给主程序来做，而插件程序只要专心地处理数据解释方面的操作就可以了～，于是按这个思路，这个工具就这样子出现了……<br />

按当始的想法做出一个原型系统(ver:0.01~0.06版)，然后又以这个版本为基础内置进了PYTHON语言解释（代替即计划中原来INI文件定义的部分，INI能定义的信息量实在太少，试过LUA又并不怎么喜欢），在编写过程过我发现PYTHON的一些强大的功能后完全把原先的计划放弃了。在使用PYTHON的窗口模块（WXPYTHON）做了一个GUI的界面后便把整个RipFileSystem作为一个扩展模块规划放在PYTHON下运行了。所以现在这个东西完全算是一个PYTHON版的程序了，带一个GUI界面，但是也可以使用命令行来完成全部操作。虽然为了兼容老的DLL版插件和提升速度，核心部分还是用C++来写的。<br />

不过……唯一的问题是 <i>整个系统的大小一下子提升了几倍呀……</I><br />
<a NAME="RipFileSystem#.h1341"></A>
<h2>版本号说明：</H2>
第一部分：0.08 是程序的主版本号和次版本号，由三个数字组成。 PYTHON版同时存在GUI和带CUI的GUI版本……<br />
第二部分：199
是表示所使用的SDK的版本号。现在的SDK版本号为199。高版本号的插件在底版本号的系统上会无法正常运行。<br />
你可以在程序的设置菜单中查看当前和最底可兼容的SDK版本号。<br />
第三部分：090312表示编译生成的日期。<br />
<br />
<a NAME="RipFileSystem#.h1528"></A>
<h2>使用说明：</H2>
<a NAME="RipFileSystem#.h1536"></A>
<h3>命令行参数说明：</H3>
注意要说的是命令在GUI版本中也有效的，但是由于优先级底，会被程序的设置覆盖掉。所以有些命令可能会无效（自动被GUI系统设置为初始值）。其实GUI也用不上命令行的吧～。<br />

注：由于命令行参数也是可以被传递给插件的，所以此处的命令不包含各插件使用的命令。所有的命令参数不区分大小写。 -o 和 -O 同效
<pre>
RipFileSystem Packetfile [-o Dirname] [-f pluginname] [-p pluginpath][-i] [-e] [-d] [
-c] [-a] [-n] [-h]
         Packetfile 要处理的文件名，现在已经支持'*' 和 '?' 同时处理多种文件。
         -o 把解开文件保存在 Dirname 这个目录中（如不存在会自动建立）不指定时会保存在当前的目录中。
         -f 指定只使名称为 pluginname 的插件，用于rip模式的插件使用。
         -p 指定插件所在目录，不指定的话默认为当前目录的plugins 目录下
         -i 在解包前显示当有插件的相关信息
         -e 显示目录项的全部详细数据
         -d 显示调试信息
         -c 显示一个设置对话框（插件的设置对话框）
         -a 强行保存一次原始的数据（使用原有的文件名），不管是否插件能对数据进行解释操作。（用于DEBUG及需要原始数据的场合）
         -n 不进行真实的解包操作。就是只运行到解出目录项后就停止运行（用于DEBUG）
         -h 显示这个帮助
例子： ripfilec I:\game\*.* -o out -p debug -i -d -n
</PRE>
就是查找I:game*.* 目录中的所有文件一个个进行解包测试，解开所有能解的文件包。输出到当前目录中的 out 目录中去( -o
out)，插件目录使用当前目录中 debug 目录(-p
debug)，显示插件信息(-i)，显示DEBUG的信息(-d)，只解目录不进行真实的写文件操作(-n)。<br />
<a NAME="RipFileSystem#.h2470"></A>
<h3>GUI图形界面</H3>
由于整合了 <span><a HREF="http://www.python.org/">Python</A></SPAN>
，再加上早有一个制作GUI界面的想法，所以使用 <span><a HREF="http://www.wxpython.org/">wxPython</A></SPAN>
制作一个图形界面，不管如何，大部分的功能都是OK了的<br />
标题界面截图：<br />
<a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static2.photo.sina.com.cn/orignal/571b19a0g9770077a5aa1" TARGET="_blank"><img SRC="http://static2.photo.sina.com.cn/middle/571b19a0g9770077a5aa1&amp;690" NAME="image_operate_20141292407367014" /></A><br />
<br />
<br />
可自行拖动和移动大小的界面元素。<br />
<img ALT="" SRC="files/snap01%E7%95%8C%E9%9D%A2.png" BORDER="0" /><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static4.photo.sina.com.cn/orignal/571b19a0g977003796d13" TARGET="_blank"><img SRC="http://static4.photo.sina.com.cn/middle/571b19a0g977003796d13&amp;690" NAME="image_operate_63381292407400414" HEIGHT="438" WIDTH="690" /></A><br />
<br />
<a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static10.photo.sina.com.cn/orignal/571b19a0g977004153c99" TARGET="_blank"><img SRC="http://static10.photo.sina.com.cn/middle/571b19a0g977004153c99&amp;690" NAME="image_operate_30701292407371910" HEIGHT="442" WIDTH="690" /></A><br />
<br />
<a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static13.photo.sina.com.cn/orignal/571b19a0g977004617dbc" TARGET="_blank"><img SRC="http://static13.photo.sina.com.cn/middle/571b19a0g977004617dbc&amp;690" HEIGHT="544" WIDTH="348" /></A><br />
<br />
GUI新加入功能：
<div STYLE="margin-left: 2em;">1：支持插件图标。
<div STYLE="margin-left: 2em;">
你可以为你的每个插件自定义一个图标，放在插件相同的目录中和插件同名即可以了。</DIV>
2: 公司名自定义图标。
<div STYLE="margin-left: 2em;">
既整个插件所属父项的图标，这个是放在RES目录中，并且现在只能使用PNG格式，大小为24X24，以后可能会加上大部分文件格式的支持的吧……。（可能）</DIV>
</DIV>
<img ALT="" SRC="files/snap04%E5%B8%AE%E5%8A%A9%E7%AA%97%E5%8F%A3.png" BORDER="0" /><br />
<br />
<a NAME="RipFileSystem#.h2898"></A>
<h3>支持的插件类型</H3>
<b>*.dll</B><br />
标准的WINDOWS DLL 类型的插件。即以前RipFile 使用的插件结构。<br />
<b>py/pyc/pyo</B><br />
python模块类型的插件。标准的PYTHON文件。<br />
<b>pyd</B><br />
python可直接调用的dll类型，但是如果用这个的话……我还是建议直接使用dll吧<br />
具体的插件支持和编写说明请看 RipFileSystemSdk 说明<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="RipFileSystem#.h3100"></A>
<h2>已知BUG</H2>
GUI版本中对其他字符集存在问题，如果需要解包文件名或者目录存在日文或特殊字符会存在无法打开的情况，建议在打开文件后无反应的情况下试下把名字修改成英文试试。（解包部分没有问题，包含日文可以正常进行输出。）<br />

<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="RipFileSystem#.h3227"></A>
<h2>下载：</H2>
http://tora.to/blog/476193.htm<br />
http://u.115.com/file/f34c864681<br />
如果出现以下提示，请安装VS2009运行库<br />
<a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static16.photo.sina.com.cn/orignal/571b19a0gdea838725fdf" TARGET="_blank"><img SRC="http://static16.photo.sina.com.cn/middle/571b19a0gdea838725fdf&amp;690" HEIGHT="157" WIDTH="690" NAME="image_operate_84741292422479935" /></A><br />
<br />
<br />
官方下载<br />
如果出现程序出现这个提示而无法运行，请先安装VS2009运行库：<br />
官网下载地址：http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&amp;displaylang=zh-cn<br />

<a NAME="RipFileSystem#.h3354"></A>
<h3>SDK和相关介绍说明下载：</H3>
关于SDK的说明：请看这篇 RipFileSystemSdk<br />
当前的SDK版本为199。<br />
SDK包中含有：插件相关接口详细说明，一个示范性的代码和ACTG的完整源代码。<br />
ACTG的开源代码按GNU开源软件规则执行。<br />
<b>开源代码声明</B><br />
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.<br />
<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="RipFileSystem#.h3745"></A>
<h2>更新说明：</H2>
<a NAME="RipFileSystem#.h3753"></A>
<h3>ver 0.08.200.101214</H3>
2010年12月15日(星期三)<br />
1. 完成插件pyRaSen， pyTRABULANCE 未完成<br />
2.新加入函数DLL ripfilefunction提供LZ77压缩的解压函数和生成BMP文件的函数。<br />
3.修正了makbmpfile无法调用的问题,现调用方式如下：mrip.makeBmpFileData(filename,
dibData,palettedata, nWidth, nHeight,
nBitCout,dFillColor)，返回值为CFileData 类<br />
4.原有的下载全部失效，重新制作了软件说明页。<br />
<a NAME="RipFileSystem#.h4040"></A>
<h3>ver 0.08.199.101214</H3>
2010年07月14日(星期四)<br />
1.完成插件 pyamaneka 针对游戏：伪发明工坊3&#8213;苍之巨神简体中文硬盘版（暁のアマネカと蒼い巨神
&#8213;パシアテ文明研究会興亡記）<br />
<a NAME="RipFileSystem#.h4148"></A>
<h3>Ver 0.08.199.090312</H3>
2009年03月12日(星期四)
<ol>
<li>最后Bug修正加上其他的扑丁，正式发布。</LI>
<li>说明文补完。</LI>
<li>完成了一个解吉里吉里的游戏用的插件。</LI>
<li>建立了一个专们的地方作为主站存放本系统的所有文章 <span><a HREF="http://bluescity.googlepages.com/">http://bluescity.googlepages.com/</A></SPAN>
(已失效)<br /></LI>
</OL>
<a NAME="RipFileSystem#.h4312"></A>
<h3>Ver 0.08.199.090129</H3>
2009年2月22日(星期日)<br />
1:FOR PYTHON 版完成。<br />
2:对函数的命名规则作为修改，第一个词为动词时小写开头。名词和专有名词大写开头。（为了PYTHON的代码统一）<br />
3：命令接口参数进行了修改，初始化改名为
setup,释放改名为tearDown,parsecmdline取消，请在setup里进行命令行解释。<br />
4：新加入了CFileData 类用来代替原有的FileDatat和packageInfo来传递数据。<br />
5：还有很多很多很多地方……，具体见SDK文档吧。<br />
<br />
<a NAME="RipFileSystem#.h4578"></A>
<h3>Ver 0.07</H3>
已被放弃。(在计划中就被推了……)<br />
<br />
<a NAME="RipFileSystem#.h4609"></A>
<h3>Ver 0.06.100.080810</H3>
2008年8月10日(星期日)<br />
1:命令行参数调用操作前置放到DoMactch之前执行，现在是在prerunning
后，domactch操作之前被执行。因为原来放到domatch后发现根本没有用处了。如果要对插件进行参数调整的话，应该在还没有进行操作之前进行的。所以放到了现在这个位子上。<br />

<br />
<a NAME="RipFileSystem#.h4779"></A>
<h3>Ver 0.06.100.080722</H3>
2008年7月26日(星期六)<br />
1：增加对* 和 ?的多文件处理支持。<br />
2：所有的命令参数不区分大小写。<br />
3：新加参数 -n 用于调试操作，只进行到目录项的解释操作，不直正进行写盘操作。<br />
4：PreRunning 函数在插件一开始运行时就会被执行。<br />
5：开发平台升级到VS2005。针对安全性问题修改了大量的代码。基本上算是重新写了一份。应对插件的各种可能会引起主系统错误的操作进行了限制和处理。保证了主程序的安全性。不过，虽说如此，由插件本身设计方面的问题有时还是会引起错误的，例如使用了空置指针的问题，不过这些问题不会传导到主程序中去。<br />

6：SDK版本号升级到1.00,不再支持原来的0.9x系列的插件。修改了部分调用接口的定义，主程序接口回调的方式完全换过了，增加了大量实用可调用函数。明确了各函数返回值的定义和可能。注意：原来旧的0.9X
系列的SDK插件已不再支持，请重新用新的SDK进行编译一次才能正常运行。<br />
<br />
<a NAME="RipFileSystem#.h5215"></A>
<h3>2007年11月3日(星期六)</H3>
1:版本名称修改， Dos/Prototype version 修改为Console/Prototype Version<br />
用DOS这个名称已经偏移其定义了……<br />
插件参数传俤值见 ruledefine.h<br />
2:-a 参数功能修改。<br />
3:pasedata 返回funciton no exist 时不作为错误处理<br />
4:当插件版本高于当前版本时会提示功能未定义。<br />
<br />
<a NAME="RipFileSystem#.h5414"></A>
<h3>2007年10月18日(星期四)</H3>
新的命令参数 -p 用于指定插件所在目录（不指定时默认为当前目录中的 plugins 目录<br />
如果指定了参数 -a，但是解压函数返回出错时，会自动保存原始的RAW数据<br />
<br />
<a NAME="RipFileSystem#.h5518"></A>
<h3>2007年10月7日(星期日)</H3>
命令行传递完成<br />
路径处理完成。<br />
指定某一个插件运行完成<br />
CLoadPlugin　改名为 CPluginsLib<br />
CallBackFunction 在需要的时候才会被提供。<br />
所有的返回的定义被定义到　RuleDefine.h 中<br />
规范了函数的返回值。定义错误返回代码。<br />
out dir 没有 结束时出错。<br />
对RIP类插件的支持完成。RIP类的插件只在指定使用时才会被调用。其他时会自动跳过。<br />
<br />
<a NAME="RipFileSystem#.h5736"></A>
<h3>2007年7月4日</H3>
第一个原型完成。世界开始有光……<br />
<br />
<br />
好了，十分感谢你能看到这里，一个好的插件软件需要有大家的支持才能放出光彩……所以，感谢大家的支持。<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<br />
<a NAME="RipFileSystem#.h5835"></A>
<h2>已有插件介绍</H2>
注：请以插件本身信息为准，部分内容未进行更新<br />
<a NAME="RipFileSystem#.h5867"></A>
<h3>Plugin: ActG.dll Info</H3>
System: Canitz Copyright: <span><a HREF="http://www.canitz.com/">http://www.canitz.com/</A></SPAN><br />
Extension: data. TypeCode: 1<br />
Auther: blues_city at 2008年7月21日(星期一) Ver: 1.0.080721<br />
Notion: 用于插件示范的例程，按1.99的SDK重写了代码。现在已经是很完全的示范码了
<div STYLE="margin-left: 2em;">Plugin: ActG.dll Info end</DIV>
处理ActG游戏的data. 文件用的插件 。此代码开源。关于此插件和游戏的介绍见此：<br />
<span><a HREF="http://blog.sina.com.cn/s/blog_571b19a001000ahh.html">http://blog.sina.com.cn/s/blog_571b19a001000ahh.html</A></SPAN><br />

<br />
<br />
<a NAME="RipFileSystem#.h6238"></A>
<h3>Plugin: BIG.dll Info</H3>
System: BIG Copyright: Electronic Arts Inc.<br />
Extension: *.big TypeCode: 1<br />
Author: blues_city at 2008年7月24日(星期四) Ver: 1.00.080724<br />
Notion: Base ON Banshee's OS BIG Editor, Thank.<br />
支持C&amp;C3,将军等EA公司的几个游戏
<div STYLE="margin-left: 2em;">Plugin: BIG.dll Info end</DIV>
Support games (tested): (支持游戏，已经测试过了的：<br />
Command &amp; Conquer 3 Tiberium Wars
(命令与征服3泰伯利亚战争)<br />
Command &amp; Conquer 3 Kane's Wrath (命令与征服3资料篇
凯恩之怒)<br />
Command &amp; Conquer Generals (命令与征服-将军)<br />
Command &amp; Conquer Generals Zero Hour (命令与征服-将军 资料篇
零点时刻)<br />
And other ea'game...(maybe,not fot test..)<br />
因为我手上只有这几个游戏，所以，是否支持EA公司的其他游戏嘛……没有进行过测试，虽然说理论上应该都是支持的……。只要是BIG文件的都可以试试的。<br />

更新：最近试过 Red3（红警3），虽然可以解出目录，但是文件格式嘛，基本上都还是未知<br />
全文见：<span><a HREF="http://blog.sina.com.cn/s/blog_571b19a00100a2wy.html">http://blog.sina.com.cn/s/blog_571b19a00100a2wy.html</A></SPAN><br />

<br />
<a NAME="RipFileSystem#.h6985"></A>
<h3>Plugin: RBO.dll Info</H3>
System: RBO Copyright: 春風亭工房<br />
Extension: *.PAC TypeCode: 1<br />
Auther: blues_city at 2008年7月23日(星期三) Ver: 1.00.080823<br />
Notion: 解释Ragnarok Battle
Offline的PAC文件用插件，功能已经完成，但对游戏已无爱了，有人想汉化这个游戏吗？
<div STYLE="margin-left: 2em;">Plugin: RBO.dll Info end</DIV>
支持 Ragnarok Battle Offline
和其EX1,EX2,EX3升级包用的pac格式的文件。原本是作为汉化用才写的。现在嘛……<br />
<br />
<a NAME="RipFileSystem#.h7337"></A>
<h3>Plugin: Rbo_ImgCg.dll Info</H3>
System: RBO Copyright: 春風亭工房<br />
Extension: *.IMG;*.CG TypeCode: 1<br />
Auther: blues_city at 2008年7月23日(星期三) Ver: 1.00.080823<br />
Notion: 单独解释Ragnarok Battle Offline的IMG和CG文件用的插件，有人想汉化这个游戏<br />
吗？
<div STYLE="margin-left: 2em;">Plugin: Rbo_ImgCg.dll Info end</DIV>
同rbo.dll
这个是使用其中的图像抽出代码来解释RBO中的IMG,和CG图像用的插件，同样，是为了汉化准备的东西。注意：此插件有可能产生不确定因素。<br />

<br />
<a NAME="RipFileSystem#.h7698"></A>
<h3>Plugin: ypf.dll Info</H3>
System: YU-RIS Script Engine Copyright: [AGPS](C73)(同人ソフト)[夢見奏]
ふた<br />
ば&#9734;ちゃんねる<br />
Extension: *.ypf TypeCode: 1<br />
Auther: blues_city at 2008年7月23日(星期三) Ver: 0.100.080723<br />
Notion: 解C73的一个游戏用的，关于这个插件更多信息及更新请访问<br />
<span><a HREF="http://blog.sina.com.cn/bluescity">http://blog.sina.com.cn/bluescity</A></SPAN>
<div STYLE="margin-left: 2em;">Plugin: ypf.dll Info end</DIV>
C73上的一个同人游戏：[AGPS](C73)(同人ソフト)[夢見奏] ふたば&#9734;ちゃんねる
解码用的工具，相关介绍见这里：<span><a HREF="http://blog.sina.com.cn/s/blog_571b19a001009uf6.html">http://blog.sina.com.cn/s/blog_571b19a001009uf6.html</A></SPAN><br />

<br />
<a NAME="RipFileSystem#.h8139"></A>
<h3>Plugin: MaxPayne.dll Info</H3>
System: RAS Copyright: Remedy Entertainment<br />
Extension: *.ras;*.mp2m;*.mpm TypeCode: 1<br />
Auther: blues_city at 2008年7月27日(星期日) Ver: v1.00.080727<br />
Notion: 解Max Payne 中文名：马克思佩恩又名英雄本色的游戏的 ras文件用的插件。
<div STYLE="margin-left: 2em;">Plugin: MaxPayne.dll Info end</DIV>
Support game:(支持游戏，已经测试过了的)：<br />
MaxPayne<br />
MaxPayne 2 The Fall of MaxPayne<br />
可能只有这个系列的两代用过这个系统吧……，其他的不知道了。<br />
全文见：<br />
<span><a HREF="http://blog.sina.com.cn/s/blog_571b19a00100a35v.html">http://blog.sina.com.cn/s/blog_571b19a00100a35v.html</A></SPAN><br />

<br />
插件信息：<br />
<a NAME="RipFileSystem#.h8597"></A>
<h3>Plugin: Nexus_dat.dll Info</H3>
Caompany： MITHIS ENTERTAINMENT LTD. Games: Nexus - The Jupiter
Incident（银<br />
河创世纪－木星事件）<br />
Extension: *.dat TypeCode: 1<br />
author: blues_city at 2008年8月10日(星期日)/最后更新2009年2月16日(星期一) Ver:
<div STYLE="margin-left: 2em;">1.01.199.080810</DIV>
Notion: 原本为Nexus - The Jupiter Incident（银河创世纪－木星事件）汉化而做的插件<br />
，后来已有人填坑了，后来我就不知道了。<br />
相关信息见我的blog:<span><a HREF="http://blog.sina.com.cn/bluescity">http://blog.sina.com.cn/bluescity</A></SPAN>
<div STYLE="margin-left: 2em;">Plugin: Nexus_dat.dll Info end</DIV>
support game:(支持游戏，已经测试过了的)：<br />
Nexus - The Jupiter Incident<br />
（银河创世纪－木星事件）<br />
全文见：<br />
<span><a HREF="http://blog.sina.com.cn/s/blog_571b19a00100a849.html">http://blog.sina.com.cn/s/blog_571b19a00100a849.html</A></SPAN><br />

<br />
<br />
<a NAME="RipFileSystem#.h9153"></A>
<h3>Python: pyPluginTest</H3>
本插件件是为测试和示范性而制作插件，无实际用途，注意因其会对任意文件都返回可处理的提示，所以只单独放在SDK包中<br />
<br />
<a NAME="RipFileSystem#.h9236"></A>
<h3>Plugin: pyZipArchie Info</H3>
Caompany： 文件格式 Games: ZIP文件|BZ2文件<br />
Extension: *.zip;*.tar TypeCode: 5<br />
author: blues_city at 2009年2月13日(星期五) 16:16:43 Ver:
1.0.199.0213<br />
Notion: 示范插件，用于解压标准ZIP文档用<br />
此插件为示范性插件，本身的功能为解包标准的ZIP文档的插件。由于某些游戏其实也就是使用这种文件（比如QUAKE等），所以有也可能会有用处的<br />

<br />
<a NAME="RipFileSystem#.h9504"></A>
<h3>Plugin: pyBionicCommandoRearmed Info</H3>
Caompany： CAPCOM Games: Bionic Commando Rearmed|希魔复活PC复刻版<br />
Extension: quick.bundle TypeCode: 5<br />
author: blues_city at 2009年04月21日(星期二) Ver: 0.1.199.1<br />
Notion: 测试是否可以进行汉化用
<div STYLE="margin-left: 2em;">未完成。<br /></DIV>
<a NAME="RipFileSystem#.h9727"></A>
<h3>Plugin: pyKIRIKIRI Info</H3>
Caompany： TVP(KIRIKIRI) 2 core / Scripting Platform for Win32
Games: .XP3 文件<br />
(未保护)<br />
Extension: *.xp3;*.exe TypeCode: 5<br />
author: blues_city at 2009年03月06日(星期五) 17时18分54秒 Ver:
0.1.199.090306<br />
Notion:<br />
解吉里吉里的游戏用的工具，只能解没有进行加密的游戏，对fate系列等有加密的游戏无效。此外，需要KEY的游戏无法正常处理，把资源打包进EXE文件的类型也不支持。<br />

其实，能解这种格式的解码的工具已经很多了，所以我就不凑这个热闹了……。<br />
编码问题没有完全解决。请先修改显示编码(一般用shift_jis或gbk编码)后再使用，刷新不会重新读取<br />
<b>注意：此插件还处于开发阶段，有可能发生不可知的错误。</B><br />
<br />
<a NAME="RipFileSystem#.h10156"></A>
<h3>Plugin: pyTRABULANCE Info</H3>
Caompany： TRABULANCE Games: TRABULANCE公司的几作GALGAME<br />
Extension: * TypeCode: 5<br />
author: blues_city at 2010年07月02日(星期五) Ver: 0.0.0.1<br />
Notion: 测试用，未完成<br />
<br />
<a NAME="RipFileSystem#.h10338"></A>
<h3>Plugin: pyAmaneka Info</H3>
Caompany： 工画堂 Games: 苍之巨神,暁のアマネカと蒼い巨神<br />
Extension:*.spack TypeCode: 5<br />
author: blues_city at 2010年07月10日(星期六) Ver: 0.1.0.0<br />
Notion: 针对
苍之巨神（YLT汉化）暁のアマネカと蒼い巨神（日文原版）的spack文件进行解包的插件基本功能全部完成。<br />
汉化修正发布页面：伪发明工坊3 苍之巨神简体中文版大妈睡裙泳衣补丁+他 <span><a HREF="http://blog.sina.com.cn/s/blog_571b19a00100kbz5.html">http://blog.sina.com.cn/s/blog_571b19a00100kbz5.html</A></SPAN><br />

<br />
<a NAME="RipFileSystem#.h10654"></A>
<h3>Plugin: pyRaSen Info</H3>
Caompany： RaSeN Games: 傷モノの学園(初回版)(発禁版)<br />
Extension:*.pak TypeCode: 5<br />
author: blues_city at 2010年12月10日(星期五) Ver: 0.1.0.0<br />
Notion: 针对 <a NAME="RipFileSystem#.f011012"></A>[011012][RaSeN]
傷モノの学園(初回版)/（発禁版）（非ベストシリーズ版） 的文件解包的工具<br />
发布页：<span><a HREF="http://tora.to/discutter/108585.htm">http://tora.to/discutter/108585.htm</A></SPAN><br />

<br />
<p STYLE="text-align: right;">CopyRight by blues_city(子陵) @
2002-2009</P>
<br />
<br />
<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
返回: <a>Back</A>　页首：<a HREF="#">Top</A><br />
所属：&nbsp; RipFile主页,<br />
子目录：&nbsp; ActG, AGPS, CallBackFunction, CLoadPlugin,
CPluginsLib, MaxPayne, PreRunning, RaSeN, RipFile,
RipFileSystemSdk, RuleDefine, TypeCode, 夢見奏<br />
<span>[tag: RipFile]</SPAN><span>[tag: 游戏文件]</SPAN><span>[tag:
分析]</SPAN><span>[tag: python]</SPAN><br />
<span>[alias: 游戏文件多功能通用分析器]</SPAN><br />
<br />]]></description>
            <author>blues_city</author>
            <category>程序</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100nsgq.html#comment</comments>
            <pubDate>Wed, 15 Dec 2010 15:07:56 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100nsgq.html</guid>
        </item>
        <item>
            <title>一个逻辑完全正确的错误——别让统计数据误导你</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100lnuw.html</link>
            <description><![CDATA[目录:
<div>
<div><a HREF="#$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h0">一个逻辑完全正确的错误——别让统计数据误导你</A></DIV>
<div><a HREF="#$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h54">前言</A></DIV>
<div><a HREF="#$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h120">错误在哪里？</A></DIV>
<div><a HREF="#$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h405">关于统计数据误导</A></DIV>
<div><a HREF="#$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h980">倒底是在与什么比较？</A></DIV>
<div><a HREF="#$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h1266">结论</A></DIV>
<div><a HREF="#$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h1468">后记</A></DIV>
</DIV>
<br />
<hr SIZE="1" />
<a NAME="$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h54"></A>
<h3>前言</H3>
<font STYLE="font-size: 20px;">鸡蛋前年1元去年2元今年3元，所以统计的结果是涨幅下降50%。这句话本身是完全正确的。</FONT><br />

<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h120"></A>
<h2>错误在哪里？</H2>
看过一个小段子，大概是这样（没找到原文）：
<div STYLE="margin-left: 2em;"><font STYLE="font-size: 16px;">鸡蛋的价格，前年是1元，去年是2元，今年是3元，所以，发布统计结果是今年涨幅同比下降了50%</FONT></DIV>
第一眼看上去显然这句话是错误的，但是后来仔细的分析了下，这个句子从逻辑上看是完全正确的！！<br />
分析下：<br />
从前年到去年从1元升到2元，上涨了1元， 所以涨幅是100% ；<br />
从去年到今年从2元升到3元，虽然同样上涨了1元，但是由于基数是2元，所以涨幅变成是50%了；<br />
所以两者相比涨幅实际上是下降了50%，(100%-50%)<br />
所以这句话在逻辑上完全没有错误。<br />
那么错误在哪？<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h405"></A>
<h2>关于统计数据误导</H2>
那么，虽然说是正确的，但是我们知道这里面应该是有错误的（或者说我们不相信这是正确的），但是倒底错误是在那里呢？实际上，虽说在这个例子中很容易看出有问题，但实际上的情况会更加复杂更加隐蔽，例如以下这个例子:
<div STYLE="margin-left: 2em;"><font STYLE="font-size: 16px;">一股犯罪浪潮袭击了我市。去年杀人犯的比例增加了 67%。</FONT></DIV>
看了这个你是否会感觉到很不安呢？那假如我告诉你实际上的数字是从3个上升到5个呢，而且不是你想像中的从300个上升到了500个呢？<br />

让你产生错觉的原因是在这个例子中只提供了百分比而没有提供实际的数字。像这种借助在句子中遗漏掉某些信息，而让人对某个数据产生极其深刻的印像，从而让人产生可能的误导的情况，就是在使用统计数据撒谎。（p209借助遗漏的信息撒谎)<br />

相对的还有另一个例子：
<div STYLE="margin-left: 2em;"><font STYLE="font-size: 16px;">与其他近距离接触的运动相比，拳击运动的危险性更小。纽约一项历时30年的关于运动引起死亡的调查显示，在这期间，棒球运动中死亡了43人，在死亡率方面超过了足球(22人）和拳击(21人)</FONT></DIV>
这个例子中提供了一个确定的数字，但是你不想知道这个数字占进行这项运动的人的百分比吗？毕竟我们知道打棒球的人会比打拳击的人多很多，光是数字的比较很容易让你产生错觉而支持他的理由。<br />

实际上只提供百分比或者只提供数字的说明都是危险的，注意看其中是否存在误导。<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h980"></A>
<h2>倒底是在与什么比较？</H2>
除了百分比外，还有一个可能被忽略了的信息，就是“在与……相比较”的问题<br />
回到最初的那个段子，在段子中提到的与涨幅相比较的结果，所以才会得出下降了50%的结论。实际上更多的情况下会只列出数字，而不提或者尽量混淆比较的对像<br />

例：
<div STYLE="margin-left: 2em;"><font STYLE="font-size: 16px;">中国物价
- 城民抱怨物价飞涨但中国国家统计局公布8月通胀低于预期</FONT></DIV>
这个预期是指的那一方面的预期？显然在不同的角度上会是不同的。<br />
或者像这样：
<div STYLE="margin-left: 2em;"><font STYLE="font-size: 16px;">费滋牌阿司匹林产生作用的速度要快50%</FONT></DIV>
难道你不想知道是在和什么比吗？和其他的牌子？还是没有效果的？或者是和以前生产的相比较？<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h1266"></A>
<h2>结论</H2>
在文字和说明中会提出各种各样让你印像深刻的统计数字，如何确认这些数字是否正确是另一方面的问题，但即使所有的统计信息都是正确的，你也需要注意是否存在各种误导，是否遗漏了某些方面的信息。<br />

1：只提供百分比或者只提供数字的说明都是危险的。<br />
2：注意比较的对像是什么？<br />
通常这些遗漏都是故意的，因为漏掉的部分会自动在你的心里进行扑全，会在你心中产生偏向于作者结论的结果<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<a NAME="$522b$8ba9$7edf$8ba1$6570$636e$8bef$5bfc$4f60#.h1468"></A>
<h2>后记</H2>
本文章是在我读书过程中对一段看到的文字进行分析的结果。文中出现的大部分例子来源为我现在正在读的这本书： 《 学会提问：批判性思维指南》
第11章 统计数据是否有欺骗性<br />
这是一本关于批判性思维的入门读物，书中有列出常见的谬误和思维错误，欢迎有兴趣的人一起来读。<br />
<a HREF="#">Top</A>
<hr SIZE="1" />
<br />]]></description>
            <author>blues_city</author>
            <category>读书笔记</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100lnuw.html#comment</comments>
            <pubDate>Wed, 15 Sep 2010 17:24:05 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100lnuw.html</guid>
        </item>
        <item>
            <title>穴居人和青蛙</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100lmna.html</link>
            <description><![CDATA[哲学家柏拉图有一个洞穴比喻，按照这个理论，每个人从出生开始就呆在自己挖的一个洞穴里，我们所见的世界只不过是经阳光投影到洞穴墙壁上的影像而已，而我们这些洞穴的居民却把它当作是真实的世界，因为我们没有见到过其他的东西。而真实的世界却是在洞穴之外，在有太阳的地方。甚至即使我们不小心发现，也会拒绝相信那就是真实。<br />

想到了一个成语： 井底之蛙，和这个很像，不，说的就是同一件事。<br />
我们只是自我感觉自己的洞穴很大而已，大到让自己以为我们有本钱去嘲笑那只在洞穴里的井中仰望着我们的青蛙而已。<br />
<br />
附：关于洞穴理论的详细描述，参见：WIKI百科-&gt;柏拉图-&gt;形而上学
http://zh.wikipedia.org/zh-tw/%E6%9F%8F%E6%8B%89%E5%9B%BE#.E5.BD.A2.E8.80.8C.E4.B8.8A.E5.AD.B8<br />]]></description>
            <author>blues_city</author>
            <category>灵感</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100lmna.html#comment</comments>
            <pubDate>Mon, 13 Sep 2010 18:16:40 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100lmna.html</guid>
        </item>
        <item>
            <title>Heroes 第五季乱想</title>
            <link>http://blog.sina.com.cn/s/blog_571b19a00100lkfd.html</link>
            <description><![CDATA[趁着在第五季出来前赶快把 Heroes (超能英雄)的第四季给补完了……好吧，这有着强列既视感的结局——<br />
我记得上次这么做的时候哥哥中了两枪差一点死掉，然后弟弟的灵魂被关到另一个人的身体里去了……<br />
在下季的开头大概又需要花上个十几分种或者用上一两集的剧情把拉拉队长这一跳轻易的带过去了，之后所有的人都会像什么都没有发生过一样的继续自己的生活。<br />

Syler(塞拉)要洗白了。好吧洗就洗吧，这丫名字不是一方通行，这个编剧不叫做镰池和马，所以应该没有LOLI和后宫这类的剧情的，所以下一季应该不出冒出一个使用幻想御手的技能的对手来的吧……。嗯，话说，好像已经有了……难道其实海地人还有个名字是叫做上条当麻……？<br />

<br />
算了，大概不会有这种只有在学院都市才会出现的剧情的吧，还是稍微正常向的无责任推测/幻想下第五季的剧情吧。（查了下，会在9.22播出，在这个时间点还真是微妙呀~~）<br />

马戏团应该会继续存在，领导者将会是谁是一个重要的问题。大概会成为独立的第三方势力或者变成双方拉拢或者策反的目标吧，反正麻烦事不会少的。<br />

Syler可能会一会变白一会变黑的最后和自己天人交战后浴火重生后和最终BOSS作战，大概会成为这季的主线了。<br />
因为Syler不当坏人了，所以就需要一个新的反方角色了。在第五季中会出现什么样的坏人这个还是有点令人期待的，不管怎么样第四季的反方角色还不错，只是请别再洗白出来就行了，有一个就够了。<br />

说到到这个，Syler是否会和拉拉队长在一起？（那段接吻还真是……），或者是和Peter叔叔组队当英雄，结果在某天发生不可告人的意外（这两人在那没有人的城市里一起待了6年……等等，我好像听到了腐女们的尖叫声……错觉吗？）<br />

<br />
第四季的结尾可惜最后HIRO最终还是没能和Charlie在一起，无论如何他还是没能改变自己的未来呀。话说，在平行世界中世界已经被毁灭三次了，这个世界的未来应该已经是乱七八糟了的吧，也没发生什么蝴蝶效应、蜜蜂效应呀……。<br />

始终觉得这个穿越时空的能力太BUG了，一有什么前后对不上的事故发生，编剧就会叫他穿回去推翻原来的设定~这也太好用了吧。所以他一定会被当成缝补、修改之前设定的工具来用的，所有的地方都会有他的存在，但是却不会成为中心人物……，是个十分好用的工具。<br />

突然发现我在做什么呀……我一般只对三流的故事片猜剧情的……好吧，看来我也许应该在第五季没出来前先看看其他的片子，好让我把这季的故事全都忘记掉先……。<br />

<br />
最后，在第四季中最让我记忆深刻的剧情就是在第4集中那个不断复印自己屁股的笨蛋。……这证明了一件事：笨蛋是没有救的……<br />
<br />
我是&#9320;，不是笨蛋！！！]]></description>
            <author>blues_city</author>
            <category>动漫</category>
            <comments>http://blog.sina.com.cn/s/blog_571b19a00100lkfd.html#comment</comments>
            <pubDate>Fri, 10 Sep 2010 00:01:34 +0800</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_571b19a00100lkfd.html</guid>
        </item>
    </channel>
</rss>

