今天走在路上想起该写点什么,明天就十五了,这个年就这样过去了。不用叹气,努力就好。
昨天晚上发狠要看完那几本书,到了凌晨3点才睡。早上起来的时候是8点55,和平常时间差不多。这1周不到的时间看的书比我3个月看的书都多。当然有不少是以前看过的。看得不是很仔细。一本C++的,中国人写的,忘了名字,是对C++的类、模板、异常等对应的汇编代码作了比较。一本windows图形编程,也是中国人写的,没仔细看,捡感兴趣的部分看了几章,都是差不多的人,但是现在我不如他。一本Advance Windows,只是选COM部分看了看。还有一本Undocument Windows 2000。呵呵,有意思。今早爬起来又找出逆向工程揭秘一书翻了翻。对于破解其实我的兴趣很早的,但是几乎没有什么进步。就像尽管我95年就接触编程,但到现在水平其实就和他们工作3年的水平差不多,代码规范上就远不如了。套用大魔竞上 选手问评委的一句话,我们出道的时间差不多,为什么你就进步这么快呢?套用评委的一句话,练习练习再练习。大约99年刚刚接触vb的时候就开始看汇编了,当时流行的就是俞煌言(是这个名字么,我忘了)的破解资料。用个debug在dos窗口里反汇编,还自以为反汇编的是windows代码,反正那时也不懂。看雪出第一版的时候我就去买了,这本书于是在我身边沉睡了8年之久,好像现在也没有什么印象。没有练习,怎么也不可能进步的了。昨天晚上忽然想自己解析一下pe结构罢,刚开始就出了问题,以前看书的时候,都是说IMAGE_NT_HEADER的位置在IMAGE_DOS_HEADER+IMAGE_DOS_HEADER.e_lfnew,于是想也没想就这样写上去了。结果怎么也找不到那个PE标志。过了十分钟才发现,偏移是按字节为单位的,只是这样写,其实就是以sizeof(IMAGE_DOS_HEADER)为单位的,有些事情你不去动手,永远也不知道真实的情况。以前也曾经有过用SoftIce和Trw2000的时候,在汇编的海洋里被jmp打昏了头,还没有见到水就退回来了。所以对反编译的实践能力几乎就为0。今早上又捡起ollydebug看了看,以前根部不知道怎么用,就只是听说很好用。汉化版的好像叫ollyice尽管界面亲和了许多,感觉好像还不如原版踏实,多线程的程序好像经常不动了。看了看帮助文件,大体知道怎么用,于是就open了一个进程。里面每条语句都认识,就是找不到那个main入口。反复载入了好几遍,才找到,呵呵,也不像那些api函数一样还有个注释说明,就那么一句call 00403010,谁认得出来。不过看得多了大体也能发现,就在那个exit前么。前头3个push,后面一句调整堆栈。对于winmain入口,还比较好找,一般都有一句push 0x400000,hInstance么。在vs2008下编译的win32程序,程序入口都是一大堆jmp,jmp指向PE文件头,我猜测它是先跳去执行.net frame里的代码,然后再执行winmain,所以就了我上文所说的Vs2008下的程序在没装.net的机器上无法运行的问题。(猜的,对不对,请高手指出).技术书籍到此为止,要认真学习了,这些东西就在消遣的时候看看。这么大的人了再说学习二字,自己都有点恶心。