那天翻仓库翻到个真红玛瑙安卓老资源,兴冲冲装手机里准备怀旧。结果刚点开图标,画面闪个红logo就直接闪退,连根毛都没看着。
一、先试了全网流传的土法子
照着贴说的先清数据再关网络,屁用没有。又拆了安装包改*,把targetSdkVersion调到22,签名打包装回去——好家伙这回连LOGO都不闪了,直接黑屏卡死。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
二、翻源码翻出鬼门关
干脆把apk拆了个底朝天。在lib文件夹里乱翻的时候,突然瞅见个文件特别扎眼。拿HEX编辑器撬开这玩意儿,直接搜关键词"verifySignature",果然逮到三处校验代码!
- 第一处在0x1A3F位置:把原签名值压进寄存器
- 第二处在0x1B87位置:循环比对新老签名
- 第三处在0x1C22位置:校验失败直接跳闪退
气得我当场把键盘拍得啪啪响:搞汉化的光换文字包有个锤子用,验证机制根本没阉干净!
三、两斧头砍废签名验证
抄起IDA就开干:先把0x1C22位置的跳转指令BNE改成NOP(空操作),接着把0x1B87的循环校验改成MOV R0,#1(直接返回验证通过)。重新打包扔进手机——好家伙!这回直接蹦出汉化版标题界面了!
补丁打完才想明白,这破游戏就跟小区看门大爷似的:
- 改包名相当于换假车牌——被探头抓现行
- 降SDK等于装老头乐上路——直接被交警扣车
- 改so才是真·搞定门卫——往他兜里塞包中华,大爷亲自给你抬杆!
折腾完发现根本不用管签名文件,更不用找原版密钥。拿把螺丝刀捅进机器码里拧两圈,装回手机嗷一声就跑通了。