自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

masefee C/C++游戏编程

[游戏编程]。。路漫漫其修远。。。

  • 博客(66)
  • 资源 (8)
  • 收藏
  • 关注

原创 何谓团队

我就这样告别山下的家我实在不愿轻易让眼泪留下我以为我并不差不会害怕我就这样自己照顾自己长大我不想因为现实把头低下我以为我并不差能学会虚假怎样才能够看穿面具里的谎话别让我的真心散的像沙如果有一天我变得更复杂还能不能唱出歌声里的那幅画每次听杨宗纬的这首《流浪记》,心里就特别的安静,一股得意淡然,失意坦然的感觉。就如歌词里所写,“我就这样告别山下的家,我实在不

2013-05-01 17:05:37 5335 8

原创 【揭秘VC CRT库Intel模块】-- strlen

既然是开篇后的第一篇,就先来一个简单且实用的函数吧,以增强你我的信心,然后再一步一步到复杂,这样从前至后,也就很顺其自然了。 还记得初学C的时候,对于字符串操作一类函数的记忆显得尤为深刻,各种考试会考strlen、strlen等函数的实现,到了毕业找工作,很多公司的笔试题里,也包含有strlen、strcpy等函数的实现。可见字符串操作类函数是受到了老师和公司出题者的青睐啊。那么

2011-12-06 00:00:25 11756 20

原创 【揭秘VC CRT库Intel模块】-- 开篇

在本博客开启时,就有打算写这块的冲动,直到现在,直到今晚,突然一股劲让我开了这个系列,写下开篇。 近段时间一直忙于工作,潜下心来做自己的研究也少了很多,每天下班回家都10点多了,很累。一般就洗洗睡觉了,远远比不得几年前的精力和状态了。看来我得好好调整一下时间,让时间用在刀刃上。 切入正题,本系列主要针对vc的crt库中的intel版本asm源码进行逐个剖析,前面

2011-12-05 23:59:50 6907 2

原创 活着,意义,偶像

很多时候,我都会想,人活着到底是为了什么?为了名利?为了生活?为了追求?为了责任?或者就为了简简单单的活着?这个问题可能会将很多人给问住了,可能在你活了十多年,甚至活了几十年都不知道这一辈子到底是为了什么而活着。有时候觉得多读一些书是好事,有时候又觉得少读一些书未必是件坏事,有很多人学识见识都比较低,他们想得比较简单,人活着就是为了活着,不为别的,能吃饱饭,能在某个时候吃上一顿美餐也觉得

2011-11-27 15:11:14 5542 19

原创 【动态分配栈内存】之alloca内幕

哎,下班回家就开始大扫除,一直到凌晨才搞定,真的累了。但是计划的是今天必须将本文写完,不写完睡不着觉。那就尽快切入正题吧! 我们经常使用malloc或者new等函数或操作符来动态分配内存,这里的内存说的是堆内存,并且需要程序员手工释放分配的内存。malloc对应

2011-09-30 03:38:19 34482 32

原创 CC++程序员“是否应该掌握”【某种汇编语言】?

工作3年之余,发现精力会随着很多事情而降低,以前觉得很有激情很有兴趣的东西,可能会慢慢变得“无关紧要”了。不知道这是一种所谓的洒脱,还是一种懈怠。总之我会努力克服现在的状态,让自己的业余时间再充分利用起来。加上最近得了一个“准专家徽章”,为了对得起这个徽章,也为了摆脱前面的懈怠,

2011-09-11 15:19:32 15803 53

原创 【诡异的精简C语言程序】main函数隐藏

哎,几个月以来没有写博客了,时间太紧,精力又有限。今天正好有这个时间,打算写一篇今天在网上讨论的一个问题。我想大家应该都听过“国际C语言混乱代码大赛(IOCCC, The International Obfuscated C Code Contest)”吧,今天无意间在网上讨论到

2011-07-14 21:49:21 23851 81

原创 Inline Hook 之(监视任意函数)

前面已经写过两次inline hook的博文了,第一篇为:《C/C++ HOOK API(原理深入剖析之-LoadLibraryA)》,这篇博文的方法是通过修改任意函数的前面N个字节,实现跳转并进入到我们自定义的hook函数里,执行完毕我们的hook函数之后,再直接调用被hook的函数。第一篇的方法没有考虑多线程的情况,所以在多线程环境下会有问题。第二篇为:《Inline HOOK API 改进版(hot-patching)》,这篇的初衷是为了解决多线程的问题,因为这种方式是一直hook的,直到程序结束。

2011-04-15 21:05:00 40753 26

原创 【GOF设计模式之路】-- Observer

差不多已经有3个月没有更新博客了,不知道都忙什么去了。我一直以来有一个不知道什么时候开始有的准则,要写博文就得写好,在每次的写作中应该总结上次的一些写法,弥补一些不足,同时要看到进步。所以在这3个月期间做了很多次打算要写本篇的,可总是被一些事和当时的心情所影响,为了追求质量,因此跳票到现在了,在此跟大家说声对不起。之前的一个月一篇的承诺没有实现,以后改正。好了,回到正题,在瞎扯淡就又该说

2011-02-27 14:47:00 11880 32

原创 【GOF设计模式之路】-- Factory

自从开始工作,就感觉精力相比在大学时有很大幅度的下降。大二那一年精力最旺盛,自从大二结束开始工作到现在,两年时间,似乎精力都已经不受自己控制了。如果对一些技术研究工作不是很感兴趣,下班之后基本上到晚上10点左右就想睡觉。工作两年加上大二的一年,一直到现在都坚持每天必须有新的东西进入脑子,进步倒是明显感受到了,但真担心现在的精力还能坚持几年的技术研究。但愿不要像大家说的到了30岁以后就不适合做技术研

2010-11-13 15:53:00 12749 47

原创 【GOF设计模式之路】-- Singleton

之前一直徘徊第一篇该写哪一种设计模式,最后决定还是以Singleton模式开始吧。之所以以它开始,原因在我于个人认为,相对来说它在设计上比较单一,比较简单一些。在通常情况下,它是最容易理解的。同样也正因为它容易理解,细节才更值得注意,越是简单的东西,往往会被我们忽略一些细节。关于Singleton模式的讨论和实现也非常的多,GOF设计模式也只对它进行了简单的描述,本文则打算相对全面的介绍一下Singleton模式,目的在于挖掘设计的思想。Singleton模式又称单件模式,我们都知道全局变量,Singlet

2010-09-23 19:36:00 15777 72

原创 【GOF设计模式之路】-- 开篇

时间过得真快,距离连载完【C/C++语言入门篇】已经6个月之久了。感谢长期以来支持我的朋友们,同时也感谢路过批评与建议的朋友们,如果没有你们,我想我将没有收获,也将没有信心坚持在这里。近两个月一直忙着各种事情,加之要将本质工作做好,写博的时间基本都抽不出来了。有的时候想写,但又似乎提不起精神,比起两年前大二时期的精力,简直就没得比。虽然不知道这个系列是否能够有足够的时间写完,但是我想先将系列的开篇下撂在这儿,也算是给自己压力,不管怎么都不能丢下记录的习惯。回到正题,这个系列写设计模式的原因有几个方面,一是如

2010-09-20 23:56:00 7735 15

原创 别了!我的大学!!

就毕业了。。终于毕业了。。就这样毕业了。。哎!已经毕业了。。在2010年6月29日,也就是我农历生日的前一天,大学毕业了!!我不知道是不是上天故意要安排在这天毕业,也不知道到底这样的巧合有什么样的意义,我只知道此刻起我的学生身份将不再有了,好像还在怀念以学生自居的感觉。不是因为车票可以打折,不是因为景点门票可以优惠,那是为了什么?有句话说:“毕业等于失业”,可能这是很多大学生都知道的一句“名言”。的确,当毕业时还没有稳定的工作,或者换句话说没有稳定的收入,交不起房租,过不起生活,拿父母的钱已经不再是那么理所

2010-07-06 13:18:00 12569 75

原创 Inline HOOK API 改进版(hot-patching)

记得在之前写过一篇hook api的文章(C/C++ HOOK API(原理深入剖析之-LoadLibraryA)),那篇文章主要原理是构造一块代码字节,将LoadLibraryA函数的前面16个字节给修改,然后跳转到自定义的函数中。要调用正常的函数时,又将其unHook,这样一来再一次调用中,有一次unhook和一次hook,操作显得过于频繁。而且hook与unhook当时设计成了thiscall,因此维护传递this的寄存器(通常是ecx)就成了必然,再加上参数的传递,__Inline_Hook_Fun

2010-06-11 15:56:00 15847 13

原创 深入C/C++之基于CheckStackVars的安全检查(VS2008)

最近一直忙毕业的相关事情,加上工作,转眼间,又到月底了,之前承诺的每月一篇博文,前几天就一直在寻找到底要写什么,近两天又突然发现有很多东西可以写。本篇就先延续之前的一篇基于Cookie的安全检查机制(深入C/C++之基于Cookie的安全检查(VS2005))来介绍下另外一种在DEBUG版本下的安全检查,也就是CheckStackVars检查,话不多说,直接进入正题。 在VS2008下,函

2010-05-28 11:12:00 13258 13

原创 C++中的【菱形虚继承】深入剖析

转眼间有过了一个月了,自从【C/C++语言入门篇】连载结束后,已经很久没有写博了。最近一直忙着本科毕业论文和工作上的任务,加上一个对于我来说非常重要的事情正在进行中。所以近段时间脑子一直处于绷紧状态,发现自己的脑细胞还真是不够用。加油!  今天有朋友问到一个问题,那就是在C++的多重继承中,出现菱形状继承的情况下,在构造对象时的内存分布及构造函数的调用流程上出现了问题。最后跟他解释清楚之后

2010-04-09 20:25:00 11931 11

原创 【C/C++语言入门篇】-- 文件操作

最近实在是太忙了,这篇整整就推迟了1个月了,实在是对不起。之前本打算这个模块就结束了,文件操作就不写了,但是文件操作又是一个很重要的东西,而且也刚好能够总结之前我们学习的所有知识。同时也为了将文件操作这个初学者认为很神秘的东西给本质化。因此,本篇将逐一介绍C语言的文件操作。(本模块的命名本来是想C/C++一块儿讲解的,但是由于工作、毕业论文、业余时间的充电、还有要完成那个未知的梦等,因此因为时间问

2010-03-03 12:11:00 47496 238

原创 【C/C++语言入门篇】-- 剖析浮点数

前面一篇我们讲了位运算后,基本C语言的大块都提及了,一些细节和用法暂时不再本模块介绍了。希望我的心愿能够在我毕业之前给我的大学生涯划上一个圆满的句号。加油努力。 在本模块的第三篇就已经讲了基本的数据类型,其中把浮点数刻意留在了后面来介绍。我的理解是在我们理解了内存,指针,位运算等后,再来介绍浮点这个特殊而又普通的数据类型比较好理解。浮点数和基本类型数据的存储差别比较大,这里不是说存储形式的

2010-01-30 14:58:00 23437 72

原创 【C/C++语言入门篇】-- 位运算

回顾之前的篇幅,C语言的主体部分基本已经介绍完了。之所以没有介绍C++的相关特性是因为在之前的文章中C和C++在这些方面都有共性,所以在面向对象之前。我们先把这些共性给介绍完。也就是说在介绍面向对象之前,所有的文章都是CC++中都能使用的。从这点上来看,现在正极力奋斗于C++战线上的初学者还是很有用处的。 本篇继续沿着这条路线,到本篇为止包括本篇都还不会急于去介绍C++的面向对象的特性。那

2010-01-26 16:25:00 23562 79

原创 【C/C++语言入门篇】-- 深入函数

前面一篇我们介绍了结构体,这篇终于能够介绍函数了。为什么这么说呢?因为函数非常重要。就这么简单。嘿嘿!之所以在这时才讲函数,是因为本篇将联系到前面的每一篇,这样函数才能体现的透彻。那我们就迫不及待的切入正题。 从第一篇Helloworld开始到现在,就没有脱离函数。那就是我们的main函数。main函数也是一个普通的函数,只不过通常把它作为我们写的程序的入口。也就是说我们就当它最先执行。那

2010-01-21 18:55:00 13534 53

原创 【C/C++语言入门篇】-- 结构体

前面两篇基本把指针给介绍完了,相信大家对指针已经不是那么陌生了。也不会因为指针和数组之间的关系而导致混淆了。大家可能也迫不及待想了解下后来的知识。今天我们就介绍下结构体。 对于结构体,既然叫结构体,形象上我们可以理解其就是一堆数据集合在一起形成一个结构。就比如一个学生的信息包括:学号、姓名、班级、年龄等等。这些信息都是属于这个学生的,因此我们就可以将这些信息统一绑定在一起。形成一个学生实体

2010-01-17 20:46:00 8816 39

原创 【C/C++语言入门篇】-- 数组与指针

前面一篇我们介绍了指针,相信大家对指针不再是那么陌生,虽然在一些大胆的指针强制类型转换上有的读者还不习惯。但是至少大家心里有个数,指针式如此的灵活,以至于你可以操作得比较底层或者根本越过一些语法的限制。这可能也是众多程序员抨击CC++不安全的因素之一。安不安全不是本文想要表达的,这里只需要记住一点,如果你有足够把握,那么你绝对可以毫不犹豫的运用。 本文依然不会离开指针的影子,前面一篇还有没

2010-01-13 21:04:00 9025 40

原创 【C/C++语言入门篇】-- 深入指针

再上一篇,我们介绍了基本调试。之前也说了,之所以把调试放在前面讲是因为后面的文章基本都会用到调试。观察我们的程序到底发生了什么。让我们能够直接明了的看清楚问题的本质。本篇将深入一点介绍指针这个让无数初学者畏惧的东西。希望大家再看完本篇之后能对指针有新的认识,之后不再惧怕它。觉得它就那么回事。那下面我们就努力攻克这个令我们“惧怕”的东西。 我们可能进入大学读计算机相关专业,基本第一门编程语言

2010-01-08 21:33:00 12376 54

原创 【C/C++语言入门篇】-- 调试基础

通过前面两篇,相信大家已经基本了解了我们的研究思路。既然是研究,那么必须的研究工具就得熟练掌握了。这里我所指的研究工具就是VC,我所使用的VC版本是2005。本文也将根据VC2005进行探讨。可能很多朋友或者初学者还是使用的VC6.0。在这里本人不推荐使用VC6.0。原因很简单,VC6.0已经过时了,后面的版本比VC6.0更强大方便。可能也是因为众多经典的程序设计书籍使用的都是VC6.0。有的朋友

2010-01-04 21:59:00 13664 48

原创 【C/C++语言入门篇】-- 基本数据类型

前一篇我们介绍了一个简单不过的helloworld程序引出相关问题。趁着还没有忘掉那些思考方式的记忆,本篇继续延续这种思维方式的理念,介绍一下CC++中的基本数据类型。数据类型不清楚的话在以后的编程中会有很多谜团和问题。甚至一个程序的BUG找半天也没有找出来时为什么,结果才发现是加减溢出了。更加严重的还有写越界、读越界等。同样比如网络传输时的消息结构对待每个字节,每个成员的大小及类型都有很严格的追

2009-12-30 23:01:00 11064 23

原创 【C/C++语言入门篇】-- HelloWorld思考

第一篇文章终于落笔了,本文将从思考的角度去重新认识一下Helloworld。在例子之后会提出不同的问题,引导大家去思考每一句乃至每个细节。同时希望能够让大家以后能够以不断思考不断提问的方式去看待自己的程序。我相信大家会发现很多新的东西,好了切入正题。 我们每学一种新的语言基本都会从helloworld开始,基本每种语言都喜欢将helloworld作为示例直接的表现在读者的面前,让读者在感官

2009-12-28 23:36:00 17096 61

原创 【C/C++语言入门篇】--序言

之前的定位可能主要为了研究底层及一些较复杂的问题上,而忽略了一些初学的朋友。导致他们可能一进来就有点“望而生畏”的感觉(自诩了哈,拍砖!)。应怪兽群里兄弟及一些朋友的建议,同时也为了把自己的经验及编程方面的一些想法分享给大家。因此打算写一些CC++语言基础入门的博文。从本模块中,大家可以了解到一些什么?1. 本模块定位为基础篇,主要还是一些语法上由浅入深,不会涉及很复杂的东西。着重从基础中

2009-12-28 14:08:00 10663 30

原创 最近有点乱

已经有这么久没有写博了。转眼间即将到月底,也是年底了。回想这一年多来,少不了辛酸。自己也进步不少。转眼间,四年的大学生活就只剩下半年了,现在我都不清楚到底自己还算不算学生。工作一年多有很多收获,但是心里似乎有点什么东西欠着。大三的课一节没上就出来工作,我都不知道我这样的选择是不是一种错误。可能我还是比较怀念大学的日子。现在只剩下来年的半年了,我是不是应该再努力去寻找那种上课的感觉? 最近一

2009-12-20 15:56:00 1406

转载 Win32 结构化异常处理(SEH)探秘

原著:Matt Pietrek翻译:VCKBASE译注:本文都翻译了一大半了,才发现网上已经有一篇董岩的译本(http://www.diybl.com/course/3_program/c++/cppsl/200866/122881.html),看完他的译文,感觉所有涉及关键技术的地方董岩翻译得非常到位,所以自己就没有再花时间往下译,本文后面的部分基本上都是采用了董岩的译文。此外,董岩在译

2009-11-16 19:36:00 4503 4

原创 C/C++条件(三目)运算符巧妙原理解析

     最近一直研究一个对个人而言很有价值的一个LIB库的逆向。在今天下班后突然灵感闪现,这个断断续续逆了接近一周的核心管理类。终于在今天给逆完了。在最后一个函数里,碰到了之前基本没有用过的一条指令。(呵呵,高手见笑了!)当然光看单句的汇编指令,是没有办法看出具体的作用的,而且还很可能会认为原作者本来就是用汇编来实现的!呵呵,先不废话,先贴出反汇编代码一睹为快:  mov        dw

2009-11-09 21:30:00 8369 18

原创 Python笔记(二)——python调用C/C++模块

前一篇讲了简单的C/C++调用Python脚本模块(.py)。既然是用于诸多游戏程序的脚本语言,那肯定是缺不了互调(礼尚往来)。因此,本篇讲一个简单的python调用C/C++写的DLL模块,对Python进行功能扩展。这里写一个简单的例子,主要就为了了解下这么用Python来调用C/C++写的DLL库。好了,切入正题: 首先,我是用VS2003建的一个DLL工程,将DLL工程属性里面的输出文

2009-10-31 11:26:00 9272 8

原创 Python笔记(一)——C/C++调用python

最近因为研究一个东西,并且在很久以前就想把python好好看看。正好满足我的好奇心。我每天上班做得游戏都是用lua,也是一门很强大的脚本语言。可能我更喜欢python的缩进区分和面向对象吧。 今天只写一个简单的例子。一个简单的python脚本,就一个函数,用C/C++去调用。可能这也是作为程序来说最关心的一件事。所以我的python笔记也就最先写这块。- -  好切入正题: #includ

2009-10-27 21:58:00 5148 5

原创 职场透视:我们都是猪八戒?

      在一次有关最佳雇主的调查里,被调查企业的员工这样一道题:如果把你所在的团队比作是西天取经的队伍,你认为自己扮演的角色是:A、孙悟空   B、猪八戒   C、沙僧。       结果超过一半的员工给自己的定位是孙悟空,剩下的大多选沙僧,选猪八戒的只有百分之十几。       之后把这个问题交给了老板们来回答,让他们评价自己的下属属于哪一类的更多,不出所料,答案正好反过来,老板们认

2009-10-08 20:50:00 2339 6

原创 深入C/C++之基于Cookie的安全检查(VS2005)

昨天在试着逆向一个有时间期限的LIB时,发现一些特别的检查函数,在之前的VC2003中是没有的,这些函数可谓是重量级函数。由于个人比较看不惯自己不懂的东西,出于不愤之情绪研究了下这些函数。首先在这里介绍个人认为较之其他几个更为重要的一种安全检查方式——基于Cookie的缓冲区溢出安全检查! 为了在发布版本中也能检测到缓冲区溢出,防止程序因缓冲区而受到攻击,VS2005(VC8)便增加了基于

2009-10-05 09:36:00 6515 11

原创 【中秋寒意】

                    中秋寒意      昔年八月十五夜,舍院宿室书桌边。      今年八月十五夜,广福桥头车水前。      东北望乡何处是,西南看月月无见。      昨风几吹无人会,今夜疏雨似往年。                                    

2009-10-03 12:18:00 1393 16

原创 【休闲】看待【写程序】

    学习意味着什么?    有的人说,整天对着电脑写程序就叫在学习。    有的人说,整天抱着本教材啃就叫学习。    就我的理解而言,整天休闲就是学习。呵呵,先别骂我!     为什么这么说呢?这怕要举几个例子:    比如我们平时看电影,看小说,听音乐。相对于我们程序员来说可能更多的人认为这是在玩儿。整天玩儿这些的话还会被认为玩物丧志。这看来也是正确的。很多人因为沉

2009-09-20 21:15:00 2583 6

原创 C/C++ HOOK API(原理深入剖析之-LoadLibraryA)

9月都快结束了,之前一直忙到写自己的东西加上上班。基本没有时间研究下汇编和C C++方面的感兴趣的东西。再怎么说嘛,9月还是得写一篇撒,以后每月至少一篇吧。给自己定了,希望大家监督。嘿嘿!这篇文章就来谈谈平常很常见的HOOK技术,这里呢。写得比较简单,方法很多。只讲原理!希望大鸟们别吐我口水哈 - -。好!切入正题。首先是概念吧。什么是钩子(HOOK)? 钩子(Hook),是Win

2009-09-18 12:36:00 26962 15

原创 利用C++的operator new实现同一对象多次调用构造函数

struct STest{    STest( void )    {        ++iCount;    }     int iCount;} int main( void ){    Stest obj;    obj.iCount = 0;    new( static_cast( &obj ) ) Stest();    

2009-08-18 22:51:00 7727 10

原创 Shell Code 原理深入剖析

这两天都一直在解析3D模型数据。今天闲暇之余写了段测试代码。分析下黑客们用的缓冲区溢出攻击原理及Shell code原理。好,直接进入正题。有什么说得不对的地方还望大家纠正。嘿嘿!首先来这么一段小小的测试代码:void test( void ){    cout }int main( void ){    int a[ 1 ];    a[ 3 ] = ( int )test;    return

2009-08-06 20:08:00 5259 23

原创 C++强制转换不同声明或类型的函数指针隐患

之前碰到一个问题,没有注意看函数指针的定义。造成一个错误,写到这里给自己一个提醒。也给大家看看我这个不小心的人犯的错误。嘿嘿! 先看段测试代码:void test( int param ){     int ret = 0;     for ( int i = 0; i      {      ret += i;     }     ret >>= 16;     ret |= (

2009-07-16 23:29:00 3264 2

Amethyst vs2008 vs2010 flex插件注册机(含WebORB破解)

这个是国外的一个收费的用于VS下的Flex插件,有了他,你就可以在VS下轻松快捷的开发flex程序了。压缩包里是最新的注册机。此注册机可用于VS2008和VS2010版本插件。与前面不同的是添加了【WebORB模块的破解】。 此压缩包里不包含插件,只有注册机,最新的插件请到官网下载,地址如下: http://www.sapphiresteel.com/Download-Amethyst-Adobe-Flex-IDE

2011-09-18

Process Explorer v11.21(中文版).rar

该工具可以方便的看到系统运行的所有进程中的线程,CPU占用,内存等。。。强大。。

2009-05-12

Linux命令大全.chm

分享CHM的,里面命令解释非常详细,方便速查

2009-05-12

Linux命令手册(全).pdf

之前都看到是WORD的,我来上传个PDF的给大家分享

2009-05-12

PE文件头变形技术及实现教程

讲解PE头变形技术,非常好的一种思想。同时也能让我们对PE文件更加的了解。大家慢慢体会吧 - -

2009-04-28

文件夹 U盘加密工具

可以对U盘上的文件夹等进行加密处理。方便的保护自己的隐私

2008-12-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除