烂大街

 找回密码
 立即注册
搜索
热搜: cf
查看: 581|回复: 22

[工具下载] CF1.0 服务端去远控工具

[复制链接]

2

主题

21

回帖

7735

积分

论坛元老

Rank: 8Rank: 8

UID
1405
马尼
7303 枚
贡献
133 次
信誉
0 点
在线时间
49 小时
注册时间
2024-4-12
最后登录
2024-5-4
发表于 2024-4-17 16:40:07 | 显示全部楼层 |阅读模式
本帖最后由 qiaoba 于 2024-4-21 21:20 编辑

更新了一下 部分机子上加密结果不对 已经下载过的兄弟可以重新下载下

更新下帖子 有兄弟说加密后进游戏提示修改昵称会卡住进不去 跟踪了下是登录服里还有没去掉的 又加了个登录服去远控的工具

有需要的可以下载 帖子链接
CF1.0 登录服务器去远控工具 - 穿越火线 - 烂大街 - Powered by Discuz! (suime.cn)

分别将数据库账号密码放进明文中加密获得密文 然后密文替换gDBGW.ini中的DBUID和DBPWD下的五个内容即可
DBUID DBPWD是数据库的账号和密码 下面五个字段对应的是五个库 也就是恢复db时那几个 CF_PH_GAME CF_PH_GUILD CF_PH_LOG MIRCORGAMESBILL_DB MY_GAMEMEMBER

注意这个gDBGW.ini 是搭建服务过程中复制到c盘中windows目录下那个配置
这样就可以使用自己创建的数据库账号密码运行gDBGW服务了

下面就是吐槽了 本着怀旧 第一次接触残端 刚注册论坛没多久,看论坛里说泄露版和虚拟机版的服务端有远控病毒,我下载下来也不敢本机跑,后来才知道所谓的远控是数据库账号密码是固定的saycf, 会被被人控制的意思  我才想到为啥我用两种杀毒软件扫描都没报毒,虚拟机上运行杀毒软件也没报毒。其实如果是搭建到外网服务器的话数据库的端口1433也不会开放出去其实没事的 搭建到本地的话就更没关系了 因为外网是访问不了本地1433端口的 。

研究了下 其实把连接数据库的账号密码的加解密搞定了就解决了这个数据库账密只能是saycf的问题
于是又第一次使用IDA,查找了解密的汇编伪代码,写了这个工具 希望对大家有帮助。

关于工具的使用:
如果运行提示缺少dll 安装下vc2013的运行库即可
正常使用加密功能就行了 解密功能基本上用不上但是也还是做了



本人残端小白,有很多不懂的 每个服务器的作用 数据库的作用 客户端配置 这些都还没弄过呢,希望大家在下面讨论 共同进步。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

 成长值: 490

93

主题

289

回帖

4万

积分

垃圾回收员

Rank: 10Rank: 10Rank: 10

UID
1
马尼
3538 枚
贡献
4456 次
信誉
100 点
在线时间
130 小时
注册时间
2023-7-20
最后登录
2024-5-3

龙年大吉信誉勋章灌水之王活跃之王优质贡献者

发表于 2024-4-17 16:47:35 | 显示全部楼层
加密算法能发下吗
666
回复

使用道具 举报

13

主题

270

回帖

1616

积分

金牌嫖友

Rank: 6Rank: 6

UID
161
马尼
829 枚
贡献
168 次
信誉
0 点
在线时间
99 小时
注册时间
2023-10-17
最后登录
2024-5-1
发表于 2024-4-17 16:52:02 | 显示全部楼层
admin 发表于 2024-4-17 16:47
加密算法能发下吗

据说是rc4算法,但是具体使用的秘钥可能要去那个pdb文件里才能找到
回复

使用道具 举报

 成长值: 300

11

主题

135

回帖

1701

积分

年付VIP

Rank: 6Rank: 6

UID
141
马尼
1216 枚
贡献
113 次
信誉
0 点
在线时间
38 小时
注册时间
2023-10-11
最后登录
2024-5-3
发表于 2024-4-17 16:55:02 | 显示全部楼层
6666666666666666
回复

使用道具 举报

 成长值: 490

93

主题

289

回帖

4万

积分

垃圾回收员

Rank: 10Rank: 10Rank: 10

UID
1
马尼
3538 枚
贡献
4456 次
信誉
100 点
在线时间
130 小时
注册时间
2023-7-20
最后登录
2024-5-3

龙年大吉信誉勋章灌水之王活跃之王优质贡献者

发表于 2024-4-17 16:55:09 | 显示全部楼层
barry 发表于 2024-4-17 16:52
据说是rc4算法,但是具体使用的秘钥可能要去那个pdb文件里才能找到

混淆过了
666
回复

使用道具 举报

2

主题

21

回帖

7735

积分

论坛元老

Rank: 8Rank: 8

UID
1405
马尼
7303 枚
贡献
133 次
信誉
0 点
在线时间
49 小时
注册时间
2024-4-12
最后登录
2024-5-4
 楼主| 发表于 2024-4-17 16:56:23 | 显示全部楼层
barry 发表于 2024-4-17 16:52
据说是rc4算法,但是具体使用的秘钥可能要去那个pdb文件里才能找到

rc4 然后base64 rc4的算法不能直接用网上开源的解 要处理key的
回复

使用道具 举报

13

主题

270

回帖

1616

积分

金牌嫖友

Rank: 6Rank: 6

UID
161
马尼
829 枚
贡献
168 次
信誉
0 点
在线时间
99 小时
注册时间
2023-10-17
最后登录
2024-5-1
发表于 2024-4-17 17:01:40 | 显示全部楼层
qiaoba 发表于 2024-4-17 16:56
rc4 然后base64 rc4的算法不能直接用网上开源的解 要处理key的

哦,群友闲了可以细讲一下么,比如把数据库密码1234,怎么最终变成那个加密串的,主要不会看那个pdb文件。
回复

使用道具 举报

2

主题

21

回帖

7735

积分

论坛元老

Rank: 8Rank: 8

UID
1405
马尼
7303 枚
贡献
133 次
信誉
0 点
在线时间
49 小时
注册时间
2024-4-12
最后登录
2024-5-4
 楼主| 发表于 2024-4-17 17:03:23 | 显示全部楼层

密钥很好找的 开IDA 查看string就可以找到 @vlakd&PMang!@#$ 就是这个
关键还是加解密过程中key值的处理和rc4的处理 目前代码不准备公开 原理就是找到这个key值 先处理key 然后再rc4 结果再base64 处理key流的时候加入了随机的值所以同一个字符串加密结果不一样 这就是为啥配置中账号和密码都是saycf 结果不一样的了
回复

使用道具 举报

2

主题

21

回帖

7735

积分

论坛元老

Rank: 8Rank: 8

UID
1405
马尼
7303 枚
贡献
133 次
信誉
0 点
在线时间
49 小时
注册时间
2024-4-12
最后登录
2024-5-4
 楼主| 发表于 2024-4-17 17:09:35 | 显示全部楼层
barry 发表于 2024-4-17 17:01
哦,群友闲了可以细讲一下么,比如把数据库密码1234,怎么最终变成那个加密串的,主要不会看那个pdb文件 ...

int __cdecl Decrypt(std::string sCipherText, std::string *sPlainText, rc4_key_struct decryptKey)
{
  unsigned int Myres; // ebp
  std::string::_Bxty *Ptr; // eax
  int v5; // eax
  int v6; // esi
  _BYTE v8[1028]; // [esp-414h] [ebp-634h] BYREF
  char *v9; // [esp-10h] [ebp-230h]
  int v10; // [esp-Ch] [ebp-22Ch]
  char *v11; // [esp-8h] [ebp-228h]
  unsigned int *p_length; // [esp-4h] [ebp-224h]
  unsigned int length; // [esp+Ch] [ebp-214h] BYREF
  char sDecrypted[255]; // [esp+10h] [ebp-210h] BYREF
  char sDeBase64ed[255]; // [esp+110h] [ebp-110h] BYREF
  int v16; // [esp+21Ch] [ebp-4h]

  Myres = sCipherText._Myres;
  memset(sDeBase64ed, 0, sizeof(sDeBase64ed));
  memset(sDecrypted, 0, sizeof(sDecrypted));
  Ptr = (std::string::_Bxty *)sCipherText._Bx._Ptr;
  v16 = 0;
  length = 255;
  if ( sCipherText._Myres < 0x10 )
    Ptr = &sCipherText._Bx;
  v5 = Base64Decode(Ptr->_Buf, sDeBase64ed, 255);
  p_length = &length;
  v11 = sDecrypted;
  v10 = v5;
  v9 = sDeBase64ed;
  qmemcpy(v8, &decryptKey, sizeof(v8));
  v6 = NC_NRC4_decrypt();
  if ( v6 )
  {
    if ( Myres >= 0x10 )
      operator delete(sCipherText._Bx._Ptr);
    return v6;
  }
  else
  {
    std::string::assign(sPlainText, sDecrypted, strlen(sDecrypted));
    if ( Myres >= 0x10 )
      operator delete(sCipherText._Bx._Ptr);
    return 0;
  }
}

这是IDA反汇编处理的伪代码,主要是看这些伪代码实现 直接看pdb文件没法看的。可以通过IDA打开gDBGW.exe 搜索Decrypt这个函数 解密过程走通了就可以加密了
回复

使用道具 举报

 成长值: 455

13

主题

45

回帖

2139

积分

年付VIP

Rank: 6Rank: 6

UID
956
马尼
1847 枚
贡献
78 次
信誉
0 点
在线时间
69 小时
注册时间
2024-2-27
最后登录
2024-5-4
发表于 2024-4-17 17:41:14 | 显示全部楼层
哇,大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|烂大街

GMT+8, 2024-5-4 10:35 , Processed in 0.701127 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表