上一篇 《 教我兄弟学Android逆向06 用AndroidStudio编写第一个so》我带你用AS编写了第一个so 现在回顾一下 首先我创建了一个myJNI类 里面包含一个Native的sayHello方法 这个方法在native层返回一句话 hello 52pojie! 然后我在java层通过Log函数调用并输入了sayHello方法完成了第一个so的编写。
 课程写到这我已经不再是面向旭一个人了 有很多同学私信我问旭学的怎么样了 找到工作了吗 其实旭已经找到了逆向的工作 待遇还不错 今年七月份回学校拿毕业证 现在正在忙着写毕业论文等学校一堆的事情 当然他学的并不止这些东西。 虽然旭找到了工作 那么课程还会继续更新 后面我还会陆续放出来一些课程。希望大家好好学习 认真学习的人都能找到满意的工作。  
教我兄弟学逆向中的每一课我认为均是一个框架 这是一个抛砖引玉的过程 课程中我不会把东西讲的这么细 我只会教给大家一种破解的思路和实现方式 具体原理请自行百度。
要么学!要么不学!学和不学之间没有中间值 不学就放弃,学就要去认真的学!    --致选择
本节课给大家带来的是so的破解 本节课用到的例子是上节课我带你做的Demo 题目是更改Native方法sayHello的返回值 让它原来返回的hello 52pojie!变成hello world!
那么开始今天的课程
本节课所有到的工具和Demo
IDA
链接: https://pan.baidu.com/s/15uCX8o6tTSSelgG_RN7kBQ 密码:ftie
第六课Demo
链接: https://pan.baidu.com/s/1vKC1SevvHfeI7f0d2c6IqQ 密码:u1an
一 解包
1.使用apktool解包app-debug.apk  
2.关于apktool的使用请看番外
https://www.52pojie.cn/thread-732007-1-1.html
二 打开so文件
1.进入解包后的lib目录找到libJniTest.so并用IDA打开

2.点两次OK进入此页面 点新建

3.找到so并打开它 因为我的机型是支持arm的所以我这里打开的是armeabi文件夹下的so 如果机型是x86模式的那么这里要打开x86模式下的libJniTest.so 
armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
x86: 平板、模拟器用得比较多。
x86_64: 64位的平板。

4.点击打开后会有几个弹框 全部点OK会进入到这样一个界面 说明so已经打开

二 找到字符串hello 52pojie!并修改为 hello world!
1.按住键盘组合键 shift + f12 打开字符串窗口  这个窗口将会列举出so中所包含的所有字符串 因为上节课我们只编写了一个字符串 所以这里只有一个hello 52pojie! 如果打开的是x86的so这里还会有一些so

2.双击进去将会找到hello 52pojie!的内存地址

3.鼠标点在hello 52pojie!字符串上,打开 Hex dump窗口,修改hello 52pojie!对应内存地址的内容
关于字符对应的16进制可以在百度百科搜索ascii码表 找到字符所对应的16进制

4.因为我要把hello 52pojie!修改成hello world! 是不是只要找到每个字符所对应的hex修改就好了 
这里我看到 hello 52pojie!对应的hex是
68 65 6C 6C 6F 20 35 32 70 6F 6A 69 65 21 
我在ascii码表上找到world所对应的Hex是
77 6F 72 6C 64 
所以最终修改成
68 65 6C 6C 6F 20 77 6F 72 6C 64 21 
5.找到所要修改的字符所对应的16进制 右键Edit

6.由于52pojie!比world!多两个字符 这里把多出来的置为00 修改好后 右键Apply changes应用

7.保存修改好后so

8.点击确定后 把修改后的so储存到一个位置

三 替换so并重打包
1.关闭ida 并把armeabi和armeabi-v7a下的libJniTest.so替换成修改后的so 注意这里两个文件夹下的so都要替换  同理 如果是x86模式的 这里要替换x86文件夹的so

2 把修改后的so替换后把app-debug文件夹重打包成new.apk 并进行签名 生成签名后的new_sign.apk

3.将new_sign.apk安装到手机 运行 查看Log成功显示hello world! so破解成功

四.总结
本节课首先下载了ida这款逆向神器   然后通过ida修改so的16进制 成功的将hello 52pojie!修改成了hello world! 完成了对第六课的破解 那么本节课还是一个抛砖引玉的过程
关于IDA的使用可以参考书籍《IDA Pro权威指南》和百度
书籍链接: https://pan.baidu.com/s/1zHkHbeaGZ6wfeRR20Gav-A 密码:3vnu
课后作业
1.完成第六课的课后作业并破解它
2.看完《IDA Pro权威指南》

《教我兄弟学Android逆向07 IDAPro破解第一个so》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 2022-2028年中国干洗行业市场全景调研与投资前景预测报告
  2. 连夜撸了一个简易聊天室
  3. 微信小程序图标不支持html,微信小程序实现自定义加载图标功能
  4. WSS(MOSS)如何修改Rich文本编辑器的宽度
  5. python升级命令出现错误_python - _tkinter.TclError:无法调用“ update”命令:应用程序已被破坏错误 - 堆栈内存溢出...
  6. doxygen如何生成JAVA文档_有用Doxygen生成文档的吗?发一篇Doxygen的使用文档给大家,从网上搜来的。...
  7. http 302错误_http面试题
  8. acess() 判断目录是否存在
  9. Xamarin调用JSON.net来解析JSON
  10. 看不见的“网” ,一文读懂阿里云基础设施网络
  11. 温商机器人企业_16家温商企业上榜“中国民企500强” 青山控股领衔
  12. 循环肿瘤细胞(circulating tumor cells,CTCs)
  13. 美国国土安全部试图商业化的八种网络安全新技术
  14. 数据库表的软硬关联_Jimmy的关系型数据库设计心得 第一版
  15. Pyecharts一文速学-绘制桑基图详解+Python代码
  16. 运行在命令行的微信 cmd-wechat-terminal
  17. 资深运维给你讲:一个小白的运维成长故事
  18. Linux网络代理服务器搭建及使用
  19. 中国象棋(Java版)
  20. 自己做h5页面点击元素块的时候会出现黑色阴影

热门文章

  1. 总结Linux下Redis操作常用命令
  2. 电话号码分身问题,小米笔试真题
  3. ORA-00911错误及解决方法
  4. (干货)结合Scikit-learn介绍几种常用的特征选择方法
  5. JavaScript与JavaQuery
  6. GAN生成对抗网络之生成模型
  7. 向阳而生远离生命中消耗你的人
  8. UDEV模式下添加删除创建ASM磁盘
  9. 野路子?Origin还能这样用!
  10. 智能Ai电话机器人】如何高效率工作的?