天翼网关F652破解教程

嗯,最近更文有些频繁——(咳咳,好像跑题了)

注意,根据省份、城市的不同,操作也肯能不同,请根据自己的情况进行操作!

注意,破解有风险!如果操作不当后果自负!

对于光猫的破解其实我也已经挺熟练了,来来去去基本上就那几招。。

总结一下大概就是:1 隐藏页面;2 配置文件修改;3 拆机TTL;4 专用工具

那么这次对于破解F652这款光猫,用到的就是第一种方法

首先我们尝试通过电信的超级用户默认密码登入路由器管理页面

先说一下,普遍来讲印在路由器底部或者侧面的登录账号密码肯定是阉割过功能的限制账号,你用那个账号登录进去并不能设定你的固话账号信息以及宽带信息。。

那么,电信的超级账号默认是 telecomadmin

而密码如果没被远程修改过的话就是 nE7jA%5m

然后在我们修改配置前,最好还是保存一下旧的配置,免得自己瞎改改错了又要麻烦电信小哥上门维修。。

我们注意到光猫上有个USB口,我们需要提前准备一个FAT32格式的USB,最好分成只有一个分区

然后进入这个页面备份设置(如果你的USB分区错误或者读取不了就会像上图一样分区选择是空的)(至于我是因为没插USB所以才是空的。。)(正常应该会看到USB_disc1之类的选项)

登录进去可以看到很多设定项目。。。如果没有进阶需要(例如我一般都会把所有电信远程控制给砍掉)的人基本上直接设置就行,没必要继续看下去。。

继续看下去说明你有这个需要了——

首先,在破解光猫之前我们需要先记录下自己的宽带LOID

注意,LOID相当于宽带的身份证号码。。如果没记录下来,自己打电话到电信问吧。。

这个就是所谓的LOID,据猜测这个LOID会绑定你的宽带账号、固话账号以及你光纤的上级管理设备(就是说你并不能用别人的LOID)

好,首先打开一个隐藏页面

http://192.168.1.1/hidden_version_switch.gch

打开之后我们可以看到这样的页面

我们需要记下Current Version的版本(其实也不用记,你是哪个省份之后改回来就行)

我们需要先切换到默认版本(Default Version)

然后直接切换回原来的版本(例如我是GuangDong Version)

切换版本会导致光猫重启,我们需要的是耐心等待重启hh

至于进行这个操作的意义。。主要就是开启telnet,然后便可以修改配置文件了

这个是电信小哥配置完之后的配置文件

我们可以看到telnet是没有开启的!

切换完版本。。当然,还是不能直接通过telnet连接(别急,还有下一步)

接下来我们需要做的是。。拔掉光猫的光纤

然后打开这个页面,直接重置所有配置(或者直接找根牙签什么的按住光猫上的重置按钮10秒后松开)

http://192.168.1.1/return2factory.gch

当然,光猫也会重启,需要做的还是耐心等待~

重置完成之后我们就正式进入破解环节了、

现在我们可以看到光猫是可以通过telnet连接上的

我们打开cmd然后输入telnet 192.168.1.1

用户名是 root 密码是 Zte521

登录进来之后应该不出意外能看到这个样子

我们需要执行以下几条指令

sendcmd 1 DB set TelnetCfg 0 Lan_EnableAfterOlt 1
sendcmd 1 DB save
reboot

复制粘贴就行了,这里的目的是让接上光纤之后telnet依然保持开启状态

执行完之后光猫会重启,这个时候我们接上光纤并且等待重启~

之后我们随便打开一个页面,例如百度。。

如果没有转跳的话手动打开这个页面

http://192.168.1.1/register.gch

你会看到类似这个样子的页面。。(我不记得实际是怎么样的了)

反正直接把LOID输入进去然后点注册之类的按钮

之后就等读条(不出意外的话进度条到100%就对了)

然后我们需要重启一下光猫——你可以telnet连接光猫然后reboot

也可以进管理页面选重启,或者直接手动重启(不太推荐p)

之后我们继续通过telnet连接路由器

执行以下一堆指令(直接复制粘贴就行了)

sendcmd 1 DB set SNTP 0 Enable 0
sendcmd 1 DB set MobileAppInfo 0 DpMgtURL ""
sendcmd 1 DB set MobileAppInfo 0 AppDbg 0
sendcmd 1 DB set DDNSClient 0 Enable 0
sendcmd 1 DB set DDNSClient 0 DomainName ""
sendcmd 1 DB set DDNSClient 0 Username ""
sendcmd 1 DB set DDNSClient 0 Password ""
sendcmd 1 DB set DDNSService 0 Server ""
sendcmd 1 DB set DDNSService 1 Server ""
sendcmd 1 DB set FTPServerCfg 0 FtpEnable 0
sendcmd 1 DB set FTPServerCfg 0 FtpLanEnable 0
sendcmd 1 DB set QOEINFO 0 TestDownloadUrl ""
sendcmd 1 DB set MonitorCollectorCfg 0 ServerUrl ""
sendcmd 1 DB set UsbBakRst 0 BakFileName F652.cfg
sendcmd 1 DB set NetMonitorDiagnostics 0 HostName ""
sendcmd 1 DB set BUServiceConf 0 MainPlatformUrl ""
sendcmd 1 DB set BUServiceConf 0 StandbyPlatformUrl ""
sendcmd 1 DB set BUServiceConf 0 MainSpeedTestPathPrefix ""
sendcmd 1 DB set BUServiceConf 0 StandbySpeedTestPathPrefix ""
sendcmd 1 DB set BUServiceConf 0 TracerouteTestUrl ""
sendcmd 1 DB set BUServiceConf 0 PlatformTimeServer ""
sendcmd 1 DB set DHCPSHostCfg 0 DomainName ""
sendcmd 1 DB set CPKINFO 0 State 0
sendcmd 1 DB set CPKINFO 1 State 0
sendcmd 1 DB set CPKINFO 2 State 0
sendcmd 1 DB set DevInfo 0 ManuFacturerURL ""
sendcmd 1 DB set DevInfo 0 DeviceURL ""
sendcmd 1 DB set QOSBasic 0 Enable 0
sendcmd 1 DB set QOSShaper 0 Enable 0
sendcmd 1 DB set WLANCfg 0 ESSIDPrefix ""
sendcmd 1 DB set MgtServer 0 PeriodicInformEnable 0
sendcmd 1 DB set MgtServer 0 URL ""
sendcmd 1 DB set MgtServer 0 UserName ""
sendcmd 1 DB set MgtServer 0 Password ""
sendcmd 1 DB set MgtServer 0 ConnectionRequestUsername ""
sendcmd 1 DB set MgtServer 0 ConnectionRequestPassword ""
sendcmd 1 DB set MgtServer 0 Tr069Enable 0
sendcmd 1 DB set ProInfoCfg 0 Tr069WebConfigEnable 0
sendcmd 1 DB set ProInfoCfg 0 DevInfoEnable 0
sendcmd 1 DB set ProInfoCfg 0 RegisterPwdEnable 0
sendcmd 1 DB set E8STBBINDINFO 0 TR069STBEnable 0
sendcmd 1 DB set PortControl 2 PortEnable 0
sendcmd 1 DB set PortControl 5 PortEnable 0
sendcmd 1 DB set PortControl 6 PortEnable 0
sendcmd 1 DB set DMSCfg 0 Enable 0
sendcmd 1 DB set UserBehaviorCfg 0 URL ""
sendcmd 1 DB set UserBehaviorCfg 0 Username ""
sendcmd 1 DB set UserBehaviorCfg 0 Password ""
sendcmd 1 DB set SambaCfg 0 EnableSmb 0
sendcmd 1 DB set SambaCfg 0 EnableSmbLan 0
sendcmd 1 DB set TR064Cfg 0 EnableTR064IGD 0
sendcmd 1 DB set PerformUpLoad 0 Enable 0
sendcmd 1 DB save

reboot

之后就完事了,等重启完进一开始的管理页面自行设定以下

按理来说刚才LOID认证完业务下发完成之后是能正常上网的。。

关于无法收到本站邮件的问题

今天有个朋友恰好问我域名邮箱怎么设置

当我打算把网站DNS记录截图的时候我发现了一直以来都存在的问题

虽然平时我邮箱会收到一堆退信记录。。不过我都无视了

没想到其实原因是我没设置SPF。。所以可能造成无法收到本站邮件

或者邮件在垃圾箱的情况。。

这个问题刚刚已经修复了我就顺便水一文(刷刷存在感hh)

至于什么是SPF,这里科普一下

(Sender Policy Framework) 的缩写,一种以IP地址认证电子邮件发件人身份的技术,是非常高效的垃圾邮件解决方案。接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。

怪物猎人:世界科技(修改)

0x01 水

掐指一算,距离上次发文已经过去接近两个月了。。

果然暑假前说好的更新计划还是被我鸽掉了。。。

别慌,问题不大,反正当初我就觉得我应该会鸽掉的说 hh

0x02 背景

至于为什么我会从某蒸汽平台购入这款游戏呢~

那是一年前的事了,当时游戏刚刚发布,好像还炒的挺热的,正值暑期特卖。。

唉能不能别提暑期特卖,每次提这个钱包都得减个肥。。

至于为什么现在才来发这篇文章嘛,其实也是有一个很大的原因

那就是之前的电脑并不能带的起怪猎这个游戏(这是一个悲伤的故事。。)

试想一个最低画质玩怪猎也只有不到12FPS的电脑,那酸爽真的刺激

水的好像也差不多了,那么接下来进入正题~

0x03 工具

本文会用到的工具。。

嘛,也不多就两个,CE和易语言IDE

至于为什么我那么执着于易语言。。(其实主要原因是易语言写挂真心简单)

毕竟。。百度一下一堆模组下载来引用就好

不过,方便其实也是有个前提的。。易语言程序众所周知都是32位的。。

你说用来改个同为32位的游戏,例如DNF吧,那简单

但是嘛,DNF都已经十几年了(准确来说已经14年了,05年出的游戏)

不过随着时间推移,现在都9012年了,游戏是越做越大。。(毕竟玩家的要求也高了~)

由于32位操作系统只支持最高4G内存,这年头还哪有游戏能4G就跑起来啊(小游戏除外。。)

所以游戏普遍已经都是64位的了,那么问题就来了,一个32位的进程要怎么去读取或者修改64位进程的内存啊?

是的,其实直接按照原来的方法也能改(调用Windows API)。。不过能改的只是低内存(内存地址为四字节)

可是对于一个64位进程来讲。。数据基本上都存在高内存(内存地址为八字节)的地方

这里说一下Windows API这个东西,修改内存、分配内存、读取内存等等的操作都需要一系列API的帮助,而API则是32位模式调用的是32位的API,64位模式调用的是64位的API

问题来了,32位进程只能操作低内存那高内存怎么办呢?

解决方法有三种,其一用支持64位的编程语言写(废话)

其二,手动把程序运行环境切换到64位模式(通过汇编语言)

其三,用Wow64函数(如NtWow64QueryInformationProcess64)显然这并不是一个好方法,因为有些函数Win10就连导入都没导入(调用不了),而且这些函数大多非文档化,你就连找他的函数原型都有难度(虽然可以自己推测出来)

本文当然是采用第二种方法(毕竟比较有挑战性hhh)

0x04 关于游戏基址

由于这次的主题并不是如何寻找基址(毕竟这并不是一个冷门游戏,要CT上网一搜一大把)(例如3大妈,连国外的CT都给你翻译好了,虽然不是很准就是了

首先游戏开开,然后CE开起来,接着选择进程,之后直接把下载好的CT拖进CE
就拿无敌功能说事,双击<脚本>然后就会弹出自动汇编的窗口

窗口里最上面注释我们可以看到这个功能的提供者很好人地把无敌点的特征码给出来了(其实使用的时候由于特征码是直接在游戏内存区域搜索,当然是越短而且越唯一的更好,所以右边E8那串拿来做特征码更好)(不过熟悉汇编的都知道E8其实对应的是CALL指令,不同游戏版本很大可能会不同)

至于最下面的90 90 90其实对应的是汇编的NOP指令(也就是什么也不干的指令)

这个功能的实现原理是直接把原有伤害判定的CALL给NOP掉(也就是不执行调用,自然不会受到伤害判定了)

这种修改方法属于比较简单的方式(因为不像劫持,要申请内存)

至于比较难实现的功能,那就是刚才说到的劫持

在这里我们可以看到明显复杂的修改(其实并不复杂就是了,比较CE原本就是64位进程直接调用64位API就能申请到内存地址)

让我简单说一下何为劫持,劫持也就是把原本要执行的代码强行通过JMP指令转跳到自己申请到的内存地址,然后执行自己的代码后再JMP回去继续执行游戏本身的代码

至于为什么一定要申请内存来放自己的代码(其实这个问题很傻逼,你原来的地方没有足够空间当然要申请一个空间放自己的代码啊)

基本上这里修改原理我们先过了一遍,接下来主要讲的是易语言如何实现

0x05 通过易语言实现

易语言调用x64call的汇编代码实现其实网络上早就有人研究并且贴出来了

我们这里直接抄来用就是了(毕竟本文并不是专门讲x64call实现方法的,想知道具体实现方法的大佬自己看原帖就可以了)

那么萌新说,我TM看不懂这些什么鬼东西啊,怎么办啊(别慌,问题不大)

其实真的问题不大,毕竟有人已经把这个实现了并且制作成了一个模块。。是的,我们熟悉的模块,直接引入到自己代码里调用就是了(论易语言的方便之处。。。)

具体要用到的模块。。点这里自己去下载

这里贴一下易语言实现无敌的源码,至于为什么调用的函数刚才说到的模块里没有。。
那是因为x64call和内存搜索的功能我时直接调用我自己写的模块实现的

刚才提到的模块十分强大,注释也很齐全。。所以嘛。。具体怎么写自己摸索hhh(毕竟我也是一个懒人)

至于刚才提到的劫持,看一下下图。。

嗯,这里解释起来似乎有点复杂。。(看得懂的看看不懂的跳吧)

至于Hook_Jmp,这里我贴一下

至于申请内存部分,其实没写过的话坑挺多的,这里我也直接贴

至于下面的红框地址其实就是游戏的ImageBase,至于为什么是每次减65536,是因为内存分配要对其0x10000(也就是十进制65536)

这里用这种方法申请内存主要原因是劫持的指令占用的字节数目比较少

如果不指定要申请的内存地址,通常系统会给你分配低内存,当你劫持转跳到低内存的时候你就知道为什么我这样写了

当然,申请内存部分也有一个坑

你必须要先保留才能提交。。不然会返回错误0xC0000018 STATUS_CONFLICTING_ADDRESSES

嘛,“Get_Ptr_Int64”这个函数其实是用汇编实现的,直接换成易语言内置的函数“取变量数据地址”也是一样的效果

大概实现方法上面也写的差不多了。。还有什么不明白的评论里留言,我看到尽量回就是了。。

0x06 成品

点击下载 密码:123

注:怪物信息是按F键后锁定的怪物,Buff选项进任务后可用

建议:不要联机使用(不过就算你用我也阻止不了你,击杀功能联机会掉线)

武器编辑功能要在更换装备页面用鼠标指向武器才有效果

对于传送功能。。嘛如果没在地图上选点就传送,进虚空后果自负~

九张羊皮纸科技(修改)

背景

昨天晚上,百无聊赖的情况下我打开了某蒸汽启动器(没错,就是Steam)(嗯,我仿佛听见了G胖的笑声)

然后,想起来前几天好像是暑假特卖来着,买买买!!(然而,已经结束了)

于是吧,随便逛一下好了。。就发现了一个正在促销的游戏(-76%,哇好便宜!买!!

没错,就是这款名为九张羊皮纸(Nine Parchments)的游戏

对于我来说,当然不是被游戏玩,而是去玩游戏啦~(是的,无科技不游戏)

那么,下面正式开动吧~

魔改

首先,我们需要知道这个游戏魔改的难易度以及是否值得我们修改

这些信息基本上看一下游戏商店页面就知道了

  • 第一,这是一个单机游戏(当然也可以联机),那么按理说数据是本地的
  • 第二,这个游戏并没有启动VAC反作弊系统(那就不用担心会被封号了)

之后,打开游戏,然后打开我们的万能CE(找基址)吧~

创建角色进入冒险模式看看有没有什么能改的

跟一般角色扮演类游戏差不多,血量、蓝量、还有一个这个游戏特有的瞬移技能次数

找到需要修改的元素后,当然就是看看怎么定位啦~

按下Esc键,我么可以看到一个暂停菜单,这里显示了角色的血量、经验等可修改数据

既然有了当前血量,那我们就可以直接CE搜索了(四字节搜索300)

之后也就是傻瓜操作了,让怪攻击一下(当然,第一关没有怪。。)或者自己打自己一下(嗯,这个游戏是可以自残的)

找个角落,用Q键或者E键选择火球技能(每个角色都不同,第一个角色的火球技能能自残)

然后发射火球,显示扣了50点血,然后就直接切到CE搜250以此类推就行

不出意外只需要搜索一次就只剩下两个地址了,那么直接试着修改一下看看哪一个改完有效果(不会变回去)那么就是正确地址了

之后就是如何开挂的问题了,由于这个值本身并不是一个基址(基址的话初步可以通过看结果框里的地址是不是绿色来判断),我们需要一个手段来让这个值不变动(达到锁血目的)(当然你也可以每次切换关卡搜索血量,然而这显然一个很麻烦的事情)

那么,让我们右键正确的血量地址(注:这个地址直接-4其实就是血量上限,至于我为什么会知道,可以说是开挂的经验吧?),然后选择“找出是什么改写了这个地址”,或者你也可以直接按F6键

弹出一个对话框问是否附加进程,选择“是”,然后我们再切到游戏里自残一下

发现刚才弹出的窗口里多了一条记录,让我们选中它,然后点击右边的“显示反汇编程序”

之后弹出一个窗口,如果你左边显示的是十六进制地址,按照下图选择“显示模块地址”或者按Ctrl+M键

这么做是因为这个程序的“image_base”并不是固定的,所以每次左侧地址都会不同

如果你对汇编语言不太熟悉但是有英语基础,可以直接看下图红色框框的地方(当然如果你英语白痴,那么自行百度看看这句汇编是什么意思吧)

其实这里执行的操作就是复制内存,把寄存器edi的值复制到左边的内存

那么怎么修改呢?我们可以最简单直接“NOP”掉或者也可以按空格键直接把mov改成add(也就是相加)(也就是你被攻击了反而会加血,不过不太推荐这样做,毕竟如果怪多了血量会变得超级高,如果溢出了那就有点意思了hh)

改“NOP”的话直接右键选“使用空指令替换”比较好 ,毕竟这样的话原代码会被保存(方便以后还原)
切游戏自残,发现我们成功无敌了~

那么,以上就是关于这个游戏的修改方法,至于其他功能,一下提供些许搜索思路

地址搜索思路(或者说怎么定位这个地址)

  1. 血量——血量四字节直接搜索 上限为四字节-4
  2. 魔法值——满蓝为浮点值8.0 上限为四字节-4
  3. 瞬移——四字节搜可瞬移次数(右边全满是2,一半是1,空是0)
  4. 当前关卡死亡数(最后通关统计页显示)——四字节搜已死亡数 最后机会后重启关卡不变
  5. 经验——四字节直接搜索 重启关卡不变
  6. 技能点——四字节直接搜索已用天赋点数(一个天赋内),直接改满或者改成很大,只要把剩余天赋点变成负数就其他天赋就能随便点了

以上就是初步思路,怎么改自己发挥(毕竟这游戏我才玩几个小时)

辅助制作

以下用易语言演示一下怎么制作辅助(别问我为啥是易语言,毕竟写挂方便,模块直接引用就完事了)

以锁血为例,这个我是直接改“NOP”
至于上面的基址是这个

这个地址怎么找的上面有讲,其他功能以此类推

至于“写字节集”“十六到十”“十六到字节集”“取模块地址”,这些都是模块功能(模块自己百度找,这里不提供)

后记

首先是上文中提到的锁血功能,其实存在一个BUG,那就是这样改的话怪物也会锁血,不过本文旨在提供一个修改思路,这个问题怎么解决就麻烦自己思考一下了2333~

之后是,这个游戏修改请适度、毕竟改的太变态的话就会没有游戏乐趣了

还有,联机麻烦不要开挂(一来是不要破坏队友游戏体验,二来我也没测试过有没有效果或者会不会有什么问题)

成品(辅助)

点击此处下载 密码:lakwsh

请先开启游戏后再执行辅助,仅支持Win7-Win10系统

如果无法正常开启请检查电脑是否安装了VC运行库