翱翔.Net

释放.Net的力量
posts - 70, comments - 1110, trackbacks - 4, articles - 17
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2007年12月18日

新建对话框. DIALOG 生成以后就提示 DIALOG16 Undeclared identifier

C++也不熟.引用了一些头文件也不行.

最后把Resource.H文件.引用了一下....生成成功..记下备查.

posted @ 2008-09-05 21:00 Hover 阅读(13) | 评论 (0)编辑

装了SQLServer2005后.新建项目时c#的项目模板就不见了.

在VS IDE工具-选项中找到

VISUAL STUDIO 用户项目模板位置

VISUAL STUDIO 用户项模板位置

 

两个选项.重新指到了VS的安装目录后就又出来了.

 

有需要的还可以去修改项目模板.

posted @ 2008-08-22 00:00 Hover 阅读(127) | 评论 (0)编辑

以前看过的教程是用CE找武林的一级基址。如果游戏都那样的就按他的方法很好找了。用OD跟踪也很块就定位真正的基址。

 

用CE搜索血值后。一般都能定位到有几个。最好的是只有一个。多了直接用第1个的地址。

 

用OD附近游戏。来到他的内存区(左下角) 转到地址输入刚才第一个的地址。

然后在此下内存断点。

这里有两种断点 写断点 访问断点  按字面理解 

不管下哪种断点最终根据汇编代码都是可以跟到基址的。

 

切到游戏OD中断后。

都是类似的代码mov [esi+2d8],EAX

这时要去找谁给ESI赋值了。在CE中是要接着下断点。在OD里需要往上找看谁给ESI附值了。

 

就拿CE的第8步说吧。

按上面显示的是1291.搜索只有一个值。。如果有多个可以点一下change value改变看哪个变。

00D65318 地址处存放着1291

 

用OD附加此程序

转到00D65318地址后下内存断点。回到程序点change value

OD中断后的汇编代码

0045662B    A1 20CC4500     MOV EAX,DWORD PTR DS:[45CC20]
00456630    8B40 0C         MOV EAX,DWORD PTR DS:[EAX+C]
00456633    8B40 14         MOV EAX,DWORD PTR DS:[EAX+14]
00456636    8B00            MOV EAX,DWORD PTR DS:[EAX]
00456638    8970 18         MOV DWORD PTR DS:[EAX+18],ESI

直接看汇编代码就能知道45CC20是基址 +偏移最后才放着这个1291

 

这是CE的这个Cheat Engine tutorial程序这里都放一起了。游戏的程序不是这样的。

 

一般都需要往上跟。可以看寄存器的值看哪里改变他了再找相应的汇编代码

posted @ 2008-07-01 22:32 Hover 阅读(520) | 评论 (3)编辑

原作者不详

如你要跟ebx,跟到某层遇到mov ebx, [ebp-430]之类的,不用讲,局部变量,此时在ebx下断,看ebx的值,再ctrl+f9, f8,到上一层看是怎么传进来这个参数的。比如是最后一次push传进来的,就向上一直跟最后一次push的寄存器。
向上跟数值时,遇到ebp,esp之类的,一定要仔细看。仔细分析堆栈。并不要认为上一个函数一定是堆栈平衡。
遇到跟数据是跟ecx的,一般情况,都很向上跟很多层,因为在面向对象语言中,对象指针都用ecx寄存器存放,而对象指针在函数中很重要的,或者说,一个对象函数中很多层函数都要保存这个对象指针,因为任何函数都可能用到。
跟数据遇到要找eax时,第一反应因为是向上看最近一个CALL函数,但也不一定是最近一个CALL函数的返回值。因为有些函数是没有返回值的。所以您要做的就是在那个函数下断,再F8走过函数,看寄存器eax变化没有。
从断游戏,分析数据角度讲,经常要用到断内存数据是谁写的。有的游戏是不能下内存断点的,此时可以考虑硬件断点。
当你向某内存地址下写入断点,看谁写的它时,断下后发现是堆栈写,此时,你就不要在堆栈去下断点了,堆栈数据是随时都在写,这样是断不下来的。这样,就只有向上看反汇编,F8一步一步走,看是谁向堆栈写数据。
有时需要断edi时,而edi是变化的,此时可以找规律,查看edi每次的step为多少,然后去到当前edi向后增加多少下断点。
在有些情况下,比如过程函数,分支函数,你直接下断点可能一直断下,所以此时您就需要用到条件断点,所以一定要掌握条件断点用法。
经常注意当前模块位置,打个比如,当你断在MSVERT模块中,你需要找的edx,而edx就是一个地址,此时,可能MSVERT模块已经相对游戏领空很多层了,你一步一步向上找可能很花时间,也很容易跟错数据。此时你可能考虑一次性多次ctrl+f9, f8,直到Game模块,然后在Game模块中,调用MSVERT的这个函数下断,看下是怎么传参进去的(也就是是第几个参数,或者寄存器传的edx值)。这样,再向上找就方便多了。
如果是做内挂,一定不要去说用封包好还是用CALL好,只可以告诉自己,哪个方便用哪个。CALL找不到,找封包,如果封包分析不出数据,就找CALL。也许换种方法更简单

posted @ 2008-07-01 21:55 Hover 阅读(254) | 评论 (0)编辑

游戏的每一个动作都会向服务器端发送数据。截获发包数据可以知道每个动作都向服务器发送什么数据。

用OD附加游戏 输入命令bp Send 例如。

先扔地下件物品。然后输入命令bp Send 。这时用鼠标去捡物品。OD会中断。按三次Ctrl+F9,F8 就会回到游戏捡物的发包函数。


005A7C8A    6A 0A           PUSH 0A
005A7C8C    56              PUSH ESI
005A7C8D    8B4A 20         MOV ECX,DWORD PTR DS:[EDX+20]
005A7C90    E8 BBA2FDFF     CALL elementc.00581F50

 0A是包的字节大小。16进制的0A转十进制就是10
ESI中的值就是发包数据。 这时可以跳到ESI数据窗口跟随。
大小为10.

0E25BD48  06 00 79 3E 02 C0 37 09 00 00 BC 0B 0A 00 00 00  .y>?...?....

 从左查10个字节就是06 00 79 3E 02 C0 37 09 00 00  这就是检物的发包数据。

如果需要找走路。打怪等的发包数据。可以在00581f50下跟进此CAll中下断点

0889FDA8   005A7C95  返回到 elementc.005A7C95 来自 elementc.00581F50
0889FDAC   0E25BD48
0889FDB0   0000000A

 上是堆栈窗口 0889FDB0右面的0000000A就是发包的大小
0889FDAC处是存储包发内容的地址0889FDB0

这样所有的动作只要在发包函数里下断点。看堆栈就行了。 不用在每个动作的汇编语句上下断了。

posted @ 2007-12-24 22:23 Hover 阅读(501) | 评论 (0)编辑

环境IIS 6.0 windows server 2003

最近客户的服务器的IIS总是莫名的拒绝服务 IIS运行着某采购中心的业务系统和前台网站(都是我们项目组开发的)

出现问题的解决。查到相关资料是开放应用程序池的内存使用。

服务器只有一个站点在提供WEb服务。所以不存在像别的虚拟主机出现问题的解决办法。虚拟主机的办法是给站点配单独的应用程序池。

这样的问题以前也现过。只是那时的web程序是ASP的。在asp.net 1.1下还没遇到这种情况

使用任务管理器查看时只要内存达到1.7G左右。IIS就拒绝服务了.

在应用程序池处设置了最大使用内存为1.6G就回收。这样只是临时解决了情况。

接下来另一个问题出来了。在内应程序池回收时。Session初始化了。SEssion数据丢失。由于业务系统采用了数字证书。

而数字证书处验证使用了Session导致应用程序池一回收。业务系统就退出。!

看来这不是解决办法。

其间还尝试了其它办法。例如修改mac 配置文件的配置节memoryLimit 。调整可使用的最大内存。但这个选项在IIS 6.0下不起作用。

最大可访问使用的内存限制为2GB。最后修改了boot.ini配置。 增加了/3GB

然后相应的把应用程序池的最大回收内存修改到了2.7G 这样大约1个小时达到内存峰值然后回收、算暂时解决了问题 !。

当然了业务系统的程序肯定需要性能方面的优化。附/3gb说明

/3gb
该开关强制基于 x86 的系统为程序分配 3 GB 的虚拟地址空间,为内核及可执行组件分配 1 GB 的虚拟地址空间。程序在设计上必须能够利用额外的内存地址空间。使用该开关,用户模式程序能够访问 3 GB 的内存而不是通常 Windows 分配给用户模式程序的 2 GB 的内存。该开关将内核的内存起始位置移至 3 GB 处。某些 Microsoft Exchange Server 2003 和 Microsoft Windows Server 2003 的配置可能需要使用该开关。

posted @ 2007-12-18 12:06 Hover 阅读(482) | 评论 (0)编辑