思路 
我们打开游戏的时候,经常发现游戏已经为我们输入好了账号密码,这个数据是存在哪的呢?我们可以通过断网再打开的方式来试验,如果断网后打开依旧帮我们输入好了,那么证明这是存储在本地的数据,我们可以通过寻找到存储数据的配置文件来进行文本的替换实现优雅的换号,不用考虑各种分辨率问题,速度也快。

方法

先确定游戏是否能够使用此方式来进行,可以的话找到配置文件的位置,一般是XML文件(文件路径在data/data/相关应用包名,不同设备路径可能不一样,仔细寻找),比如:

 

这说明这是个使用cocos2dx引擎制作的游戏的配置文件,我们点开可以得到这样的数据:

 

 

我们可以先打开一次游戏看看默认输入的账号信息是什么,尝试能否找到内容,这里,我成功的在Identity_Name这一个name标签里得到默认输入的账号:

 

 

寻找到了之后,我们是不是可以在启动游戏之前,就将默认的输入信息改变成我们自己要输入的信息已达到我们想要的目的?

好的,当我们找到之后要怎么修改呢,这么多的内容,别急,我们可以使用插件来帮我们几步就完成,导入Str.lua插件,配合正则运算,就可以实现想要替换的内容了。

Str.lua插件主要是对字符串进行处理,功能强大,需要移动到手机的/mnt/sdcard/MobileAnJian/plugin目录下:

使用前,使用import “Str.lua”引用文件,命令格式为插件名+命令,比如替换字符串使用Str.replace命令,使用文本文档打开可以查找到用法。

代码

  1. import “Str.lua”
  2. Dim 返回值
  3. 返回值=File.Read(“/data/data/包名/shared_prefs/Cocos2dxPrefsFile.xml”) //包名为你寻找的应用的包名
  4. Dim arr()
  5. arr=File.ReadLines(“/data/data/包名/shared_prefs/Cocos2dxPrefsFile.xml”) //包名为你寻找的应用的包名
  6. For Each n In arr
  7. Dim b =Str.find(n,”Identity_Name”) //寻找含有Identity_Name这个字符串的元素
  8. If b <> null Then //不为null值则说明找到
  9. Dim c=Str.Replace(n,”(Identity_Name””>).*<“, “%1Stan<“) //使用正则运算替换字符串
  10. TracePrint c //输出替换后的内容
  11. End If
  12. Next

复制代码

 

我们成功的将寻找到的数据改成了字符串“Stan”

代码下载

声明:
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。