前言
本篇文章讲述游戏FH原理机制,并且详细的讲解如何,例如:如何更换包名、拆开app、去掉广告、vip等。
一、行为检测
所谓的行为检测简单的来讲就是,超越正常人玩的游戏,游戏的系统就会认定你为辅助或者WG啥的,然后对该帐号进行处理。
1.)人玩的游戏,你点击的屏幕不可能都是一个点,然而按键的模拟点击就是点击某个坐标,例如:Tap 100, 200 这个坐标如果是打开包裹的位置,那么你一场游戏下来点击包裹100次,每次都点这个坐标,很明显,从行为上系统肯定就认定你为辅助操作,会立即处理掉你。这也是很多模拟器的模拟编排点击录制会被FH的原因(雷电模拟器就有录制功能,这种东西就很容易被封)。
2.)你每天做任务的顺序都是一样的,比如都是先师门,再除爆,再历练,再.....,如果是人玩,是做不到每天如此,这种做法也是会被认定为使用了辅助,但认定的时间相对较长,可能要个把月系统会给你封掉。
3.)24小时在线不停的肝,一个人是做不了这种事情滴。
解决办法:首先就是要确保我们脚本的每次点击都是随机的散列值,确保在一定范围点击即可,例如:100,200 这个坐标,95,190 93,210 类似这样,在能保证可以点击到目标的前提下,让坐标随机的散列,然后就是做任务的顺序,也要让他随机起来,先做啥随机就好,最后就是我们脚本中有个 delay 1000 延时等待一定时间,再点击,这个游戏作者也推荐做成随机时间。总之,你要做的像个人在玩。
二、脚本编写不当
所谓的编写不当就是,你写的业务,或者判断有问题,一些突发状况的时候,你循环点击,也会造成FH。
1.)写法一
Do
Delay 1000
If 找到目标图片() Then
// 点击某个地方,然后退出循环
Exit Do
Else
// 点击某个地方,直到目标图片出现
End If
Loop
游戏会经常更新,今天你在这里这个图片是这样,明天可能就不是了,这种循环点击的方式,万一图片你永远找不到,Else下面你会一直点一个坐标,无限的点,这种情况也很容易死。
所以,整套脚本下来,一定要确保,没有循环点击的业务逻辑存在,不然怎么坑的,你自己都不知道,应该改为如下:
Dim 寻找次数 = 0
Do
Delay 1000
If 找到目标图片() Then
// 点击某个地方,然后退出循环
Exit Do
Else
// 点击某个地方,直到目标图片出现
寻找次数 = 寻找次数 + 1
If 寻找次数 > 5 Then
// 找了5次,点了5次还没有找到,说明肯定是出问题了,那么就不要继续找了
Exit Do
End If
End If
Loop
2.)写法二
我们要在商品界面抢购,需要不停刷新来抢购某些材料或者装备
Do
if 找到价格合适的装备() Then
// 点击购买
Exit Do
Else
// 点击商品列表的刷新按钮
End If
Loop
这种情况要快速的刷新,商品列表来抢装备,如果忘了加延迟,会点击的非常快,这种情况也会导致FH,应该改为:
Do
Delay 50 //50毫秒的延迟
if 找到价格合适的装备() Then
// 点击购买
Exit Do
Else
// 点击商品列表的刷新按钮
End If
Loop
总之,要注意循环点击。
三、包名被列入黑名单
每一个安卓的app都是有一个对应的包名作为它的唯一标识,那么如果你的小脚本被列入了某游戏的黑名单,那么一旦检测到直接FH。
1.)检测平台:
就拿PC端的按键精灵来说,你要你电脑上打开某讯的游戏,他的TP安全程序检测到你电脑运行了按键精灵,不管你这个脚本对不对应你这个游戏,你的号直接就没了,这种就属于比较模糊的AOE打击,当然了手机端的会松一点,一般打出来的包名会是 com.anjianjinglingxxxxxxxxxxx.yy 这样,打包程序会给你的包在anjianjingling后面随机一波,但是但是,坑爹的就是anjianjingling这几个东西还在,所以有些大厂也是会通过这种方式干掉你的。
2.)包名被举报
人怕出名,猪怕壮,很多同学做出来自己用爽之后,总会拿出去进行售卖,那么有商业的地方就会有竞争,有些时候你的对手会把你的脚本上传到游戏官网举报了,或者有一些常规玩家,最看不惯那些开辅助的人也会举报,这样的情况下,游戏服务器会记录你脚本的包名com.anjianjinglingxxxxxxxxxxx.yy,一旦有人打开游戏的情况下,打开了这个app,会立刻被干掉,高级一点的大厂,甚至除了包名还记录了你的资源特征,如某易,某讯
解决方案:首先就是修改下包名,把你打出来的包名改了,那么改成什么东西会比较合适?当然是改成市面上比较通用的app了,比如很多作者喜欢的 某度网盘、某共享单车,修改了包名之后,举报啥的就没用了,所以大厂会提高门槛,他会分析你这个包,然后把一些特征提取出来,进行识别,比如说:你资源里面的 某个图片 以及 Lua语言写的你自定义的东西这些都会成为特征(虽然很少遇到)
如何修改包名?如果去掉广告?如何去掉vip限制?原理在这:https://www.52pojie.cn/thread-1023794-1-1.html
上面是我早年写的文章,当然了,这里是简单的修改包名博客:Android 反编译Apk,修改资源,重新打包,签名发布_Wynsbin-CSDN博客_android 反编译重新打包
用到的工具下载地址:apktool+signapk.rar-Android工具类资源-CSDN下载
使用方法如下:
其中 apktool 里面的 apktool_2.3.1.jar 要换成最新的,最新的下载地址: apktool全版本下载地址
下载好后在 apktool.bat 中替换 编辑 apktool.bat 修改 apktool jar 的版本号,这个版本号对应你自己下载的版本号。
我写博客的时候看到的最新版本是 2.6.0
@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
chcp 65001 2>nul >nul
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0\apktool_2.6.0.jar" %*
jadx 就是用于反编译的一个工具,没啥实质性的用处,就是看看而已
2.开搞
首先把目标apk复制到apktool根目录中, 名称改为 test.apk
apktool 文件夹下 cmd 刷出命令框,然后输入命令 : apktool.bat d -f test.apk -o test
当然遇到layout-22资源无法重新打包回去的情况,用这命令:apktool.bat d -rf test.apk -o test
运行完成之后,生成一个test的文件夹,生成之后到文件夹下去修改想要修改的东西然后再运行命令将其打包
重新打包命令: apktool.bat b test
当然遇到layout-22资源无法重新打包回去的情况,用这命令:apktool.bat b -f test
说明下,这里的 apktool.bat xxxxx 看源码可知: 可以直接用 java -jar 命令写,如最后的打包:
java -jar apktool_2.4.0.jar b test
3.重新签名
第二步中的第二个命令运行完成之后,会生成 build 跟 dist 文件夹, 把 dist 文件夹中的 test.apk 复制到 Aoto-sign 目录下
然后运行命令进行打包, 打包命令: java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test_signed.apk
四、终极奥义
其实这个方案我并不是非常想说的,但是既然是付费专栏,总是需要拿出点硬货不是,虽然猥琐,唉。。。。
1.)偷梁换柱,到市面上去找一些比较成熟,比较牛皮的辅助,把他下载下来,然后用工具拆开他的包,然后换上你的代码,这样,功能是你的,壳是人家经过精心的防御处理的、去掉了广告的、去掉了vip限制的,你的成本几乎为零,还阔以非常简单舒服的用上非常好的防御系统,简直不要太招人恨。。。
1.获取比较优秀的脚本apk
1.1 世面上比较流行的某度云盘/某拜单车/某享单车等伪装破解完好的应用包 apk
2.拆开对应的apk
2.1 这里使用伪装成 某度网盘 的apk做一下讲解
2.2 使用apktool1 工具将其拆开得到如下文件:
2.3 assets 文件夹中的这7个文件其实就是你脚本打出来的逻辑脚本,用记事本打开不出所料已经使用了非对称加密,但无所谓,我们只需要将我们的脚本打包,然后用apktool1 拆开,找到这个目录把目录中的这7个文件复制,替换到别人的 assets 里,然后再打包回去签名就完成了偷梁换柱。
3.版本号以及版本名称的修改
3.1 打开文件夹下的 AndroidManifest.xml 文件, 修改对应的 android:versionCode="1" android:versionName="1.1.0"
4.更换完成之后
4.1 更换完成之后, 虽然启动之后脚本就是已经完美伪装并且去掉广告的脚本,但是弹出的自动更新是别人的自动更新,所以我们要换成自己的自动更新
good某度网盘框架基础包中就修改成了自己的自动更新,只需要更换assets文件夹中的脚本文件就能完美打出一个自己的应用包
下载地址: 链接:百度网盘 请输入提取码 提取码:j9lz
特别说明:文章仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。