查看: 1126|回复: 14
【插件分享】服务端插件DP-S详解
[复制链接]
arong
arong
当前在线
积分150568
TA的专栏
4944
主题4万
回帖15万
积分
管理员
积分150568
收听TA
发消息
电梯直达
楼主
发表于 2025-1-16 16:00:49
|
只看该作者
|倒序浏览
|阅读模式
DP-S上线也已经迭代一周多了,这一周多的时间我已经陆陆续续将DP-S整体完善,但是鉴于有很多人还是不了解本插件,所以单开一贴,介绍一下,并回复疑问。
分享到:
QQ好友和群
QQ空间
收藏0
转播
分享
淘帖0
支持0
反对0
阿荣社区欢迎你(bbs.vul7.com)
回复
使用道具
举报
Dveridow
Dveridow
当前在线
积分141774
TA的专栏
4431
主题4万
回帖14万
积分
出神入化
出神入化, 积分 141774, 距离下一级还需 8226 积分
出神入化, 积分 141774, 距离下一级还需 8226 积分
积分141774
收听TA
发消息
沙发
发表于 2025-1-16 16:00:57
|
只看该作者
我顶!
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
Dveridow
Dveridow
当前在线
积分141774
TA的专栏
4431
主题4万
回帖14万
积分
出神入化
出神入化, 积分 141774, 距离下一级还需 8226 积分
出神入化, 积分 141774, 距离下一级还需 8226 积分
积分141774
收听TA
发消息
板凳
发表于 2025-1-16 16:01:37
|
只看该作者
666
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
arong
arong
当前在线
积分150568
TA的专栏
4944
主题4万
回帖15万
积分
管理员
积分150568
收听TA
发消息
地板
楼主|
发表于 2025-1-16 16:02:32
|
只看该作者
首先,比较重要的问题,DP-S是什么,DP-S是一款服务端插件,是完完全全独立的,不依赖于dp,也不依赖于frida,它能够实现你所有想得到的服务端需要的功能。
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
阿苏
阿苏
当前在线
积分151803
TA的专栏
4911
主题4万
回帖15万
积分
神功绝世
积分151803
收听TA
发消息
5#
发表于 2025-1-16 16:03:25
|
只看该作者
顶
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
arong
arong
当前在线
积分150568
TA的专栏
4944
主题4万
回帖15万
积分
管理员
积分150568
收听TA
发消息
6#
楼主|
发表于 2025-1-16 16:03:55
|
只看该作者
这层讲一下一些重要的功能
相较于frida 的 动态call
例如
//给角色发消息var CUser_SendNotiPacketMessage = new NativeFunction(ptr(0x86886CE), 'int', ['pointer', 'pointer', 'int'], { "abi": "sysv" });
这是frida代码,是向程序注册一个函数调用的原服务端的 0x86886CE 地址函数的功能。
这个动态call在 DP-S插件中也有实现,不过逻辑稍有不同,在DP-S中,你不需要先注册这个函数,我们采用动态call直接调用,例如上面这个例子,在DP-S中 你只需要这样写
Sq_CallFunc(S_Ptr("0x86886CE"), "int", ["pointer", "pointer","int"], SUser.C_Object, Memory.allocUtf8String("测试信息"),14); 可以看到我们直接调用了这个函数 申明了返回值为int 参数为两个pointer指针 在同时我们直接将参数传递了进去,如果你想实现 frida这种类似的注册函数模式 ,你也可以在DP-S中将函数注册在全局表里
动态Call说完了 再说说frida的另一个重要功能 AOP 也就是 动态HOOK frida可以在程序运行时 hook下某一个原生函数 执行自己的逻辑 例如
这一点在DP-S中也是同样可以实现的,不过这一功能我并未开放,至于原因我会在下一层讲
现在放上DP-S的实现代码
至于其他的frida的内存类操作 比如 .add .readU32 .alloc 之类的操作 在DP-S中也都有实现,封装在Native层,感兴趣的可以看文档或者问我。
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
arong
arong
当前在线
积分150568
TA的专栏
4944
主题4万
回帖15万
积分
管理员
积分150568
收听TA
发消息
7#
楼主|
发表于 2025-1-16 16:04:04
|
只看该作者
这层我来讲讲,为什么我不开放动态HOOK的功能或者说暂时不开放,并不是因为我想用这个功能收费或者是什么,我可以告诉大家DP-S将会是一个长期维护,并且永久免费的功能,这是我回馈给台服整个圈子的东西。
我不开放这个动态HOOK不代表你不可以使用这个功能,如果你有一些需要的HOOK 你可以单独私聊提交给我,我在后台创建接口,你不需要更新你的DP-S插件也可以热更新享受到这样的功能,
我之所以不开放是因为,首先动态HOOK对于程序的危险性大大超过了动态CALL,并且由于很多时候服务端的插件代码,并不是一个人编写的,这个大家都懂,可能这个技术搞一点,那个技术高一点,整个环境会非常混乱(就像现在的客户端nut一样,我只能说屎山成堆)。
而由我同一开放接口的话,所有的HOOK功能,会转变为你向接口注册,这样即使有不同的人同时维护一个服务端,也不会彼此之间的代码产生冲突,这一点我相信很多小白在客户端nut深有体会,导入了这个包 那个失效了,导入了那个包 这个失效了,这一点在DP-S这里将会得到解决。
并且这个插件既然是免费,更加会致力于服务没有那么多编程基础的小白,你可以在文档的示例页中,一键复制,一键黏贴,只需要更改简单的物品代码或者字符串,就可以使用大佬开源出来的功能。
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
阿荣社区采集员2
阿荣社区采集员2
当前在线
积分155226
TA的专栏
5067
主题4万
回帖15万
积分
神功绝世
积分155226
收听TA
发消息
8#
发表于 2025-1-16 16:04:12
|
只看该作者
小白不会用,大佬也不会用(开玩笑🤣🤣🤣)
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
arong
arong
当前在线
积分150568
TA的专栏
4944
主题4万
回帖15万
积分
管理员
积分150568
收听TA
发消息
9#
楼主|
发表于 2025-1-16 16:04:17
|
只看该作者
接下来我介绍一下,一些比较重要的类
数据库类
DP-S的数据库并不像frida那样散开,我为DP-S编写了一个Mysql的线程池,什么是线程池呢,就是一次性将一定数量的数据库连接,建立好,放在一个池子内,当需要使用的时候可以直接获取连接,去请求你的数据库数据。这有什么好处呢,省去了连接和关闭的步骤性能将会提升非常多。
这里上一个例子
可以看到我们设定好需要查询的语句以后,设定我们需要请求的类型,便可以向MysqlPool 申请要一个链接,他就会直接给你一个连接池中的 空闲连接,帮助你执行Mysql语句 返回值将会是一个二维数组 我们这里可以直接使用printT打印 当然在用完以后 也要记得将连接归还给连接池
到这里可能有人又会问了,既然是单线程,要连接池有什么用,这里又涉及到一个重要概念,异步协程,通过我设计的Timer接口,你可以在DP-S中完成异步操作,而不会阻塞主线程,这是目前frida大部分人都没有做到的。
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
arong
arong
当前在线
积分150568
TA的专栏
4944
主题4万
回帖15万
积分
管理员
积分150568
收听TA
发消息
10#
楼主|
发表于 2025-1-16 16:04:45
|
只看该作者
DP-S同样拥有IO流的接口,我在群里录制了一个向一个文件写入5000000行数据的操作,通过异步操作,他在同时写文件的时候不会影响DNF服务端原本的逻辑执行。由于贴吧不好放视频,感兴趣的可以直接去观看。
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
阿荣社区机器人
阿荣社区机器人
当前在线
积分141866
TA的专栏
4550
主题4万
回帖14万
积分
版主
积分141866
收听TA
发消息
11#
发表于 2025-1-16 16:05:37
|
只看该作者
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
Dveridow
Dveridow
当前在线
积分141774
TA的专栏
4431
主题4万
回帖14万
积分
出神入化
出神入化, 积分 141774, 距离下一级还需 8226 积分
出神入化, 积分 141774, 距离下一级还需 8226 积分
积分141774
收听TA
发消息
12#
发表于 2025-1-16 16:06:03
|
只看该作者
虚拟机可以用吗。需要网络吗
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
arong
arong
当前在线
积分150568
TA的专栏
4944
主题4万
回帖15万
积分
管理员
积分150568
收听TA
发消息
13#
楼主|
发表于 2025-1-16 16:06:36
|
只看该作者
接下来 我们讲讲DP-S 独有的优势,或者说其他插件做不到的东西
1.DP-S支持分文件管理,DP-S支持创建多级目录,多个文件来管理你的代码。
2.DP-S对于中文本地化支持非常高,不仅支持print 输出中文内容,同时还支持文件名中文命名。
3.DP-S支持逻辑脚本加密,这是我开放的接口,是真正的加密,而非客户端的那种序列化,亦或是剑圣那种混淆。
这个一点在群内也有演示视频.
4.DP-S不仅支持用户编写逻辑的热重载,同时支持热更新,也就是说在版本没有大变动的情况下,你可以不更新服务端文件,而获得最新的DP-S.
5.DP-S有长久维护的开发组(开发组也招人),无论是在之前出现的dp插件或者frida插件,始终都没有一个官方的组织或者个人来长期维护和迭代,DP-S将会持续保持活力,因为我们有一些志同道合的朋友共同来维护。
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
arong
arong
当前在线
积分150568
TA的专栏
4944
主题4万
回帖15万
积分
管理员
积分150568
收听TA
发消息
14#
楼主|
发表于 2025-1-16 16:07:26
|
只看该作者
暂时就这么多,后面有补充在说,有什么以为也可以在本帖提出,或群里问我。
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报
阿荣社区采集员3
阿荣社区采集员3
当前在线
积分153415
TA的专栏
5011
主题4万
回帖15万
积分
神功绝世
积分153415
收听TA
发消息
15#
发表于 2025-1-16 16:07:56
|
只看该作者
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
阿荣社区欢迎你(bbs.vul7.com)
回复
支持
反对
使用道具
举报