Profil de leicerCogito, ergo sumPhotosBlogListesPlus Outils Aide

Cogito, ergo sum

我思故我在

刘昭

Occupation
Lieu
打心里不喜欢Microsoft,却用了人家的博客。
Photo 1 sur 8
La liste est vide.
感谢访问!
Veuillez patienter...
Le commentaire entré est trop long. Raccourcissez-le.
Vous n'avez rien entré. Réessayez.
Il est actuellement impossible d'ajouter votre commentaire. Réessayez plus tard.
Pour ajouter un commentaire, tu dois avoir l'autorisation de tes parents. Demander l'autorisation
Tes parents ont désactivé les commentaires.
Il est actuellement impossible de supprimer votre commentaire. Réessayez plus tard.
Vous avez dépassé le nombre maximal de commentaires qu'il est possible d'envoyer le même jour. Réessayez dans 24 heures.
Votre compte a pu laisser les commentaires désactivés parce que nos systèmes indiquent que vous risquez d'arroser d'autres utilisateurs de messages. Si vous pensez que votre compte a été désactivé par erreur, contactez l'assistance en ligne de Windows Live.
Effectuez la vérification de sécurité ci-dessous pour finaliser l'envoi de votre commentaire.
Les caractères entrés pour la vérification de sécurité doivent correspondre à ceux de l'image ou du fichier audio.
07/10/2008

做个学习笔记

 学习waitpid  操作系统原理
03/12/2007

最简单的逆向^_^

       日志好长时间没写了,最近一段时间对逆向工程(Reverse Engineering)感兴趣了,其实现在的状态逾期说是Reverse Engineering,不如说是Cracking。说来惭愧为什么突然又想起搞这个了呢,其实这个东西早有接触,不过现在将其付诸实践而已,最大驱动力是想对三国志11进行改造,想给他加入网络功能,毕竟电脑太傻了 :-&

       可是呢,一看san11的程序文件,SafeDisc 4.60.000 -> Macrovision [Overlay]!!!傻了!这个壳可是猛壳,google了半天发现是个很牛的商业的壳,几乎没有任何资料!晕了!本来想搞搞PE就可以了,没想到还要脱壳了……无语,这样就陷了进来,也不管他有没有“实际意义”了,爽了就可以了!

       到现在快两周了,也看了很多的PE文件格式了,对PE有了一定的了解,也看了看雪上的基础板的OllyDBG 入门系列,那就班门弄斧一下,给windowsxp的calc.exe运行开始加个MessageBox吧~

       我们开工吧!工欲善其事,必先利其器。我们的工具是WinHex、OllyDBG、PEiD、LordPE、记事本,当然了还要windowxp。对象是winxp下的calc.exe计算器程序。这个可是及其简单的,高手不要笑话俺呀!新手上路嘛^_^

       用PEiD不是为了查壳的,倒是为了用它的一个功能 Cave Finder 来看各个区块的空闲情况。

1 

 

 

 

 

 

 

 

 

 

 

 

                         图1 PEiD 的 Cave Finder 功能

2

                              图2 calc.exe的区块空闲情况

     从图2中我们看到.data块中只有0x27大小的空闲,省着点用吧,懒的增加新的块了,毕竟不熟悉,况且还有BoundImport的问题哎,$MS太抠门了!而代码段.text就富裕多了,我试着将字符串放在.text中,可是就是不行,看来数据还是要放在.data区呀~这个还有仔细看一下,探讨一下!

      就是加个messagebox,因此看看calc.exe中的输入表(import table)中有MessageBox吗?就地取材吧,这样最简单,当然用lordPE可以很简单的加入输入函数。lordPE上场了!

3

05/07/2007

理解是何物呢?

      凡能吸入我著作中空气的人,他就会知道,这是高岗上的空气,是使人精神焕发的空气。一个人必须加以培养以适应这种空气,否则他就会有受寒的危险。——尼采 (Nietzsche)

      以下的文字到不是围绕上面的话讲的,只是觉得挺有味道的,尼采真是个自傲的狂人,但是不是疯子!

       在自修时突然想到,“理解含义”是什么意义呢?面对一个句子,例如上面的一句话你是怎样建立的语义空间的,更不用问你是怎样体会到里面的深一层的东西,看到尼采的自傲了!机器或程序可以体会到里面的“含义”吗,藏在文字符号中的“文字”它可以看到吗?塞尔的中文屋子(附一)说明了一些问题,可是对于整个屋子,它懂这个的含义吗?子非鱼,岂知鱼之乐,既然它都可以翻译,怎么说它不懂呢?那屋里的人和工具书就像人脑中的神经元,对于单个的神经元,它当然不懂这些东西的含义,可是对大脑的全体却懂了,那道理不是一样吗?其实再者对一个人来来讲这样做他也是不懂中文的,那怎样要求机器可以这样明白呢?我觉得这个问题没触动到理解问题的研究。

     句法不能解决语义的问题,但是也打开了窥视语义空间的一条裂缝。奇妙的神经元连接就让人理解藏在深层次的东西,怎样让机器也理解呢?我现在的知识根本看不到希望,不知道,专家们是怎么想的?

附一:

中国语屋实验的大意是:
假设一个一点中文都不懂但能查字典懂英语的人呆在一所对外封闭的屋里,屋里摆满了应有尽有的汉英字典和工具书供他查阅。现在,如果一个人从门外的门缝间不断塞进各种写上中文语句的纸条让该人回答,该人接到纸条后马上查阅各种工具书,如果忽略不计查阅工具书的时间,则他必将在众多的工具书上找到使门外人满意的答复,然后把答复再次用中文写在一张纸条上,把纸条塞到屋外,由于工具书充分多,所能检测的中文答案能够保证正确,使得门外人从纸条上找不出该人理解中文的错误,于是门外人就得出结论:屋里人是一个懂中文的人,然而屋里人一点都不懂中文!

读《穷爸爸,富爸爸》 之二

我的QQ宠物又饿了,刚还向同学讨食吃呢,其实后来发现自己有300块钱可以买的。哎,人家腾讯太会挣钱了,什么都是QB,夸张的是1QB=1元!!我看我的家教同学玩了会宠物就轻松的花掉了还几块钱,境界不同呀!人家是雇主,我是雇员呢~

穷爸爸总是说:“我从不富有”,于是这句话就变成了事实。富有的爸爸则总是把自己说成是一个富人。他拒绝某事时会这样说:“我是一个富人,而富人从不这么做”,甚至当一次严重的挫折使他破产后,他仍然把自己当作是富人。他会这样鼓励自己:“穷人和破产者之间的区别是:破产是暂时的,而贫穷是永久的。

可是我对以后的规划确实和书中不太一样的,我毕业真的没想过去哪个大公司什么的,就想自己要努力 ,努力在学术上有所成绩,一直留在大学里,当个教授什么的,留在这个安静的地方,没那么多的纷扰,这也是需要实力的,莫非我这也是在为别人打工?我觉得这是在为自己打工,为自己的理想而活,生活中不是只有钱的,当然没有钱是万万不能的,没钱哪里来试验设备,怎样雇佣比自己更聪明的人,“闭口不谈钱就像依赖钱一样是一种心理疾病。”我想我没有有意的闭口不谈钱,也没觉得谈钱就是俗,只是我的有些哲学和这本书上还是很像的,不为钱而工作,让钱为我工作,钱本身不是资本,并没什么意义,倒是它换做实物才实现了它的价值,可能是一束娇艳的花朵换来心上人的欢喜,可能是股票、国债为你带来收益,但是单单数字或纸币却是没什么意思的。

可是我的行动验证了上面的想法了吗?我想似乎是没的,而且前些日子和林涵的谈话,她也很清楚的指出了我的这点,我去家教浪费我的宝贵的学习时间,林涵说你可以拿这个时间来学习更重要的东西,既然我不想为钱工作,可是我为什么抱着这样纯正的挣钱的目的去家教呢,有什么堂而皇之的理由吗?当然不会是教学相长。是为了让自己的财政更可以让我自己支配些罢了,而且用这些被我平时花的不见了影子的钱买了台 used IBM Thinkpad ,当时平时只用自己挣的钱吃饭,没怎么动卡上的钱。我自己觉的还好,我有了自己需要的东西,我不认为它对我们是奢侈品,应该是耐用品,是学习工具。因此我也是有强烈的明确的目的选择了对于我们现在的水平而言,最高效率的挣钱方法——每周付出6个工作的时间。可是实现了目的后,我似乎是停不下来了,这也许就是贪欲,似乎没了每周的收入,心里就觉的怪怪的,不对劲,也有那个家长的原因,她很信任我,而且教那个同学信息学奥赛也一年了,可是遗憾的是我没太看到希望,希望他可以再接再厉!我也得更加用心!

毕竟是需要钱。俗是俗了点,就是诗也是吃饱饭吟出来的~要不早饿晕了……

04/07/2007

读《穷爸爸,富爸爸》 之一

一个爸爸爱说“我可付不起”这样的话,而另一个爸爸则禁止用这类话,他会说:“我怎样才能付得起呢?”这两句话,一个是陈述句,另一个是疑问句,一个让你放弃,而另一个则促使你去想办法。那很快就致富的爸爸解释道,说“我付不起”这种话会阻止你去开动脑筋想办法;而问“怎样才能付得起”则开动了你的大脑。当然,这并不意味着人们必须去买每一件你想要的东西,这里只是强调要不停地锻炼你的思维——实际上人的大脑是世界上最棒的“计算机”。富爸爸时常说:“脑袋越用越活,脑袋越活,挣钱就越多”。在他看来,轻易就说“我负担不起”这类话是一种精神上的懒惰。

轻易说“我负担不起”这是懒惰,对的,讲的不错,我们更重要的是开动脑筋,自己想办法。和平时作题目也是一样的,急于说我不会也是懒惰,你就放弃了思考的权力!本来只是知道这本书挺有名的,正好室友的女朋友带来了这本书,我就近水楼台先得月,读读这本书了。也学习下如何理财来着,前些日子林涵还和我讲过关于这方面得事情呢,其实讲得我挺郁闷,现在我也要好好学习下了,哈~

03/07/2007

C++ 之 STL

以前用 Microsoft Visual C++ 6.0 总是不支持像 <iostream>这样不加 .h 的书写,我就搞不懂了,莫非不支持 ANSI/ISO ?不过VC++6.0对ANSI/ISO的支持确实不好,而且对STL的支持也有很多的问题,似乎VC++.NET好了些,还有C++ Builder,当然还有g++.后来在 gc++中试了试也是通过不了,奇怪了,后来才知道是自己的一个问题,原因是没有加上 using namespace std; 看来又得看看 namespace 的东西了,哎!反正那次受了刺激,决定彻底改写 工资管理系统 了,而且暑假在学校的重要的事情之一就是搞定 C++. 现在抓紧时间对STL,Template进行些了解,然后搞定那个垃圾程序,毕竟在12号还要检查的,期间还有那么多的考试,想起今天的物理考试我就郁闷的不得了!本来认为自己一定没问题的题目竟然做不出来的,太打击我了!

我尝试了下vector,vector<Base *> v; 当 push_back() 进多态派生类用,调用v[1]->pr(),其中pr()是虚函数。实现了多态,那个程序我也也就又有了点感觉了~不过这个STL真的是好东西!!

以下附下我的测试代码吧,太小儿科了,没办法还在修行中嘛:

#include <iostream>
#include <vector>

using namespace std;

class Base{
public:
virtual void pr(){
cout << "Base here!" << endl;
}
};

class D1 : public Base{
public:
void pr(){
cout << "D1 here!" << endl;
}
};

class D2 : public Base{
public:
void pr(){
cout << "D2 here!" << endl;
}
};

int main(){
Base b;
D1 d1;
D2 d2;
vector<Base *> v;
v.push_back(&b);
v.push_back(&d1);
v.push_back(&d2);
vector<Base *>::iterator p = v.begin();
while(p != v.end()){
(*p)->pr();
p++;
}

// v[0]->pr();v[1]->pr();v[2]->pr();
return 0;
}

结果是:

Base here!
D1 here!
D2 here!
Press any key to continue

28/06/2007

程序设计实习作业之 工资管理系统 (续3)

      这个windowns Live writer 慢的真是可以啊!光是打开就花了我大把的时间呢!哎,没办法,忍了~

      这里提个刚刚体会到的一个小经验,我们有时候只是想将指针中的数据传给新的指针,而不是地址,这两者是有着本质的区别的,例如:

LINK_EM *p = (LINK_EM *) malloc(sizeof(LINK_EM));
p = developer;

      这便是传地址了,当你改动p时,也会改动到developer,也许这并不是你想要的结果。再看如下:

LINK_EM *p = (LINK_EM *) malloc(sizeof(LINK_EM));
*p = *salesman;

      这回就是传值了,当你改动到p时,并不会改动到developer。

      总之原则是:

YOU MUST KNOW WHAT YOU ARE DOING!!