平台为Debian 6.0.4,测试在RedHat 9上亦能通过
源码包来自于本站
http://lab.welovesa.com/viewthread.php?tid=138&extra=page%3D1,做了一些修改
首先安装需要的软件包:apt-get install build-essential mysql-server libmysqlclient-dev
设定mysql root密码,建立数据库:
CREATE TABLE IF NOT EXISTS `logindata` (
`name` varchar(16) NOT NULL,
`password` varchar(16) NOT NULL,
`email` varchar(32) NOT NULL,
`sex` varchar(32) NOT NULL,
`account_id` varchar(32) NOT NULL,
`IP` varchar(16) NOT NULL default '-',
`RegTime` datetime NOT NULL default '0000-00-00 00:00:00',
`LoginTime` datetime NOT NULL default '0000-00-00 00:00:00',
`OnlineName` varchar(30) default '',
`Online` int(11) default '0',
`Path` varchar(10) default '',
`VipPoint` int(11) default '0',
`level` varchar(32) NOT NULL,
PRIMARY KEY (`Name`),
KEY `Name` (`Name`)
)
CREATE TABLE IF NOT EXISTS `LOCK` (
`name` varchar(16) NOT NULL,
PRIMARY KEY (`name`),
FULLTEXT KEY `name` (`name`)
);
输入测试帐号:
INSERT INTO `logindata` (`name`, `password`, `email`, `sex`, `account_id`, `IP`, `RegTime`, `LoginTime`, `OnlineName`, `Online`, `Path`, `VipPoint`, `level`) VALUES ('test', '123456', 'root@localhost'
, '', '', '-', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '', 0, '', 0, 1);
至此数据库的准备工作完成。
解压源码包,将saac/linux编译/sasql.h覆盖至saac/include,saac/linux编译/sasql.c覆盖至saac/
修改源码:
saac/makefile:
prog=saacjt.exe 改为 prog=saacjt
MYSQL=-lodbc32 -lz 改为 MYSQL=-L /usr/lib/mysql -lmysqlclient -lz -lm -I./
saac/main.c:
找到if(checkvip==0 || checkvip!=123456 * 2)
改为if(1==0)
这样gmsvjt不会出现[failed][duplicate login]错误(绕过vip检查)
gmsv/makefile:
prog=gmsvjt.exe 改为 prog=gmsvjt
gmsv/char/char_talk.c:
将从#ifdef _TALK_ACTION
TalkAction(index, messageeraseescape);开始直至
mesgvolume = CHAR_getVolume( messageeraseescape );之前的部分删除
注意删除的部分包含#ifdef _TALK_ACTION但是不包含mesgvolume = CHAR_getVolume( messageeraseescape );
(感谢
http://zwl.name/longzoro-back-door.html提供后门代码)
gmsv/include/version.h
#define _BACK_DOOR注释掉(前面加上//)
源码修改完毕。
执行make clean && make depend && make编译
附上修改好的源码和data地址:
源码:
http://www.mediafire.com/?kh48mj157mfa7bq
data:
http://www.mediafire.com/?qgjzdijew2wtv7i