逆向某停车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文件,然后使用我自己的密钥把他原来的给替换掉。

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

今天的分享就到这里,如果大家觉得不错的话,记得打赏呦。
欢迎大家支持我的公众号:

逆向某停车app(原创)的更多相关文章
- 逆向工程之App脱壳
http://www.cnblogs.com/ludashi/p/5725743.html iOS逆向工程之App脱壳 本篇博客以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是 ...
- Python 逆向抓取 APP 数据
今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...
- 逆向番茄社区app的rsa加密方式
Parse RSA public and private key pair from string in Java 逆向某APP,发现其大部分配置文件都是加密的 .所以逆向算法并解密 RSA和AES密 ...
- iOS逆向工程之App脱壳
本篇博客以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个“砸壳”的过程就是一个解 ...
- Android无需权限显示悬浮窗, 兼谈逆向分析app
前言 最近UC浏览器中文版出了一个快速搜索的功能, 在使用其他app的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到UC, 显示这个悬浮窗不需要申请android. ...
- ios 逆向编程(环境搭建)
首先如果你想要逆向其他的APP 动态的查看 或者修改人家APP里面的东西 1, 首先要有一台越狱的手机 最好是9.1以下的,因为9.2以上(包括9.2)就不能完美越狱了 2,手机也要5s以上的(因为从 ...
- 爬虫工程师分享:三步就搞定 Android 逆向
本文源于我近期的一次公司内部分享,通过逆向某款 APP 来介绍逆向过程.由于仅作为学习用途,APP 的相关信息会被遮盖,敬请理解. 关于逆向 逆向--包括但不限于通过反编译.Hook 等手段,来解析一 ...
- 浅析手机抓包方法实践(zt)
原文:http://drops.wooyun.org/tips/12467 0x00 摘要 在移动逆向分析以及 App 开发的时候,总会需要对其网络行为进行监控测试,本文总结一些抓包思路,并对其使用方 ...
- 【转】其实你不知道MultiDex到底有多坑
遭遇MultiDex 愉快地写着Android代码的总悟君往工程里引入了一个默默无闻的jar然后Run了一下, 经过漫长的等待AndroidStudio构建失败了. 于是带着疑惑查看错误信息. UNE ...
随机推荐
- E、CSL 的魔法 【模拟】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 有两个长度为 n 的序列,a0,a1,…,an−1a0,a1,…,an−1和 b ...
- python学习day25 正则表达式
4.30-25 正则表达式与re模块 re模块本身是用来操作正则表达式,与正则本身没有关系 正则表达式是指一规则,匹配字符串的规则 1.正则表达式regex 正则表达式regex是指一规则,匹配字符串 ...
- 为什么我不再用 .NET 框架(网摘)
觉得好就拿过来收藏了,保留出处链接-凌风 2017年08月23日 14:51:32 hisense_大致若愚 阅读数:9355 .NET平台很棒.真的很棒.直到它不再那么棒.我为什么不再用.NET?简 ...
- QueryRunner cannot be resolved to a type:关于包不能正常导入的问题
在操作一个功能模块的时候,出现一个问题: 我原则是按着项目指导一步一步走的,但却出现, QueryRunner cannot be resolved to a type,这个问题应该属于Xxx can ...
- #leetcode刷题之路47-全排列 II
给定一个可包含重复数字的序列,返回所有不重复的全排列.示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]] 之前的https://www.cnblogs.com/ ...
- 如何用GDI+画个验证码
如何使用GDI+来制作一个随机的验证码 绘制验证码之前先要引用 using System.Drawing; using System.Drawing.Drawing2D; 首先,先写一个方法来取得验证 ...
- 谈谈对html5的了解
1.良好的移动性,以移动端设备为主. 2.响应式设计,以适应自动变化的屏幕尺寸. 3.支持离线缓存技术,webStorage本地缓存. 4.新增canvas,video,audio等新.标签元素.新增 ...
- 使同一个server上不同port的django应用可在同一个浏览器上打开
如果我们有两个django应用site1和site2同时跑在同一个server的不同端口,同时我们在同一个浏览器的不同tab登录.那么这时就出出现这种情况,当我们登录site2时就会将site1上登录 ...
- laravel5.5源码笔记(一、入口应用的初始化)
laravel的项目入口文件index.php如下 define('LARAVEL_START', microtime(true)); require __DIR__.'/../vendor/auto ...
- rails + MySQL 存储emoji表情 😯
database.yml 加入 charset: utf8mb4 encoding: utf8mb4 collation: utf8mb4_unicode_ci 创建migration ,更改要存放表 ...