zoukankan      html  css  js  c++  java
  • 逆向某停车app(原创)

          最近一直在做python开发的事情,信息安全方面做得很少,也是"蛋蛋"的忧伤呀。今天有朋友请我帮忙,将一个app里的文字和图标替换一下,花了一下午和一晚上的时间搞了一下,主要是图标的PS很伤脑筋,弱项呀。。。满眼都是泪。。。。。。只能慢慢的做了。。。

          先把工具更新一下,发现AndroidKiller_v1.3已经发布一段时间,看来真是好久没搞了。。。把apk拖进去进行反编译。

         AndroidKiller提供了很好的搜索和替换功能,所以文本替换变得极其的方便。

      替换文字极其方便,替换图标稍微麻烦一点,首先找到对应16进制ID,再找到布局文件,接着找到图标,最后PS修改一下,改一下布局,就OK了,技术上不复杂,就是费时间。

     

     

            当然这不是我们几天说的重点,咱们讨论的是反编译,修改,打包,签名,这一系列工作之后遇到的难点。

     

            这个停车app在我改完之后,能在手机上安全运行,不出现异常,以为就要大功告成的时候。我的朋友发现了问题,就是百度地图显示不出来了。。。

    此番逆向的难度也就在这个地方了。怎么解决这个问题呢?

     

            既然是百度地图显示不出来,可以判断出百度地图进行了校验,反编译后的app和原app最大的不同是签名,差不多可以肯定是校验了签名。幸亏之前做过两三年的android开发,了解过百度地图的开发,这次发挥了作用。看来要搞好信息安全,学会开发是基本功呀。废话不多说,既然确定了秘钥问题,那咱们就去 百度地图开发者中心 去解决问题。

           登录百度地图开发者中心,注册成开发者。我已经注册完成了。

       大家注意到图中这句话了吗!!!

      百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制。您需申请密钥(key)后, 才可使用百度地图Android SDK。

          由此看来咱们的猜测是对的,是通过密钥进行判断,是否被允许使用百度地图SDK。咱们看一下,密钥是怎么生成的,怎么放到程序中校验的。

           http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key

    这就是申请密钥的整个流程,密钥的生成主要和数字签名(SHA1)和包名有关。

    包名咱们可以在manifest文件中找到。

    由于咱们使用的是AndroidKiller的签名文件(原程序的也搞不到。。。),所以数字签名(SHA1)就使用AndroidKiller的。

    最后咱们把包名和数字签名填写好,提交之后,就生成咱们自己的应用和密钥。

    那这个密钥应该填写到什么地方呢????

    从开发文档中,咱们可以看到

    好,那咱们就直接找到咱们反编译程序的AndroidManifest文件,然后使用我自己的密钥把他原来的给替换掉。

    当这一切都做完后,打包安装,看效果,可想而知,成功了,地图出来了。

    今天的分享就到这里,如果大家觉得不错的话,记得打赏呦。

    欢迎大家支持我的公众号:

  • 相关阅读:
    Django 聚合与查询集API实现侧边栏
    Django 利用管理器实现文章归档
    Django 查询集简述
    Django 利用 Pagination 简单分页
    Django配置富文本编辑器kindeditor
    php课程---JavaScript与Jquery的区别(转)
    ajax——用ajax写用户注册
    ajax——用ajax写登陆页面
    jQuery——实现弹窗
    jQuery和JS对比
  • 原文地址:https://www.cnblogs.com/qiyeboy/p/5300739.html
Copyright © 2011-2022 走看看