那些金手指是怎么写出来的?

  • S
    Swanfal
    尤指那种能实现快速存档、显血之类神奇功能的金手指代码。
    大概了解过一下原理,貌似金手指代码本质就是带一些神奇补丁的、面向改动内存的汇编程序?但是好像从来没见到有人放出来过至少正常人能用的编译器和库之类的东西啊,难道都是手撸汇编?还是说那些大佬开发了工具都藏着掖着?感觉不管怎样都很难理解啊。
    另:帖子列表里这贴的标题的那个照相机是啥意思啊,我也没发图
  • I
    Ik4ruga
    cheat engine有cheat table啊,前人改完分享的
    自己改的时候都是通过改变变量二次搜索得到的,我也就会这么一招
    psp,3ds之类的破解和作弊过程不了解来自: iPhone客户端
  • S
    Swanfal
    cheat table也得有人写吧
  • n
    nukejoker
    见过的最牛逼的金手指是MH2DOS的排箱子,这究竟是通过什么方式什么原理实现的看过几次讲解依然是一头雾水。
  • S
    Swanfal
    看了一下,我估计还算简单的,就是读该格是否非空,算出二进制值然后直接写到任务码的地址上吧
    搞不好游戏本身就有个地址存某格是否为空,那直接读那个地址写到任务码上面应该就行了。想来应该还是需要这个值的,用来选新放入的物品的空格位置什么的应该能用上。
    但是显血这种,要显示个啥玩意的话还要考虑排版、选字之类的问题吧,这真是能手撸出来的么……
  • 卡奥斯·克斯拉
    血量现实也有可能是测试阶段就有的功能,后来用代码注释取消了,然后用修改代码(金手指)恢复
  • S
    Swanfal
    就MH而言,还有不同版本的显血插件,显示的内容和排版都不一样的
    而且编译完以后哪还有注释……
  • t
    trentswd
    游戏机的金手指我也觉得很神奇,我也不懂为啥改几个地址就能实现一个很复杂的功能
    PC上修改器本身就会去改游戏本身的程序,mhw的显血是修改器自己用dx画的
  • S
    Swanfal
    PC的应该就简单了,毕竟可以直接注入读内存,然后用高级语言写功能再画出来完事
  • S
    Swanfal
    能实现神奇功能的一般都不短吧,像MH显血就老长了。
    这种我估计是直接写了个子进程进去运行了,记得以前看过PSP的CMF就可以实现简单的汇编指令(取地址、写入、加法之类的)但是再怎么说生撸汇编也太吓人。
  • a
    amitiel
    以前都是搜地址的

    发自我的iPhone viaSaralin 2.1.2
    来自: iPhone客户端
  • S
    Swanfal
    这个啊,看过看过,后来还用这个bug实现了用一个自制外设在实机上直接往里写了一个贪吃蛇进去的样子
    不过这个应该和金手指是不太一样的吧,金手指是直接改内存,这个是TAS吧。这个我更不信是敲汇编了……毕竟折腾的是控制器输入,卡bug那帧的内存环境也是确定的。PC和单片机环境的话,读出卡bug那一帧的内存然后生成对应修改内存的输入就可以了。从汇编搞也没啥必要。
    当然他们肯定自己开发了对应的「编译器」(把FC程序编译成TAS输入什么的……),不过鉴于他们是一个类似于竞赛队的小组(这个东西好像前后拿了两次某个TAS比赛的奖),感觉还能理解的样子。

    —— 来自 Sony F5321, Android 7.1.1上的S1Next-鹅版v2.0.4
  • l
    lzhua
    ……我有点懵逼,你指的汇编和TAS是啥?你说的这个小组又是啥?油管视频的上传者是哪个组的?

    首先这个速通法现在已经不是必须TAS了,冲击世界纪录的都要用这一招,就是卡龟壳像素点卡得准就行。然后TAS跟编译器和FC程序也没关系啊,基本上是个强力模拟器。这些bug速通基本上用的就是直接输入各种各样的指令达成跳转读取关卡的方式,必须得完全理解程序运行和汇编代码才能从结果倒推出来,我觉得很汇编啊。
  • n
    nice女武神
    这些应该是游戏开发本来就存在的功能 发售版隐藏起来而已
  • j
    jinghaoyi
  • j
    jinghaoyi
    --》“面向改动内存”
    这里把范围说窄了,实际上是程序和内存都可以,这两部分存在于同一地址空间,在数据篡改的技术实现上没有差别,也就是说改程序并不比改内存要难。
  • S
    Swanfal
    那……不就是一样的,说金手指是改内存也不算错吧……
    我想说的是写这样的类似汇编一样的玩意岂不是很费劲。尤其是还有一些改AI之类的,感觉难度跟手动反编译也差不多了吧。而且现在反编译也有各种工具链了,但是针对写这种金手指代码的工具感觉好像没怎么见到过?
  • 天神十三煞
    http://bbs.a9vg.com/thread-1310166-1-1.html
    http://bbs.a9vg.com/thread-168849-1-1.html
    简单易懂的汇编解释,虽然这个是蓝光的,
    但是游戏机单片机类似,就是dump内存或对启动程序的指令翻译反向,
    蓝光本身也是加密的,但是解密后那些结构文件都是裸的。你可以找份bd结构文件,用bdedit读了看数值怎么对应的。作为参考,游戏执行程序储存值或内存数据情况与此类似
    这些命令在内存或执行程序里实际被储存了地址与数值,我写的文或现成ce脚本可以看作是已经翻译版本
    制作高级作弊代码就是将执行程序只读数据或内存数据翻译为汇编等形式逻辑语言代码(或有工具代劳),分析其逻辑
    知道其逻辑结构后,你就可以插入你的值甚至你新建立的逻辑
    无非就是教金手指或CE这类脚本器去艹内存,自然是要有撸汇编水平的

    其实像PS2有PS2DIS之类的工具,以前fullcodes还是有一些教学的
    怼elf什么或boot之类的,工具是有的,都在固定的小众论坛或社区发布,大部分普通群众看不到而已
    制作金手指或cheat table高阶向的作弊代码都是属于比较上级向的了,得有一定水平的码农才做的到
    高级作弊还真不是个简单事,不然大家都可以用cheat engine自己解决问题了

    显血那种又不是什么夸张的事
    引用游戏自带的字符集直接地址反馈值出来不就好了
  • j
    jinghaoyi
    一般说的内存是可读可写,程序是可读不可写,金手指在实机上借助硬件支持才实现了“篡改”程序的目的。
    抛开金手指提供的一些条件判断之类的高级功能,基本的金手指码和对应汇编/机器码之间就是直白简单的一一对应关系,编个小程序都可以转换了。涉及条件判断还是需要手工转换,但金手指的改程序部分一般最多几十行,也不麻烦。
  • l
    lbzlxx
    那么这名称是怎么来的,为什么不直接叫作弊码
    我第一次见是gb那种外挂式的,一大坨,不明觉厉
  • j
    jinghaoyi
    https://tieba.baidu.com/p/2257818214?red_tag=3392610166
    这个写的相对详细,介绍fc的game genie码,一条汇编指令可以对应到一条或者几条GG码。
  • b
    bzmk
    我看过的最屌的金手指应该是这个GVGNP的牛高金手指
    前面那些就够不可思议了,但是勉强还能理解(或者说脑补一下)原理
    最后改出来那俩新招完全理解不能啊
  • c
    clc-feng
    以前用过FPE的都懂
  • z
    zmj1316
    初级的扫内存部分不需要汇编知识,只需要了解指针和结构体的原理,先扫数值变化定位数据位置,然后一级级往上搜索指针地址和偏移量,直到搜索到静态区,记录静态区指针地址和各级的偏移量和最后数据的类型就能简单改数值。
    再复杂点要注入的就和金手指没啥关系了。