bind文件反编译
Ⅰ 游戏脚本是什么意思
脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。
Ⅱ SF问题进来看下很急的帮下
下载一个SF的安装程序
里面的说明很详细 (看不懂就怪你自己没文化了)
具体过程:
一、准备软件DBCommander 2000 Pro和传奇服务端
二、安装设置DBCommander 2000 Pro
1)安装DBCommander 2000 Pro
2) 打开控制面板
3) 打开BDE Administrator. 点击 ‘Object‘, ‘New‘.
4) 选择STANDARD点击OK.
5)在左面的面版你可以看到standard1,改名为HeroDB
在右边的面版如下
Type STANDARD
DEFAULT DRIVER PARADOX
ENABLE BCD FALSE
PATH
修改为
Type STANDARD
DEFAULT DRIVER PARADOX
ENABLE BCD FALSE
PATH D:mirservermud2DB (更改这里的默认D,你安装在哪个盘里就是哪个盘)
6)在左边的面版右键点击HeroDB选择‘apply‘.
7)关闭 BDE Administrator.
然后解压缩服务端文件到D盘(方便后续设置) 下载地址 下载
2、修改服务端文件的ip地址:
总共改的IP有21处
D:mirservergate_serverLoginGateMirgate.ini
里的IP192.168.0.1改为你的IP
D:mirservergate_serverRunGateMirgate.ini
里的IP192.168.0.1改为你的IP
D:mirservergate_serverSelChrGateMirgate.ini
里的IP192.168.0.1改为你的IP
D:mirserverMir200!Runaddr.txt
里的IP192.168.0.1改为你的IP
D:mirserverMir200!Servertable.txt
里的IP192.168.0.1改为你的IP
D:mirserverMir200!Setup.txt
里的IP192.168.0.1改为你的IP 总共有4个192.168.0.1
D:mirservermud2DBSrv200!addrtable.txt
里的IP192.168.0.1改为你的IP 总共有2个192.168.0.1
D:mirservermud2DBSrv200!serverinfo.txt
里的IP192.168.0.1改为你的IP 总共有2个192.168.0.1
D:mirservermud2DBSrv200Dbsrc.ini
里的IP192.168.0.1改为你的IP
D:mirservermud2LogSrv!addrtable.txt
里的IP192.168.0.1改为你的IP 总共有3个192.168.0.1
D:mirservermud2LogSrv!serveraddr.txt
里的IP192.168.0.1改为你的IP 总共有3个192.168.0.1
D:mirservermud2LogSrvLogsrv.ini
里的IP192.168.0.1改为你的IP
3、如何修改服务器名:
修改三个文件
第一处
D:mirserverMir200!Setup.txt里的
[Server]
ServerIndex=0
ServerName=原版本的名字
修改为
[Server]
ServerIndex=0
ServerName=你的服务器名
第二处
D:mirservermud2DBSrv200Dbsrc.ini里的
[Setup]
ServerName=原版本的名字
修改为
[Setup]
ServerName=你的服务器名
第三处
D:mirservermud2LogSrv!addrtable.txt里的
原版本的名字 Line1-7 192.168.0.1 192.168.0.1 192.168.0.1:7100
修改为:
你的服务器名 Line1-7 192.168.0.1 192.168.0.1 192.168.0.1:7100
4、修改路径,我的程序默认是D盘!!
要想放到C盘,D盘,请修改四处。
第一处
D:.ini里
[setup]
basedir=D:(改D盘)
第二处
D:mirserverMir200!Setup.txt里
[Share]
BaseDir=D:MirServerMir200ShareGuildDir=D:=D:.txt
VentureDir=D:=D:=D:=D:MirServerMir200EnvirMapDir=D:MirServerMir200Map(修改这8个文件的D盘)
第三处
D:mirservermud2DBSrv200Dbsrc.ini里[Setup]
ServerName=原版本的名字
Port=6000
MapFile=D:mirserverMir200EnvirMapInfo.txt
ViewHackMsg=1
[Server]
IDSAddr=192.168.0.1
IDSPort=5600
[DB]
dir=D:mirservermud2DBsrv200FDBIdDir=D:=D:=D:=D:=D:=D:mirservermud2DBsrv200Log(修改这八处的D盘)
第四处。
修改D:mirservermud2LogSrvLogsrv.ini里的
CountLogDir=D:=D:=D:mirserverShareFeedFeedIDList.txt
FeedIPList=D:mirserverShareFeedFeedIPList.txt(4处D盘)
5、启动服务器
1) 进入D:mirservergameloglogdatasrv 运行LogDataServer.exe
2) 进入D:mirservergate_serverLoginGate 运行Logingate.exe
3) 进入D:mirservergate_serverRunGate 运行RunGate.exe
4) 进入D:mirservergate_serverSelChrGate 运行Gate30.exe
5) 进入D:mirservermud2DBSrv200 运行DBServer.exe
6) 进入D:mirservermud2Logsrv 运行LoginSrv.exe
7) 进入D:mirserverMir200 运行M2Server.exe
以上操作成功架设了传奇私服
三、附录:高级架设技术
0.修改RunGate,减少卡机现象
如果说M2Server.exe是主板,那么RunGate.exe就是中央处理器cpu!
RunGate.exe默认等待数据传输时间为10秒钟,当等待多个ID的数据而无响应时,7200端口
在10秒内就会报错,RunGate会暂时停止工作,造成部分或全部玩家短时间内掉线,没有掉线
的玩家就会狂卡一阵!
另外,卡,主要是网络问题,其次才是服务器的问题!有时候,才上了几十个人就感到卡,而有时
侯上了几百人都不卡,还有一种情况是莫个地区的玩家感到卡,而其它地区非常流畅,就是这
个道理!
所以减少默认等待数据传输时间,就能减少卡机现象!(本来我想说:杜绝)
这样,就能及时切断或结束那些网络不畅的数据传输,减少7200端口报错现象,减少服务器卡
的机率!至于网络卡的问题,我们无能为力!,还是留给那些病毒专家去解决吧!
用UltraEdit打开RunGate.exe
1) 查找00050a50h这一行中的:
(默认10秒钟)
[大众私服]改为5秒钟:
2) 查找00050b70h这一行中的:
E83E49FBFF68102700(默认10秒钟)
[大众私服]改为5秒钟:
E83E49FBFF68881300
另一贴,对您或许也有些用,一起发吧!
修改M2Serve存挡时间,减少重启回档现象!
M2Serve默认10分钟保存一次信息,服务器重启或意外关机,总会有几分钟时间的信息无法保存,这就是回档!减少默认存档间隔,就能减少发生重启回挡现象!另外,还有一个问题,在还没有保存信息之前,RunGate所运行和转换的所有玩家信息暂时会存储在哪呢?应该在内存中,而内存中的信息又是用CUP读取并保存到mir.db里!因此,我认为,减少M2Serve默认存档间隔,有利于运行RunGate,能减少卡机现象,节约内存,降低cup占用率!
修改方法如下:
用UltraEdit打开M2Serve
查找000b1570h这一行中的:
其中的C02709为默认的10分钟
改为每5分钟保存一次,用下面的替换:
改为每3分钟保存一次,用下面的替换:
改为每1分钟保存一次,用下面的替换:
我的是5分钟保存一次!
1.修改游戏初始设置
进入C:mirseverMir200
打开 !setup.txt
找到:
TestLevel=35 (大家可以改成50级 我设的35级)
TestGold=200000 (20W传奇币 不少了吧)
TestServerUserLimit=10 (用户连接数,我的机子慢,设小点.)
2.修改GM权限
进入 C:mirserverMir200Envir
打开adminlist.txt把你的名字写入adminlist这个文件里面 就有GM权限拉
3.修改魔法,怪物,物品属性
进入 C:mirservermud2DB
打开Magic.DB 修改游戏魔法属性======== 可以改升级的技能点
打开Monster.DB 修改游戏怪物属性 -------- 可以改怪物经验
打开StdItems.DB 修改游戏物品属性 ------------ 可以增加新物品.新武器.天尊,法神,圣战
4.修改商店卖的东西NPC
C:mirserverMir200Envirmarket_def
5.修改怪物爆东西几率
C:mirserverMir200EnvirMonItems
6.修改地图路径.
C:mirserverMir200EnvirMapInfo.txt 可以改 下猪七的路. 去祖玛的路
7.开不了门的原因,可能有两个
1.是客户端的ftp.ini里面的“server1name=ktest”改动了,请把这段还原。2是服务器端的ip没有设定好,要修改的5个文件中的ip全部是127.0.0.1
8.注册不了id:
这个原因很复杂,可能是服务器端的ip没设定好,或者是DBC的问题,首先请注册一下,如果还不行,你可以将HeroDB这个字段删除,再重新建。如果还不行,把服务器端的软件全部删除,重新安装,我就是这么解决了
进入后黑屏:这个原因比较直接,mir.dat文件,请用下载来的client.zip里的mir.dat文件
找不到控制面板里面的BDEadministrator:我没碰到过,原因是你安装了office,office里面有个大概是DB数据源,这2个是冲突的,请卸载office,如果不行,只能重新安装操作系统。
常见问题:
1. 朋友的机不能输入中文, 切换不了输入法. 用粘贴的方法, 在输入栏会变成韩文. 但是我的机就完全正常. 估计是windows语言代码的问题, 因为朋友把我整个传奇客户端拷过去还是这样.
2. 服务器太差(-_- 才p3 733, 有关问题下面会提到的.
好, 来吧, 解决问题开始!
1). 运行各种.exe文件提示找不到xxx文件: 打开服务器端所有你能用记事本打开的文件, 里面的d:korea全部换成你自己解压到的目录.
2). 运行之后connection closed, 门不开, 建立不了人物, 或建立之后不能登陆, 或者登陆之后进去黑屏: 打开服务器端所有你能用记事本打开的文件, 里面的xxx.xxx.xxx.xxx全部换成你自己的ip (用127.0.0.1可以供你自己玩, 用局域网地址就可以在局域网里玩, 用公网网址嘛.............). 当然, 客户端那里的"mir.ini"和"mirsetup.ini"也得设成同样的ip.
3. 建立id或角色提示非法字符: 所有注册资料必须是英文, 你想尝试韩文我不阻止你.
4. 进去之后按了提示窗口之后黑屏: 重新安装客户端, 你们肯定装太多外挂了, 哈哈
5. 进去之后闪一下画面然后退出程序: 是不是把mir200里的mir.dat换过了? 换回来就行了.
6. 不刷怪: Mir200Envir里的mongen.txt打开看看是不是空的? 用mongenxxxxx.txt代替, 别再用空的那个代替哦
7. 换了文件还是不刷怪, 或者怪刷出来不会动: 555555, 这就是你机器太差的问题了,
关于不能进入gm模式, Mir200EnvirAdminList.txt里面填的是游戏角色名称, 不是登陆ID
我只整理了最常见的问题,如有不足请朋友们添加。
——————————————————————
仿盛大传奇大部分版本文件说明
Mirserver
│
├Mud2
│ │
│ │
│ ├DB
│ │├Magic.DB (技能数据库文件)
│ │├Monster.DB (怪物数据库文件)
│ │├StdItems.DB (物品数据库文件)
│ │└DB复件(数据库备份文件)
│ │
│ ├DBServer (人物数据库目录)
│ │ ├Backup
│ │ ├Connection
│ │ ├FDB
│ │ │ ├Hum.DB (人物角色文件)
│ │ │ ├Mir.DB (人物数据文件)
│ │ │ └Mir.DB.idx (人物数据索引文件)
│ │ └Log
│ └LoginSrv (登录服务器目录)
│ ├CountLog
│ ├GameWFolder
│ ├IDDB
│ │ ├ID.DB (登录服务器帐号数据文件)
│ │ └ID.DB.idx (登录服务器帐号数据文件索引)
│ ├!addrtable.txt (登录路由表)
│ ├!serveraddr.txt (允许连接IP列表)
│ ├LoginSrv.exe (登录服务器主程序)
│ └Logsrv.ini (登录服务器配置文件)
│
│
├LogServer (游戏日志服务器目录)
│ ├BaseDir (游戏日志保存目录)
│ ├LogData.ini (游戏日志服务器配置文件)
│ └LogDataServer.exe (游戏日志服务器主程序)
│
│
├Mir200 (游戏引擎主程序目录)
│ ├Castle
│ │ ├AttackSabukWall.txt (攻城记录文件)
│ │ └SabukW.txt (城堡信息保存文件)
│ │
│ ├ConLog(程序运行日志文件保存目录)
│ │
│ ├Envir (游戏配置目录)
│ │ ├Defines
│ │ ├MapQuest_def
│ │ ├Market_Def (交易NPC脚本目录)
│ │ ├Market_prices (交易NPC保存物品价格临时目录)
│ │ ├Market_saved (交易NPC临时文件保存目录)
│ │ ├Market_upg (交易NPC升级武器记录保存目录)
│ │ ├MonGen
│ │ ├MonItems (怪物爆物品配置文件目录)
│ │ ├Npc_def (管理NPC脚本目录)
│ │ ├QuestDiary
│ │ ├Robot_def
│ │ ├AdminList.txt (GM管理员设置文件)
│ │ ├DenyAccountList.txt (禁止登录帐号列表)
│ │ ├DenyChrNameList.txt (禁止登录角色列表)
│ │ ├DenyIPAddrList.txt (禁止登录IP列表)
│ │ ├DisableMakeItem.txt (禁止制造物品列表)
│ │ ├DisableMoveMap.txt (禁止用命令移动地图列表)
│ │ ├DisableSendMsgList.txt (禁止发言列表)
│ │ ├DisableTakeOffList.txt (禁止取下物品列表)
│ │ ├EnableMakeItem.txt (允许制造物品列表)
│ │ ├GameLogItemNameList.txt (游戏日志过滤列表)
│ │ ├GuardList.txt (守卫分布配置文件)
│ │ ├ItemBindAccount.txt (物品绑定帐号列表)
│ │ ├ItemBindChrName.txt (物品绑定角色列表)
│ │ ├ItemBindIPaddr.txt (物品绑定IP列表)
│ │ ├ItemNameList.txt
│ │ ├MakeItem.txt (NPC炼制物品配置文件)
│ │ ├MapInfo.txt (游戏地图配置文件)
│ │ ├Merchant.txt (交易NPC配置文件)
│ │ ├MiniMap.txt (游戏小图配置文件)
│ │ ├MonDropLimitList.txt (怪物爆物品限制列表)
│ │ ├Mongen.txt (刷怪配置文件)
│ │ ├NoClearMonList.txt (清除怪物排除列表)
│ │ ├Npcs.txt (管理NPC配置文件)
│ │ ├StartPoint.txt (新人登录点,安全区配置文件)
│ │ ├UnbindList.txt (捆装物品解包配置文件)
│ │ ├UnForceMaster.txt (强行出师记录文件)
│ │ ├UnMaster.txt (正常出师记录文件)
│ │ └UnMarry.txt (强行离婚记录文件)
│ ├GuildBase (行会数据目录)
│ │ ├Guilds (行会文件保存目录)
│ │ └Guildlist.txt (行会列表文件)
│ │
│ ├Map (游戏地图所在目录)
│ ├Notice (游戏公告文件所在目录)
│ │ ├LineNotice.txt (游戏内公告配置文件)
│ │ └Notice.txt (游戏开始公告文件)
│ ├Share
│ ├ShareL
│ ├ShareV
│ ├!abuse.txt
│ ├!runaddr.txt
│ ├!servertable.txt
│ ├!setup.txt
│ ├Command.ini (游戏命令配置文件)
│ ├M2Server.exe (游戏引擎主程序)
│ ├mir.dat (客户端论证文件)
│ ├MsgList.txt (在线发消息保存文件)
│ ├PlugList.txt (插件配置文件)
│ └String.ini (游戏内提示文字配置文件)
│
│
├Gate_Server
│ │
│ ├RunGate (游戏网关目录)
│ │ ├RunGate.exe (游戏网关主程序)
│ │ └RunGate.ini (游戏网关配置文件)
│ │
│ └SelGate (角色选择网关目录)
│ ├BlockIPList.txt (角色选择网关IP过滤配置文件)
│ ├Config.ini (角色选择网关配置文件)
│ └SelGate.exe (角色选择网关主程序)
└说明文件
├版本升级说明.txt
├版本说明.txt
├问题解答.txt
└服务文件介绍.txt
说到这 你还是不会的话 劝你别做了 ~
Ⅲ android怎么动态调试dex
1.1 安装JDK
JAVA环境的搭建请自行查找资料,这里不做详述。
1.2 安装Android SDK
下载地址:http://developer.android.com/sdk/index.html。
下载完安装包后解压到任意一目录,然后点击运行SDK Manager.exe,然后选择你需要的版本进行安装,如图:
1.3 安装Eclipse集成开发环境
下载地址:http://www.eclipse.org/downloads。选择Eclipse for Mobile Developers,解压到任意目录即可。
1.4 创建Android Virtual Device
动态调试可以用真实的手机来做调试环境,也可以用虚拟机来做调试环境,本文采用虚拟机环境。因此创建虚拟机步骤如下:
1打开Eclipse –>windows->Android Virtual Device
2点击Create,然后选择各个参数如图:
这里Target 就是前面步骤中安装的SDK 选择任意你觉得喜欢的版本就可以。点击OK 就创建完毕。
1.5 安装 APK改之理
这个是一个很好用的辅助调试的软件,请自行搜索下载。
1.6 安装 IDA6.6
IDA6.6开始支持安卓APP指令的调试,现该版本已经提供免费下载安装,请自行搜搜。
0x02 Dalvik指令动态调试
2.1 准备工作
安卓APP应用程序后缀为apk,实际上是一个压缩包,我们把它改后缀为rar打开如图:
其中classes.dex是应用的主要执行程序,包含着所有Dalvik指令。我们用APK改之理打开apk,软件会自动对其进行反编译。反编译后会有很多smail文件,这些文件保存的就是APP的Dalvik指令。
在APK改之理里双击打开AndroidManifest.xml,为了让APP可调试,需要在application 标签里添加一句android:debuggable="true" 如图:
然后点击保存按钮,然后编译生成新的apk文件。接着打开Eclipse –>windows->Android Virtual Device,选择刚才创建的虚拟机,然后点击start,虚拟机便开始运行。偶尔如果Eclipse启动失败,报错,可以同目录下修改配置文件:
把配置参数原本为512的改为256 原本为1024的改为512,然后再尝试启动。
在SDK安装目录有个命令行下的调试工具adb shell,本机所在目录为E:\adt-bundle-windows-x86-20140702\sdk\platform-tools,把adb.exe注册到系统环境变量中,打开dos命令行窗口执行adb shell 就可以进入APP命令行调试环境,或者切换到adb所在目录来执行adb shell。
这里先不进入adb shell,在DOS命令行下执行命令:adb install d:\1.apk 来安装我们刚才重新编译好的APK文件。安装完毕会有成功提示。
2.2 利用IDA动态调试
将APP包里的classes.dex解压到任意一目录,然后拖进IDA。等待IDA加载分析完毕,点击Debugger->Debugger Options如图
按图所示勾选在进程入口挂起,然后点击Set specific options 填入APP包名称和入口activity 如图:
其中包的名称和入口activity 都可以通过APK改之理里的AndroidManifest.xml 文件获取:
1
2
3
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.simpleencryption">
<application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/creakme_bg2" android:label="@string/app_name" android:theme="@style/AppTheme">
<activity android:label="@string/app_name" android:name=".MainActivity">
然后在IDA点击Debugger->Process Options
其他默认不变,端口这里改为8700。这里默认端口是23946,我在这里困扰了很久,就是因为这个端口没有改为8700所致。然后我们看看这个8700端口是怎么来的。在Android SDK里提供了一款工具DDMS,用来监视APP的运行状态和结果。在SDK的TOOLS目录有个DDMS.BAT的脚步,运行后就会启动DDMS。由于我的本机安装了SDK的ADT插件,DDMS集成到了Eclips中,打开Eclips->Open perspective->ddms就启动了DDMS。
如图所示:
在DDMS选中某个进程后面就会注释出它的调试端口,本机这里是8700。
到此所有的工作就准备就绪,然后就可以下断点来调试该APP了。我们在APK改之理中在com目录下查看smali文件 发现MainActivity.smali里有一个感兴趣的函数getPwdFromPic(),那么我们就对它下断以跟踪APP的运行。
在IDA里搜索字符串getPwdFromPic,发现onClick有调用该函数
我们在onClick 函数开始位置按F2下断如图:
然后点击上图中绿色三角形按钮启动调试如图:
调试过程中有一个问题出现了很多次,浪费了我大量的时间,就在写文章的时候,操作时还是遇到了这样的问题。就是点击启动后IDA提示can’t bind socket,琢磨了很久终于找到原因了,当打开过一次DDMS后 每次启动Eclips都会启动DDMS 而8700端口正是被这个DDMS给占用了,然后每次都会启动失败,解决办法就是 虚拟机运行起来后关闭掉Eclips,这时一切就正常了!
事例中是一个APP crackme 提示输入密码才能进入正确界面。这个时候我们输入123,点击登陆,IDA中断在了我们设置断点的地方,这时选中ida->debugger->use source level debugger,然后点击ida->debugger->debugger windows->locals打开本地变量窗口,如图:
然后按F7或F8单步跟踪程序流程,同时可以观察到变量值的变化,也可以在IDA右键选择图形视图,可以看到整个APP执行的流程图:
如上图所示 变量窗口中我们输入了123 被转化成的密码是么广亡,pw变量也显示出了正确的密码,其实这个时候已经很容易判断出正确密码了。
0x03 Andoid原生动态链接库动态调试
通常为了加密保护等措施,有时dex执行过程中会调用动态链接库文件,该文件以so为后缀,存在于APP文件包里。
这里我们以动态附加的方式来调试原生库。
3.1 准备工作
1、将IDA->dbgsrv目录下的android_server拷贝到虚拟机里,并赋予可执行权限
DOS命令分别为:
adb shell pull d:\ android_server /data/data/sv
adb shell chmod 755 /data/data/sv
2、启动调试服务器android_server
命令:adb shell /data/data/sv
服务器默认监听23946端口。
3、重新打开DOS窗口进行端口转发,命令:
adb forward tcp:23946 tcp:23946 如图:
3.2 利用IDA进行动态调试
1、虚拟机里启动要调试的APP 2、启动IDA,打开debugger->attach->remote Armlinux/andoid debugger
端口改为23946 其他保持不变,点击OK
如上图,选中要调试的APP 的数据包名,然后点击OK。
正常情况下,IDA会把APP进程挂起。
3、由于当前程序不是在动态链接库领空,这时我们要重新打开一个IDA,用它打开需要调试的so文件,找到需要下断的位置的文件偏移,并做记录,然后关闭后面打开的这个IDA。
4、在原IDA界面按下ctrl+s键,找到并找到需要调试的so,同时记录该文件的加载基址。然后点击OK 或者cancel按钮关闭对话框。
5、按下快捷键G 输入基址+文件偏移所得地址,点击OK 就跳转到SO文件需要下断的地方,这时按下F2键设置断点。当APP执行到此处时便可以断下来。
3.3 在反调试函数运行前进行动态调试
程序加载so的时候,会执行JNI_OnLoad函数,做一系列的准备工作。通常反调试函数也会放到JNI_OnLoad函数里。进行4.2中第2步时也许会遇到如下情况:
这时APP检测到了调试器,会自动退出,那么这时调试策略需要有所改变。
接着4.1第3步后,在DOS命令行执行命令:
adb shell am start -D -n com.yaotong.crackme/com.yaotong.crackme.MainActivity
来以调试模式启动APP 如图:
com.yaotong.crackme是APP包名称,com.yaotong.crackme.MainActivity是执行入口 这些可以用APK改之理查看。
这时由于APP还未运行,那么反调试函数也起不了作用,按照4.2中第2步把APP挂起。这时IDA会中断在某个位置
然后点击debugger->debugger opions设置如下:
点击OK 后按F9运行APP,然后再DOS命令下执行命令:
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
这时APP会断下来,然后按照4.2中的3、4、5补找到JNI_OnLoad函数的地址并下断,然后按F9 会中断下来。然后便可以继续动态跟踪调试分析。