TC官方合作论坛

 找回密码
 立即注册
查看: 20033|回复: 179

[脚本] 在线分享五年脚本技术经验,半水半干货

  [复制链接]
发表于 2017-10-28 12:41:33 | 显示全部楼层 |阅读模式
本帖最后由 darkya 于 2017-11-2 18:07 编辑
梦里不觉秋已深,余情岂是为他人






谨以此献给逝去的青春~
企鹅号:2367643256
交流群:680103309


大概记得自己是从12年开始接触脚本这个行业,当时自己是计算机应用专业才毕业,再加上平时喜欢玩游戏,听到游戏里大佬说的游戏脚本,于是自己也去网上搜索。

刚开始接触的按键精灵,不过我下载下来胡乱捣鼓了一遍,一脸懵逼(当时的按键不是很好用,貌似是英文编程,再加上反人类的中文语法),于是弃之。

后来接触到TC,大学里学过C语言,TC的语法很符合,又是中文编程,给我一种亲和力。于是TC伴随了我三年,一开始用TC做九阴真经这个游戏,我记得那时候这游戏很火,什么都是全新概念。

第一次用TC去写游戏里的种地功能,不过那时候基础真的很差,又没有教程可学,一个人捣鼓了两三天,硬是写出个效率极低的种田功能出来。

后来,在论坛里搜索学习资料,搜索到各种插件的使用,TC的代码编辑,后来逐渐入门了,本来想给大家暂时下种田代码实现的,后来发现几年前写的代码都烟消云散了。手上还有两三个曾经写过的项目,不过都没代码了,具体实现大概能说出来。

第一个项目分享:剑灵的 卡刀脚本

这个脚本没什么技术含量,主要是当时这游戏火,有玩家喜欢pk,游戏里又有关于卡刀——缩短角色动画后摇的时间,于是催生了卡刀脚本。

界面如图:



剑灵这个游戏是有TP保护的,但是不检测前台按键,(TP过一段时间会发送检测包检测KeyState按键状态,不过脚本发出的按键状态和人自己发出的混合了,所以检测不了)

所以最主要的重心是解决如何极限的卡刀操作,这个需要咨询职业玩家。连招顺序,以及按键延迟之类的。

第二个项目分享:大话西游2 经典版 刷生活任务 (这个有代码,可以从代码层面给大家讲解)
界面如图:

Em...这个脚本的话,不再是纯按键了,因为有大量的游戏信息需要获取(当然纯图色也能做,不过效率太低,不过纯图色要处理的检测点要少得多),接口工具的话还是上的大漠(代码届有句老话:勿要重复造轮子)
今日继续更~~~10.29
今日继续更~~~10.30
今日继续更~~~上点干货好了11.1
今日继续更~~~11.2
下面我截取几个难点给大家讲解一下:

1.这类游戏让人头痛的应该是各种定点传送了。这个其实也不难,抓住问题的核心,先有数据,再谈逻辑操作。写脚本最主要的是思路。那么,飞行旗的流程是什么呢?打开背包---找到飞行旗---执行操作---判断操作成功与否。
这就是整个大概流程,打开背包,这种功能在一个游戏里应该是常用功能了,所以建议大家把这个功能写到通用库里,减少代码的耦合度。
找到飞行旗,这个功能,如果直接打开背包进行找字找色效率是非常低的。这里我的做法是,自己定义一套飞行旗的定点,比如说 背包第一个格子---长安,第二个格子---傲来。这样固定好,相当于把游戏数据存入到内存里了,效率就很快了。(当然这样的做法同样也会触发检测,不过也有解决思路=。=)



遍历飞行旗,获取飞行旗的信息


2.这个游戏当时有一个地图坐标转换的功能,原理也很简单,就是按照比例进行缩放。效果还是挺不错的,误差在游戏里大概只有1-2的坐标误差。(这个功能代码太长,截取部分,要整个代码的进群索取)
这个代码利用了等比缩放,然后运用了耳熟能详的物理公式v=s/t(速度=距离/时间) 算出了实际在Tab地图中要移动的像素大小。

今日继续更~~~10.29貌似这项目没什么说的了...之后都是一些内存取数据的操作。
Em...说一条网易游戏检测按键的防封吧。
网易检测按键 有一种特别猥琐的办法。不定时向客户端发包,检测鼠标指针,网易服务器有一大堆脚本鼠标的特征库,如果发现你的鼠标操作符合特征库里的,那么就判定你是脚本,
然后过几天把你封掉,这就是大部分口中的行为检测~
处理的办法倒是简单,就是挺麻烦的。其中一个思路 就是不让自己的键鼠操作如此的 “恒定”  键鼠随机偏移,并且 建议写的脚本多添加几套键鼠操作,每天都换一套操作方式,这样就很难通过这种方法检测到你了。PS:仅限前台操作哦~ 后台键鼠操作是另一种情况了
3.今天给大家分享一点TC的扩展性功能吧。也就是 加载DLL(动态链接库)这个功能 按键精灵也有,其实就是用c/c++( 或者其他 脚本语言代替也行) ,调用 windows的API函数 进行扩展功能。 所以TC没有的功能 也可以实现了。比如数据库操作,FTP文件服务器操作之类的。这一类功能用在网络 验证这一块比较多,具体实现呢 论坛插件专区里也有现成的例子 我就 不贴出来了。所以想学好的话,还是建议大家多学习一点 windows的api函数,接触多了,思路就广了。



11.1额,还是上点干货吧,关于文件校验,有的程序会对自身的文件进行校验,是否被修改。那么他们是通过什么手段进行校验的呢?
基本上大多数文件校验都是依靠的PE头Optional Header中的一个CheckSum成员。这个成员变量就是存放文件的校验值。

但是windows启动时不会校验这个值,我们可以获取原程序本来的校验值,然后copy给我们想要替换的文件的校验值。(偷天换日)
这样就检测不了是否文件被修改了~(当然了只是其中一个手段)



11.2 貌似很多人对内存辅助很感兴趣,那么我这里就稍微说一下这玩意儿吧,内存辅助 和图色辅助 最大的区别就是数据源的获取方式不同,
内存辅助 顾名思义 就是从目标进程的内存中找到关键数据源进行调用,进而书写应用层逻辑实现自动化的软件
图色辅助 就是从目标进程的 窗体图形刷新,根据图色特征差异进行数据源的获取,进而书写应用层逻辑实现自动化的软件
两者的区别
图色辅助
缺点,获取数据源不太稳定,或者有的深层次的数据无法获取,进而更加考研作者的正向编程能力。
优点,相对于内存辅助来说,游戏检测的点要少很多,安全性方面更好处理。
内存辅助
缺点,因为对目标进程做了相应的内存手脚,会触发一系列游戏检测,从而导致封号,踢下线之类的官方操作。需要作者有较高水平的软件安全对抗知识。
优点,那么肯定就是稳定了,数据来源稳定,对应的逻辑层书写就舒服,对比图色辅助来说有先天的代码量优势。
出于商业角度考虑,两者并没有单纯的谁比谁更好的说法,只能说谁在某个条件下更适合。(内存辅助的开发周期远远高于图色辅助)









本帖子中包含更多资源

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

x

评分

参与人数 1威望 +10 金币 +10 收起 理由
q741230412 + 10 + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2017-10-28 14:10:40 | 显示全部楼层
看看
回复

使用道具 举报

发表于 2017-10-28 14:22:10 | 显示全部楼层
了解一下
回复

使用道具 举报

发表于 2017-10-28 17:15:51 | 显示全部楼层
ssssssssss
回复 支持 反对

使用道具 举报

发表于 2017-10-28 20:31:13 | 显示全部楼层
了解一下
回复

使用道具 举报

发表于 2017-10-28 21:06:52 | 显示全部楼层
111111111111111111111111
回复 支持 反对

使用道具 举报

发表于 2017-10-28 23:09:11 | 显示全部楼层
缅怀的东西一定要看下
回复 支持 反对

使用道具 举报

发表于 2017-10-29 00:23:22 | 显示全部楼层
回复

使用道具 举报

发表于 2017-10-29 00:37:37 | 显示全部楼层
很61211131.
回复 支持 反对

使用道具 举报

发表于 2017-10-29 08:13:57 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-16 21:16 , Processed in 0.050584 second(s), 27 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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