摘要:
帝国OL是拉阔一款手机网络游戏(腾讯也有代理),我在中学时代玩儿过。 帝国OL还维护着KJava版本游戏客户端,这意味着我们可以在PC端使用模拟器玩儿游戏。 不过这篇文章我主要是关注如何通过代码注入拦截其客户端代码调用并测试其方法内容的。 声明:本人并没有任何对于帝国OL游戏代码的逆向工程、改编、分发或从中获利的行为,本篇文章的执行数据和工作流程及所有言论和工作都是为了学习之用,如果文章中的内容侵犯了任何个人或集体的利益,请联系我关闭本篇文章。在您观看此篇文章时则视为您已经默认了此文章为学习性质,否则请勿继续向下观看。 帝国OL游戏客户端代码是混淆加密过的,在最新版客户端中(截至时... 阅读全文
摘要:
MySQL本身就支持安装使用,本文只是对自己使用免安装版MySQL的经历记录下来,以便以后查看。 首先是获取Windows下的MySQL免安装版本,这个需要去到MySQL官网进行下载。我一般喜欢把首页页面拖动到最下方,点击MySQL Server进入下载。 我下载了MySQL5.5.33版本(zip包)。 得到的文件就是mysql-5.5.33-win32.zip,解压出来后我把名字改成了mysql。 我们保留文件夹bin、data和share,其余的文件夹可以删除。 还需要一个my.ini作为配置文件,zip包中的几个ini是根据你物理机硬件水平进行选择的,从<=64M... 阅读全文
摘要:
计算机网络诞生后,大家慢慢地发现一个问题:一个字节放不下一个字符了!因为需要交流,本地化的文字需要能够被支持。 最初的字符集使用7bit来存储字符,因为那时只需要存下一些英文字母和符号。后来虽然扩展到使用8bit来存储一个字符了(这种方式被国际标准化组织收录,成为ISO8859-1。在字符集发展历程中国际标准化组织一直发挥着重要作用。),也还是无法存储诸如中文的字符。 混乱的年代到来了。为了存储下自己的文字,各个国家和地区(多为非拉丁语系的民族,因为这些语种字符数很庞大)各自使用两个字节即16bit来存放一个字符。他们把首字节的前2^7个位留给一个字节能存下的字符(如英文字母和标点符号... 阅读全文
摘要:
最近做项目时有一个需求,广告位图片上传时要预览,并且要等比例缩放和居中。已经保存的广告位图片显示时也要等比例缩放和居中。我使用了下面的代码实现,不过可能有一些小问题。 1 2 3 4 ResizeImage 5 6 7 8 24 88 89 90 91 92 93 94 95 96 97 图片: 98 ... 阅读全文
摘要:
其实我一直在研究将Delphi版的传奇2源代码使用C#实现,不过由于我并没有学习过Delphi。就只能说先试着用一些工具转换代码。 后来我在网上找到了一款软件:Delphi2CS。这款软件比较强大,虽然不支持条件编译,但竟然能对窗体控件达到非常高的转换效率!且直接生成vs.net的项目,令我十分高兴,这意味着我们只需要修复很少的部分。 不过真正尝试转换的时候发现有一个限制:源文件不得超过500行。 如下,图片为准换完成后的报告,代码为转换完成后的cs文件: 1 using System; 2 using System.IO; 3 using DCPconst; 4 using Bas... 阅读全文
摘要:
不知道朋友们是否有一种烦恼:有时候使用MyEclipse启动Tomcat十分缓慢,可能在几分钟前20秒以内,但现在却需要200秒开外;其间内存和CPU都被占用地厉害,而控制台的输出似乎有重复的迹象;而当好不容易启动完成后,发现响应请求的速度也比平时慢数倍。这一切在另一台机器或另一个MyEclipse/Eclipse中却不会发生。 这时你可能会很烦躁:不应该是代码的问题。 其实这可以算是MyEclipse的Bug。不出意外,上述情况会出现在你新增断点之后! 我们通过图解来看: 上图红色框内本不应该出现断点,如果你在那里双击,正常情况下断点会出现在方法的第一条可执行语句(如上图蓝... 阅读全文
摘要:
当我们开发一个WEB应用时,不可避免地使用一些Ajax来实现异步数据加载,以构建富客户端。 不过使用Ajax有一个问题:同源策略可能会使我们无法取得所需数据。 (注:同源策略指Ajax的请求方和数据返回者必须在同一IP和端口下,例如我们的网页地址在127.0.0.1:8080下,那么它发起的Ajax请求就只能被此IP和端口的监听程序接收和处理。有网友指出即时同一台主机的多个IP也不可以互发Ajax请求,这个我没有求证。) 由于Ajax的同源策略,造成我们在以下情况下可能无法取得所需数据(就Ajax而言): 1.需要在页面上使用脚本(JavaScript)去取得其他服务器的数据(... 阅读全文
摘要:
由于C#屏蔽了很多操作系统内核级的操作,将保护机制进行了加强,通过普通方法是无法完成如后台键鼠模拟、进程内存读写、网络封包拦截等操作的。 而C#又提供了调用非托管代码的DllImport,使得我们可以调用操作系统较为底层的API来完善程序功能。 本文就C#调用Win32API函数PostMessage完成指定窗体后台键鼠模拟作为示例,粗略讲解一下C#对非托管代码的调用及Window的消息处理机制。 (如果您对DllImport和Window消息机制有较为深入的理解,阅读本篇文章只是为了了解如何发送键鼠模拟指定和PostMessage中wParam与lParam的具体含义请略过前面的章... 阅读全文
摘要:
WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷。知名的XFile(新的如CXF)、Axis1、Axis2等。 而Sun公司也不甘落后,从早期的JAX-RPC到现在成熟的、支持RPC调用与消息传递的JAX-WS都经过了市场的考验,十分成熟,而且使用JAX-WS开发WebService的收益是很大的,它是轻量级的。 我们使用JAX-WS开发WebService只需要很简单的几个步骤:写接口和实现=>发布=>生成客户端(测试或使用)。 而在开发阶段我们也不需要导入外部jar包,因为这些api都是现成的。首先是接口的编写(接口中只需要把类注. 阅读全文
摘要:
JDK1.5加入了对注解机制的支持,实际上我学习Java的时候就已经使用JDK1.6了,而且除了@Override和@SuppressWarnings(后者还是IDE给生成的……)之外没接触过其他的。 进入公司前的面试,技术人员就问了我关于注解的问题,我就说可以生成chm手册……现在想起来真囧,注释和注解被我搞得完全一样了。 使用注解主要是在需要使用Spring框架的时候,特别是使用SpringMVC。因为这时我们会发现它的强大之处:预处理。 注解实际上相当于一种标记,它允许你在运行时(源码、文档、类文件我们就不讨论了)动态地对拥有该标记的成员进行操作。 实现注解需要三个条件(... 阅读全文