CSK.Blog--个人原创Weblog

今天FTP服务器要搬迁~

收到服务商通知,今天ftp.csksoft.net服务器搬迁,目前已经修改了DNS解析,估计到明天前我网站ftp访问会中断,如果正巧有需要从我网站下载资料的朋友请耐心等待会 或者可以联系我本人~

惊喜,看雪学院2006金秋读书季征文获奖了~

比较吃惊,上次把那篇“模块音乐(Mod)的制作和使用,Demo程序的主体之一”发表到了看雪论坛(bbs.pediy.com),在论坛用的标题是"crack程序中mod背景音乐的创作和使用 "

后来应kanxue老大号召参加了本次征文。

本来就觉得这篇文章和破解关系不是很大,但还是很惊喜地获得了一等奖:

http://bbs.pediy.com/showthread.php?s=&postid=247449#post247449

比较开心~最近郁闷的心情有了些安慰,毕竟本来只是抱着参与的态度,而且这篇文章是为老弟准备的~

在此感谢kanxue老大以及各位朋友的关心~

最近有些不顺心的事情,而且很久以来都发现自己变废了,相比周围同学,我基本上有点不求上进,希望这次能够激励自己,再接再厉~

好了,接下来要脚踏实地的做事

Sence Demo程序专用壳:kkrunchy

以前一向以为那些64kb intro常用的壳就是UPX或者就是UPX的farbrausch修改版本,后来发现原来有专用的了...

这就是kkrunchy,当然仍旧是farbrausch做得壳...

利用peid查看程序签名,会发现程序section只有一个,就是"kkrunchy"。并且只有这一个段了

下面是官方对这个壳的描述:

http://www.farbrausch.de/~fg/kkrunchy/

well, kkrunchy is a small exe packer primarily meant for 64k intros. it's relatively useless for anything else actually, because the depacker was relatively slow in older releases (about 1-2MB per second on my machine) and is dog slow in the newest version (about 90-120k per second for typical data on my p4 2.4GHz). kkrunchy also doesn't try to pack DLLs and can't handle exports or TLS (thread local storage) - as said, it's meant for 64ks.

据说是采用了PAQ7压缩算法,具有很高的压缩比,不过代价就是上文中提到的“ slow in older releases “ 一秒钟内只能解压缩1-2MB数据,不过对于64kb intro这根本不会让用户察觉什么。

后来发现很多手头的demo都用了这个壳,当然有一部分是用demo引擎制作的,至少CONSPIRACY和farbrausch都在用它。还有一些小组织的手写demo作品最终也用了kkrunchy加壳。大家可以验证下~

我简单说下这个壳的一些特点

首先它采用了段合并,这也是为什么它加壳的程序都只有"kkrunchy"这个section的道理,要知道平时编译参数中的段合并一般是不提倡加上的,不过这的确对文件体积减小有积极作用,但未必所有程序都能这么干...

所以并不是所有程序都适合用这个壳来压缩的,同时由于段合并,资源(resource)的提取也造成了一定的问题。因为资源段也被合并了...

不过对于demo而言这不会带来什么问题...

当然如果把软件保护寄希望于它那就错了...我是用OllyICE直接用OEP定律就脱掉了...没费一点功夫...

好了,Sence Demo不只能停留在那些工具本身,从根本上去了解还是有必要的。今天介绍了这个罕见的壳希望能对大家有用~

最近ReformCore的进展:PUXOS

曾经反思过为什么一个简单的新网站要花1年多的时间?可能是当初概念提的太泛了。如果仅仅是要实现预想的“网站”的要求,恐怕一周就能完成。

之所以现在一直称得东西叫做ReformCore。是因为我希望这将来是一个基础的核心系统,也就是说今后可以基于他做应用,特别是AI方面的。网站也只是一个应用,所以1年多的时间很大部分都是花在做这个Core上面了。

不论大家是不是有兴趣听,我就说下目前这个Core的一些部件。至少今后我就靠它了。

 

ReformCore.PUXOS

PUXOS是希腊语,box的意思,当然我选择这样的名字一方面是因为pu前缀可以看成"put","os"后缀提示是一个系统。当然这样的理由...

另一方面是他的存储模式很像一个个盒子...

这是在做ReformCore早期就想到的一个东西,不过也是最泛的一个东西,它类似一个简单的数据库管理系统,或者说是文件管理系统。

他由目录层次管理、数据记录管理、数据类型自适应及存储几个功能组成。当初设计的理念是由他完全管理网站及其他应用产生的数据的存放和具体格式,高级应用无需关心这个文件是存储在web服务器还是其他地方,以及具体的路径。数据完全按照该有的逻辑方式分布。而且具体的格式由puxos自己决定

比如:

今后得主flash网站在第一次加载时需要向服务器请求网站的配置信息,这个信息的具体格式和url flash无需知道。他只需用ReformPost的GetUIDContent RPC

请求mainsite.siteconfig这个UID即可获取想要的信息。同样也可以往puxos里面保存新信息,具体的格式和存储位置由系统自行决定。

当然这个系统的最终应用我希望是AI方面,反正目前只是一个个人试验的东西,所以也没考虑太多

就说这么多了,编译考好了,继续做网站,好完成一桩心愿。当然我已不在乎这个网站自身的意义了

编译考好了,恶搞一下~

呵呵,应该学了编译或者学过的都能看懂吧~

不多说了~给大家乐乐~

 

the future...

Nogard Book P.293 L4

This grammar can be adapted to apply to csk's future....... see Fig. 11.16.

模块音乐(Mod)的制作和使用,Demo程序的主体之一

这篇是特别为老弟DJ_Somnia准备的,同时也是上次的《Demo Scene:Principles,Techniques,and Tools》的后续部分

模块音乐(track)其实我们每个人都听过,再熟悉不过的例子就是FC游戏的音乐!当然那只是最简单的应用了。他广泛的应用在各类游戏背景音乐、电子乐器以及crack程序和Demo程序里面。

1.简介,对于Mod较为熟悉的话不妨略过

Module files (MODs) are a class of file formats used to represent music on a computer. They store several patterns or pages of music data in a form similar to that of a spreadsheet. These patterns contain note numbers, instrument numbers, and controller messages. The number of notes that can be played simultaneously depends on how many tracks there are per pattern.

Module files also give a list of the order in which to play the patterns. However, the biggest advantage of MOD family over standard MIDI files is that MODs include their own audio samples and should sound exactly the same from one player to another barring interpolation methods and any errors in players.

--Wikipedia

上面是wikipedia对于Mod音乐的解释。个人认为这个解释是恰到好处的,不过不够形象,下面我简要介绍下Mod的一些知识:

大家可以下载下面这个链接中的程序:

解包后,在资源管理器里面用鼠标把"my dirty old kamel.xm"这个文件拖放到"fmod_mini_player.exe"文件图标上,放开鼠标,此时就会启动这个程序开始播放音乐。

对于这个程序以及".xm"文件我稍候会作具体介绍。

现在你应该听到播放器里面传出音乐了,这就是所说的模块音乐,而那个程序就是一个播放器。

是不是和FC游戏的音乐很像呢?的确,他们就是同一类型的,但是这里的音质要好得多。

看了文件体积,你可能认为它是一种类似于midi音乐序列的文件,的确,他们之间有相似处。

Mod音乐和其他格式音乐文件的比较:

我们通常定义的音乐格式wav,snd,mp3,wav等各式音乐是直接对原始音频信号的采样,或者说就是把波形信息直接保存了下来,所以他们的音质自然是最佳的,但是体积也很大。不过由于直接采样,任何类型的声音都可以得以记录,除了各类乐器,还可以使人声

midi音乐序列:他好比是一首歌曲的曲谱,他只是记录了一首歌曲用到的乐器,以及每个乐器的弹奏信息(何时起音、音高等)。而具体乐器的音色信息是预先定义好并且事先存储在目标播放器上的。这就带了2个问题:

1.不同播放器上对同一乐器的音色可能存在差别:比如MS的midi波表中对于钢琴音色的采样要比老式yamaha声卡采用FM(频率调制)合成的钢琴音色好很多。这样产生的后果就是midi文件在不同设备上播放可能听起来不同。你的手机铃声是不是在pc里听起来和手机上不同?

2.midi中的乐器是固定的,也就是说midi中弹奏的乐器必须是midi已经定义过的,如果近期诞生了一种新的音色的乐器,那么除非midi修改播放器程序,这种乐器才能被支持,但是不可能全世界的midi播放器都会更改。这就好比24和弦铃声的手机无法播放48和弦音乐中的一些音色

Mod音乐格式正好位于上面2种格式之间,一方面它采用midi类似的乐谱定义,只保存了一首歌曲如何去弹奏的信息,而不是保存所有波形信息。同时,他可以定义每种乐器的音色,也就是说保存了其中用到的乐器的波形信息。

这样不但使得Mod具有很小的文件体积,同时可以表示几乎所有的音乐,甚至人声!(在fr团队的一些demo中就有这样的例子)

由于乐器波形是文件给出的,所以track在不同设备上播放效果几乎一样(当然还受DSP采样率和位宽限制)

基于上述特点,Mod自然是各类电子游戏和demo的首选

2.Mod的简要原理介绍

通常,用于制作Mod文件的编辑软件称为Tracker。Wikipedia对其的定义:

Tracker is the generic term for a class of software music sequencers which, in their purest form, allow the user to arrange sound samples stepwise on a timeline across several monophonic channels. A tracker's interface is primarily numeric; notes are entered via the keyboard, while parameters, effects and so forth are entered in hexadecimal. A complete song consists of several small multi-channel patterns chained together via a master list.

如果有用过一些节拍编辑软件,比如FL studio,那么track的原理就很好理解了

和这些软件类似,tracker除了保存一首歌曲的钢琴卷帘(paino roll)外,还保存了乐器的音色信息。一个音色称为一个模块(module,之所以叫做模块,是因为在早期的硬件合成器上,音色是通过一个通用的硬件波形发生器加上配套的滤波系统和包络器组成的。这样一个通用的音色系统就叫做模块,现在也沿用了当时的叫法,其实也是一样的)

Mod中记录音色的信息包括:

原始采样(sample),也就是一个音色原始的采样波形信息,他可能就是钢琴的C#音

包络信息(envelope),记录音色的起音、音长、释音信息

谐波信息(harmonic),可以用来控制音色的共振行为,使得音色悦耳

滤波信息,就是滤波器的具体参数

波形信息,用以控制再现的音色的基波类型:正弦、方波、锯齿、三角波

循环信息,可以记录在原始采用中用于循环播放的部分,这样可以把原始很短的采样音色延长

可以说一个mod文件就是简单的节拍编辑器的工程文件(其实就是如此)

3.mod音乐格式的种类和相关的编辑器

你可以为自己定义一个track的格式(貌似FC游戏就这样),但是已经有很多通用的标准了,每种标准都对应了各自的文件格式和相关的编辑器和播放器。利用他们可以使demo和游戏的开发大为简化(此部分本文最后会介绍)

下面就介绍目前比较常见的3种格式

Fast Tracker(.xm)

就是上面例子中的格式了,下面是摘自wikipeida对他的描述:

Fast Tracker, specifically Fast Tracker 2 (FT2), is a program that was one of the most widely used trackers in the world. It was created by Fredrik "Mr. H" Huss and Magnus "Vogue" Högdahl, two members of a PC demo group called Triton (now commonly known as Starbreeze Studios) which set about releasing their own tracker after breaking into the scene in 1992 and winning several demo competitions.

从这段文字就能看出track和demo有着多么奇妙的联系了!它就是demo比赛中产生的

和下面将介绍的编辑器一样,他们都是dos时代的产物,当然目前有基于win32和linux平台的替代品,但dos版本是无可替代的经典

*前面给出的例子音乐是Razor 1911的作品parasight_razor_11.exe中提取出来的,这个程序你应该在一些Diablo II的破解版本目录中找到(原因我就不解释了:-)

Fast Tracker2的官方网站:www.fasttracker2.com

其经典版本是dos平台的2.09,最近又放出了win32的Fasttracker 3 0.25 BETA。不过这个版本极端的不稳定!

下面是他们的一些截图信息,如果一定要用Fast Tracker开发,建议用Dosbox运新那个2.09版本。win32版本是通过dx加速的

主界面,点击察看原始尺寸

包络编辑,点击察看原始尺寸

采样波形编辑,点击察看原始尺寸

Impulse Tracker(.it)

Jeffrey "Pulse" Lim 的作品,同样也是DOS时代的作品了,完全由asm编写。目前较为流行的版本是linux下的cheesetronic (http://www.reduz.com.ar/cheesetronic).

Tux Racer中的背景音乐就是这种格式的文件。

主界面,点击察看原始尺寸

Scream Tracker(.STM,.S3M)

和上面类似,看wikipedia的解释:

Scream Tracker is a versatile multi-track digital sequencer created by members of Finland's Future Crew (FC), legendary in the PC demoscene. It was coded in C language and assembly language. Versions prior to 3.0 created STM files, later ones used S3M.

上面我简要罗列了3个流行的tracker程序和他们对应的格式,可以说目前demo程序中一般就是用这3个格式的了。其中以xm较多见

对于更详细的格式,可以参看wikipedia的条目:http://en.wikipedia.org/wiki/List_of_audio_trackers

3.mod的创作

这是我只是介绍mod创作软件的选用,至于如何创作这应该去参考音乐合成器和节拍器的教程

其实大部分信息我在上面章节已经给出了,你可以直接使用我介绍的软件,对于选用的格式,我推荐用xm文件。

基于下面这个原因:可以采用现成的fmodmini库作为播放前段,对于开发demo和cracker这是非常方便的。fmodmini本文最后部分会介绍

如果你打算直接使用上面的软件,推荐去下载他们的DOS稳定版本,然后配合DOSBOX使用。不过一般除了怀旧和炫耀(我觉得这个软件的界面就是用来炫耀的,否则为何到了win32版本还要dx加速...)外还是推荐你采用一些比较“现实”的版本,比如linux下用cheesetronic。

一个Win32的通用版本:ModPlug Tracker

他采用插件模式,基本上已经支持目前常见的各类mod文件的创作了

更好的消息时他是100%free的,可以从其官网上下载到:http://www.modplug.com/

同时可以在sourceforge找到他的代码:http://sourceforge.net/projects/modplug/

仿Fasttracker2界面的跨平台替代品:MilkyTracker

如果喜欢Fasttracker的界面,但又受不了模拟器模拟的效果,不妨试试这款编辑器,不过他的主推平台是linux。但经过我的使用,winNT版本也相当稳定。同样采用DX加速,界面不知比ModPlug 好多少(不过推荐有能力的用linux去跑它:-)

同时他的官方网站还提供了他的使用视频教程:http://www.milkytracker.net/?HOME

4.如何在程序中使用mod

如果要作大规模应用,完全可以采用fmod组件,如果仅仅为了用于demo或者crack程序,可以做下面尝试:

1.使用fmodmini

虽然也叫做fmod,同样也是官方产品,但他说白了就是xm播放组件。主要是minifmod.lib这个文件,通过合理设置编译头文件xmeffects.h可以编译出体积很小的播放程序,如例子中给出的只有11kb(采用UPX加壳后)

2.采用cheesetronic提供的播放器代码

这个我没有测试,代码可以在cheesetronic首页中找到,目前有BSD、linux、win32、OSX、PPC等版本。

3.亲自编写

我也没有亲自写过一个真正的tracker player,所以就不多说了:-)

5.总结

最近发现自己成“理论家”了——只说不练,所以其中的一些东西我介绍的并不是很具体,希望给各位有一定的参考意义,具体的实行还是要靠亲自的实践。

到现在一个事实已经很明朗了:crack、demo和mod,这3者的起源和发展有着千丝万缕的联系。虽然后2者在国内基本上没有起步,至于mod,至少出了本文我就再没见过别的中文文章了。

不过很荣欣我周围的朋友正好可以涵盖这3个领域,所以借此机会把本文发到每个领域对应的论坛,毕竟Computer Science是一门艺术,它并不是死板的书面理论,crack、demo和mod就是最好的例证!(回归现实,看我的龙书了)

-------------------------------------------------

本文遵照Creative Commons 2.5/cn 发表,欢迎转载和传播,请保留作者信息

CSK 2006

[分享]Undocumented Windows 2000 Secrets PDF拼合版本

书名:UNDOCUMENTED WINDOWS 2000 SECRETS: PROGRAMMERS COOKBOOK

作者:SVEN B. SCHREIBER

发行商: Addison-Wesley

 

这本书相信涉及windows内核开发的朋友不会陌生了,与他类似的还有UNDOCUMENTED WINDOWS NT等

这是一本涉及windows2000内核调试器、本地API(native API)、内核驱动、win2k对象管理(Windows 2000 Object Management)等方面的书籍,其价值性可以从UNDOCUMENTED 字眼中表现出来。

对于开发系统级程序、安全软件、木马病毒(但愿你不是这个目的),她是一本不可多得的好书。

之所以在此共享,基于下面2个原因:

1.在本书网站:http://www.rawol.com/?topic=41 

作者的一段话:

Well - the solution is here! I am indebted to the kind people at Addison-Wesley for returning the copyright of Undocumented Windows 2000 Secrets back to me. I'll use this right to publish the entire book free of charge in PDF format on this web site. Feel free to "spread the word" - please distribute the address of this page to anyone interested in my work!

2.作者发布的pdf版本是一章为单位分割的,虽然在学校0day上的电子书大多是这样,但我还是不习惯,所以手工拼合了下。

当然,突然放出这个东西绝对不是没有道理...毕竟reformCore已经进展到一定程度了,同时有一个计划...

 

好了,希望各位能喜欢^_^

 

Ubuntu烧饼~不知道好不好吃

www.makezine.com 看到的,其实买些色素自己就能做~呵呵

Blog音乐服务器自动转接

为了保护主网站服务器流量不至于导致被迫关闭,blog上的音乐我一直存放在一个电信网的静态虚拟主机中。不过问题就出在这个电信服务器在校园网,也就是教育网内访问奇慢无比。

最近学校个人ftp空间扩容,所以就在服务器中作了教育网ip自动识别的过程,当发现是教育网用户是,就会播放位于教育网内的ftp上的音乐。

这样无论在哪有可以把blog当音乐播放器了..

还有个好处就是以后对于版权问题的音乐可以仅限教育网了...

下面是目前我收集的...

分页:[«]1[2][»]

Copyright Shikai Chen 2000-2012. Powered By Z-Blog(CSK Modified)