怎么修改服务器里的数据库?
打开 SQL Server Management Studio,选择附加数据库就行。
不同版本的 sql server 操作方法不太一样,早期版本叫 Sql Server 企业管理器。
我懂LZ的意思,LZ的意思是自己做了一个网站,放在FTP空间上,网站的后台登陆账号和密码忘了是吗?FTP空间的账号和密码与网站后台的账号和密码无关,所以通过FTP后台修改网站管理员账号和密码是不可行的。如果你以前没有更改过账号和密码,试着账号和密码都输入admin试试。如果还不行的话,就把数据库下载下来,把数据表打开看一看有没有用户名和密码,当然一般的用户数据库都是加过密的,搞破解也很麻烦。实在不行,你就把以前没有更改过的数据库覆盖到FTP空间,然后用以前的用户名和密码(默认admin)登陆。
1) 因为“Set Rs = DbExecute(Sql)” 返回的记录集始终是只读的、仅向前的游标,所以不能用这种方法获得记录集去更新数据库(记录集是只读的,不可更新)。如果需要用记录集更新数据库,应该使用OPEN方法打开记录集(请使用可更新的记录集)。
至于EXECUTE方法运行insert into values 语句可以成功的原因是EXECUTE方法不依赖可更新的记录集对象而是直接将新记录插入到数据库里所致;
2) 运行insert into values 将二进制流数据保存到MDB数据库可能够呛,暂时未找到相应的解决方案(MSSQL等大型数据库可以)。
下面介绍一个使用ADO Stream对象的方法供参考,利用可更新的记录集将二进制流插入MDB数据表。这种方法我用过、没问题的。
'Test(id(文本,主键),pic(ole对象)) 数据表结构
' 引用 Microsoft ActiveX Data Objects 25 Library 及以上版本
'25版本以下不支持Stream对象
Private Sub Command0_Click()
Dim cn As New ADODBConnection
Dim rs As New ADODBRecordset
Dim strSql As String
Dim cnStr As String
Dim img As New ADODBStream
cnStr ="Provider=MicrosoftJetOLEDB40;Data Source='\\1921681100\Shared\datamdb';" '请更改为实际连接字符串
rsCursorLocation=adUseClient
cnOpen cnStr '打开连接
With img
Type = adTypeBinary '二进制模式
Open
LoadFromFile "D:\My Documents\9_064836_1jpg" ‘这里也可以引用图像控件的picture属性
End With
strSql = "select from test"
rsOpen strSql, cn, adOpenKeyset, adLockOptimistic '打开数据表
rsAddNew
rs!id = "001"
rs!pic = imgRead '存入二进制流数据
rsUpdate
rsClose
Set rs = Nothing
cnClose
Set cn = Nothing
End Sub
对于单机游戏来说,所有数据都是在内存和硬盘上的,所以单机游戏实际上是有内存修改器和存档修改器两种。只不过修改的位置不同,技术上来说都是大同小异,就是直接修改游戏数据。制作技术不外乎两种,一种是直接分析游戏主程序对应的反汇编代码,找出关键位置。另一种则比较简单,是通过游戏中数据的变化,来找到对应位置。比如金山游侠中的内存搜索,就是通过搜索内存中某个数值的变化来确定内存地址从而修改数值的。(实际上只要把游戏数据存储成浮点类型,一票类似原理的修改器都跪了。。。)。存档修改器也是类似,首先存个档,然后消耗个数值,然后再存一个档,比较两个存档的差异来确定要修改的位置。知道了要修改的内存或存档地址之后,剩下的就是写个程序修改对应内存或者存档的位置就行了。基本上单机游戏修改器就是这么个流程。
网游的数据都是存储在服务器上,所以所谓外挂的原理其实也没比单机复杂多少。比如有个网游的基本架构如下:
实际上一般还有个账户服务器,用户账户数据一般是跟游戏数据分离开的,一个用户账户是可以登录若干个游戏服务器的。但是这个跟本话题无关暂时省略掉。
比如你在游戏中做了某样操作,比如打个怪,或者开个宝箱,这时候,游戏客户端的任务就是把你这些操作,转换成预先定义好的数据格式发送给游戏服务器,然后游戏服务器收到数据之后,了解了你的意图,然后在游戏服务器上做了一番比较和判断之后,然后把结果发送给游戏客户端,你掉了XX血获得YY经验,打开宝箱得到ZZZ物品。客户端收到服务器的指令之后,在你的画面上把服务器的结果显示出来,仅此而已。
这时候就能看出来了,你仅仅修改游戏客户端的数值是没用的,因为数值并没有同步到游戏服务器上,下次服务器给你发送数据的时候就会改回来。
那么游戏外挂是怎么做的呢?关键就在于外挂会模拟客户端发送数据参考下图。
比如在客户端我正常打怪,手动点击一秒钟打怪一次,但是外挂则会毫无节操地一秒钟发送给服务器几十哪怕上百次打怪的数据。于是有些服务器就会被骗过,从而客户以更高的效率获得经验和奖励。但是这种方法对外挂编写者技术要求比较高,首先你得能分析的出来原来客户端和服务器段通信的数据封包的格式,然后写出模拟客户端的外挂程序。其次最重要的是你得能骗得过服务器。像一秒钟打怪几十次的数据,服务器还是很容易判断出你是在作弊的。而且对于这种严重破坏游戏公平性的外挂来说,被发现的代价还是很大的。游戏公司也是严厉禁止的。
骗不过服务器怎么办呢?于是有些外挂走上了另一条路,这条路上外挂不是模拟游戏客户端了,而是模拟游戏的主体——人。也就是外挂部分或者全部代替人在游戏中的作用。就像下面的图示。
还用打怪来举例子就是外挂给游戏客户端发送模拟指令,模拟用户的打怪操作。然后用某种预先定义好的算法,更有效率的打怪,然后在HP低到一定程度的时候,自动回血。基本上只是一个自动代练的程序实现。这种外挂有些并没有很大的破坏游戏的公平性,游戏官方也是睁一只眼闭一只眼的。
后来好多游戏公司举得,既然这种外挂并没有怎么破坏游戏的公平性,那为啥不自己做呢,能多赚点钱谁不乐意呢?于是有些游戏就又提供了游戏的挂机打怪功能,根据功能不同,免费或收费也不尽相同。于是这种官方提供的东西又被叫做内挂。。。
0条评论