摘要: 首先说明,下面的代码仅是一个IOCP的demo,很多地方的设计非常差,当然也有一些设计还算可以:)。此篇仅供对IOCP有些了解但又不深入的、需要一个稍微完整示例的、对网络编程感兴趣的同学参考。点击这里下载代码整个程序的流程如下:流程完全是无阻塞的,主线程里,将收到的消息全都一次性取出后,然后派发。所... 阅读全文
posted @ 2014-04-27 19:15 续写, 阅读(3061) 评论(6) 推荐(3) 编辑
摘要: 最近看了一些反外挂方面的资料,里面描述了一个利用SEH结构来反调试的方式。我自己写代码测试了一下, 用官网下载的OD加载程序,确实起到了反调试的作用。我就兴冲冲的封装了一下,然后给同事测试,结果他用他的改良版OD居然能无碍的调试,我当时就泪奔了。话不多说,直接上代码。 1 #include 2 ... 阅读全文
posted @ 2014-04-25 12:31 续写, 阅读(2013) 评论(2) 推荐(0) 编辑
摘要: 引言 要将C++中的对象类型映射到Lua中,就不得不要先了解Lua面向对象的机制。在这里,我们先看一下Lua面向对象的实现基础——metatable,再以此实现C++对象到Lua的映射。 Lua面向对象 不得不先提一下Lua的几种函数写法,普通函数有两种写法: 如果要将一个普通函数赋给一个表,有如下写法: 如果函数里面需要引用表的值,有两种写法: 其中,第二种写法就是一种面... 阅读全文
posted @ 2014-04-15 10:16 续写, 阅读(7739) 评论(7) 推荐(10) 编辑
摘要: 引言 放假三天,呆家里把win7换成了win8.1,接着玩起了hyperv,试着装了个windows xp虚拟机,体验很不错。不过对linux系统的支持不怎么样,装了个ubuntu,体验相当差!闲着无聊,在虚拟机里用od调试Sublime Text,探索了一下它的注册流程,于是有了这篇博文,与大家一起分享一些逆向思路,共同学习。 初探——运行环境和初步分析 windows xp(32位)系统... 阅读全文
posted @ 2014-04-08 22:42 续写, 阅读(3452) 评论(3) 推荐(6) 编辑
摘要: 引言 最近把《深度探索c++对象模型》读了几遍,收获甚大。明白了很多以前知其然却不知其所以然的姿势。比如构造函数与拷贝构造函数什么时候被编译器合成,虚函数、实例函数、类函数的区别等等。在此,我根据书本上的描述,结合VS2012的C++编译器,来验证其内容的正确性。让我们一起以指针寻址、虚函数表等理论作为依据,以汇编代码来实证,探索C++多态的实现。 #include u... 阅读全文
posted @ 2014-03-29 23:31 续写, 阅读(1775) 评论(2) 推荐(6) 编辑
摘要: 引言 通过前几篇,我们已经对Lua的C API有了一定的了解,如lua_push*、lua_is*、lua_to*等等。用C++调用Lua数据时,我们主要运用lua_getglobal与lua_push*配合以达到目的。现在我们来试试用Lua调用C++数据。 C++数据类型映射到Lua C++中数据类型有这么几种:1、内建的int、float等;2、指针,如void *、int *、int ... 阅读全文
posted @ 2014-03-23 12:01 续写, 阅读(9513) 评论(10) 推荐(8) 编辑
摘要: 通过上一篇的热身,我们对C++调用lua变量有了一个认识,现在让我们再深入一点,去探索一下如何调用lua的函数、表。 Lua与宿主通讯的关键——栈 lua是个动态脚本语言,它的数据类型如何映射到C++这种静态类型语言中?lua是有GC机制的,这与C++手动管理内存相悖。如何解决这些问题呢?lua用一个抽象的栈与宿主语言交互,栈中的每一条记录都可以保存lua值。无论何时,我们想要从lua请求一个... 阅读全文
posted @ 2014-03-13 11:59 续写, 阅读(4054) 评论(2) 推荐(6) 编辑
摘要: 上一篇我们搭建好了整个的项目环境,现在,我们一起探索一下如何将lua寄宿到C++中。 宿主的实现 我们在LuaWithCPPTest项目下,查看Source.cpp代码如下: #include #include #include using namespace std; extern "C" { #include #include #include }; void TestLua(); int main() { TestL... 阅读全文
posted @ 2014-03-10 17:35 续写, 阅读(7892) 评论(18) 推荐(7) 编辑
摘要: 引言 之前做手游项目时,客户端用lua做脚本,基本所有游戏逻辑都用它完成,玩起来有点不爽,感觉“太重”了。而我又比较偏服务端这边(仅有C++),所以热情不高。最近,加入了一个端游项目,客户端和服务器都用了lua,各种玩法是让我眼界大开。在此,写下自己的心得与体会,希望能与大家共同探讨进步。 环境搭建 lua官网下载lua源代码,我们将用它来编译静态库,解释器,以及动态库。 CMake官... 阅读全文
posted @ 2014-02-25 22:48 续写, 阅读(6752) 评论(12) 推荐(9) 编辑
摘要: 引言 最近有一个需要截取当前屏幕,并保存成BMP文件的需求。整个需求,拆分成三步:1、截取屏幕,获得位图数据。2、配合bmp文件结构信息,将数据整合。3、对整合后的数据做操作,如保存在本地、通过网络传送至服务器等。 截屏 我选用的是BitBlt这个windows API作为截取图片的方法,该方法的详细信息参考这里,详细代码如下: 首先获得屏幕的HDC,通过GetDC()这个API,接着... 阅读全文
posted @ 2014-02-20 23:43 续写, 阅读(5412) 评论(4) 推荐(2) 编辑