2013年6月1日
摘要: 近期,公司的一个项目是采用华迈SDK来做一套C/S架构的监控中心。自己犯了两个低级错误,写出来看看有多少朋友平时跟我一样没注意,哈哈。 第一个错误是这样出现的:在最初的几个版本中比较顺利。于是有点飘飘然,连续提交了好几个版本都没有进行全面测试。直到一个完成得差不多的版本出现后,来了一次全面的测试。这个时候发现,居然主界面显示不正常。找了好久原因没找到,只好回退到之前最初几个正常的版本,然后建立了个分支专门来排除此问题。一个一个版本的合并,一个一个文件的差异对比,最终定位到一个版本中原来把CXXX::OnPaint()中的CPaintDC dc(this);写成了CClientDC dc(... 阅读全文
posted @ 2013-06-01 22:43 漓江里的大虾 阅读(1111) 评论(0) 推荐(0) 编辑
  2013年5月18日
摘要: 今天一个老同学QQ留言给我。 老同学:“STL的string有没有类似MFC的CString::GetBuffer的函数?" 我当时正在搜夏娃种子没空鸟他。 过了一会,他问得更直接了:“如果调用SDK的::GetWindowText的时候,使用STL的string做为输出缓冲区,该怎么办?” 为了打发他,我毫不犹豫的回到“(LPSTR)string::c_str();” 5秒钟后,老同学:“。。。。。。”。 一看见他的一大串“点点点”,我猛然意识到我可能错了。 接着放下手头的事情,夏娃可以慢慢找,老同学可不能瞎忽悠。随后仔细想这件事,似乎还真没这么简单。 string::c... 阅读全文
posted @ 2013-05-18 09:32 漓江里的大虾 阅读(2017) 评论(11) 推荐(0) 编辑
摘要: 若干个游戏辅助的分析手记(三)----飞五棋牌平台幸运骰子自动投注目标进程进程名(幸运骰子):Sicbo.exe OK,开工。 进入游戏后,用OD附加,随后设断点:bp send,然后下注。没有断下,依次断WSASend等函数都断不下来。此路不通,祭出CE。 CE搜索投注额,最后定为到下面代码:0040303A - 89 18 - mov [eax],ebx // 修改了自己在东风的押注数额 先走马观花逛一圈,一路回溯会先经过GamePubl.dll模块,最后会回溯到ProcMsg模块。在ProcMsg模块中是一个大的消息循环。这几个模块的相关CALL浪费了分析了整整一个通宵的时间,... 阅读全文
posted @ 2013-05-18 04:57 漓江里的大虾 阅读(1218) 评论(3) 推荐(3) 编辑
  2013年5月16日
摘要: 若干个游戏辅助的分析手记(二)----飞五棋牌平台五张牌找基址 游戏进程名为ShowHand.exe。 该进程每次进入不同的桌进行游戏都会启动新的进程,离开桌子则结束进程. 玩家肯定是一个对象. 该对象里面肯定包含当前手里的牌.然而不知道该游戏各种牌在内存中的表现形式,所以用CE搜索相关的牌就显得无从下手.所以关键是要找到突破口. 大胆推测,玩家对象有一个变量记录了当前自己桌上的牌的数量.以此作为突破口. 用CE搜索当前手里牌的数量,(查找方法略),得到两个地址,经过观察这两个地址记录的数量一个是对家的牌的数量,一个是自己的数量. 通过实验,发现瞄一眼牌则桌上的牌的数量会减1,以此就可以确.. 阅读全文
posted @ 2013-05-16 21:14 漓江里的大虾 阅读(546) 评论(1) 推荐(0) 编辑
  2013年5月14日
摘要: 一年一度的重装系统“大工程”又浩浩荡荡的开工了。 整理去年一年的工具及资料,今天起陆续放一点以前给客户做的游戏辅助的手记。(一年多了,客户应该不会介意吧) 废话不多说,今天是第一篇。 《龙翔密传》分析手记 选怪 突破口: CE搜索变化值,不停选怪取消怪,定位到如下代码:00413b5e - 89 be b0 00 00 00 - mov [esi+000000b0],edi 稍微回溯一下00435BDC /E9 4B090000 jmp 0043652C00435BE1 |8B0D 08536300 mov ecx, dword ptr [6... 阅读全文
posted @ 2013-05-14 00:29 漓江里的大虾 阅读(2229) 评论(12) 推荐(5) 编辑
  2013年1月22日
摘要: (一)基本数据的表现形式(整数)1.整数的表现形式 1.1 原码,反码及补码 关于原码,反码,补码的概念,任何有计算机基础的人都不会陌生了,所以这里不提了。 我们都知道数据在内存中都是01二进制的形式表示,整数分无符号整数,跟有符号整数,即正整数跟负整数。最高位代表符号位,当内存中的数据解释为无符号数时,最高位也参与计算。而当解释为有符号数时,最高位不参与计算,仅仅代表符号,0代表是正整数,1代表是负整数。整数都是以补码形式存在在内存中的,对于正整数的补码等于其原码,这个不过多解释了,下面着重说说负整数在内存中的表现形式。 1.2 补码的概念 至于为什么整数在内存中都要以补码形式表示... 阅读全文
posted @ 2013-01-22 20:16 漓江里的大虾 阅读(621) 评论(3) 推荐(1) 编辑
摘要: 这个随笔分类的题目是《C++逆向学习笔记》,是本人在学习《C++反汇编与逆向分析技术揭秘》(钱林松 赵海旭 著)一书的过程中的一些笔记。 本人一直都对破解啊,游戏辅助啊这些比较感兴趣,所以经常阅读这方面的资料。但是网上收集的资料知识点大都很分散,所以本人一直很想系统的学习逆向知识;而C++博大精深,06年开始学习C++至今,每每回首《C++ Primer》每次都有新的感悟。因此对C++的程序进行逆向就显得更加无从下手。庆幸的是,我在去年这个时候在网上发现了《C++反汇编与逆向分析技术揭秘》这本好书。这本书内容非常详实,讲得也很系统,正是我需要的。于是果断的买下了实体书。 虽说这本书买了一... 阅读全文
posted @ 2013-01-22 17:30 漓江里的大虾 阅读(236) 评论(0) 推荐(0) 编辑
  2012年5月28日
摘要: 写在前面:本文算是本次知识学习的一个总结,同时也为了跟我一样需要在MFC中调用.net控件的朋友们少走弯路,因为我在实现的时候,花了很多时间去搜集资料,然后又花了很多时间去摸索.所以,希望这篇文章能帮助朋友们少走一点点弯路. 最近有一个基于MFC多文档的项目,在其中一个文档模板的视图中,需要根据相应算法生成的数据实时显示一个报表. 在网上搜索了很多资料,也找了很多现成控件,效果都很不满意.后来,在百度中搜索到微软的ReportViewer,只看了一眼,直觉就告诉我,我要找的东西非它莫属了!一阵觅得良驹的狂喜之后,开始搜索ReportViewer的相关资料.所有资料整理汇总后,冷水随之泼... 阅读全文
posted @ 2012-05-28 14:13 漓江里的大虾 阅读(1558) 评论(0) 推荐(0) 编辑