逆向的流程和思路

简介: 逆向的流程和思路

对逆向比较陌生的同学,刚拿到样本可能不知道从何入手,我根据自己的逆向经验总结了一下逆向的几个步骤,也可说是逆向的套路。如果你不知道从何处开始爆破,完全可以按照本文的几个步骤来爆破。

抓包

抓包是逆向的第一步,通过抓包可以找到找到你爆破的入口,比如你要让app拥有VIP权限,这是你可以从接口中找到VIP相关的字段,然后用该字段到app代码中搜索。再比如你要调用某个app的接口,而这个接口是加密的,那么你也可以从接口中找到加密的字段,然后用该字段到app代码中搜索。

抓包也是有很多学问的,有的app不会让你轻易的抓到包的,具体的内容关注后面的文章。

反编译

上文说了,抓包后拿着关键字到代码中搜索,怎么拿到app的代码呢?就需要反编译了。有的app可以直接反编译成功,但大部分的app都是加壳的,这时想拿到代码就需要脱壳。市面上也有好多可以自动脱壳的应用,知识星球中也有发出相关的应用,这些自动脱壳的应用一般只能脱免费的壳,如果加的壳是企业版的话就不能脱成功了,就需要自己手动脱壳了,相关内容在后面的文章会发出。

Hook

拿到关键字到代码中搜索,搜索出来的结果会有好多,那怎么确定哪一部分代码是我们需要的呢?可以自己排除一部分,比如一些关键字在系统的api种,就不需要关注,我们要关注的就是在应用包名下的那些关键字相关的代码。包名下关键字的代码也可能出现在好多方法中,怎么确定哪个方法是关键方法呢?这就需要通过Hook具体的方法来排除了。Hook可以使用Frida,由于Frida名气太大,有的应用会监测是否在使用Frida Hook,发现的话就直接崩溃退出。这时可以尝试其他的Hook工具,如算法助手、JSHook等,这些工具在知识星球中也有发出。关于这些工具具体的使用方法,也会在后面的文章中提及。

动态调试

通过Hook找到具体的方法后,想要进一步的了解方法中的业务细节,这是就需要动态调试,通过断点,一步步的调试代码,弄明白方法中的细节。根据调试的文件类型不同,可以分为dex调试和so调试,dex调试的话就是调试smali代码,用到的编辑器为Android Studio,SO调试就是调试汇编,用到的调试工具通常为IDA。

一般dex文件不需要动态调试,找到具体的方法后通过工具将smali文件转换成Java代码,比较容易看懂,也可以直接拿来用。

so文件的话,看起来就比较费力了,稍微有点安全意识的app,一般会把核心的代码放在so文件中,由于so反编译之后是汇编代码,不易读,动态调试的话也有一定的难点,所以都会把核心的加密和算法放在so文件中。其实,我们也不需要费心费力的去调试,知道调用的哪个jni方法后,可以通过unidbg模拟执行so,直接调用相关方法,得到自己想要的内容。

总结

文章介绍了逆向的几个步骤,一般都是按照这个套路来的,写的虽然简单,但是每个步骤里面都有好多学问,都有涉及到怎么对抗反调试。具体的每个步骤设计到的反调试,都会在后面的文章中介绍的,记得持续关注。道高一尺,魔高一丈。技术就是在不断地对抗中提升的。


相关文章
|
芯片
STM32使用HAL库实现RS485通讯(全双工串口)
STM32使用HAL库实现RS485通讯(全双工串口)
1860 0
|
SQL 编解码 网络安全
|
API C++ 计算机视觉
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
|
11月前
|
前端开发 开发者
「Mac畅玩鸿蒙与硬件23」鸿蒙UI组件篇13 - 自定义组件的创建与使用
自定义组件可以帮助开发者实现复用性强、逻辑清晰的界面模块。通过自定义组件,鸿蒙应用能够提高代码的可维护性,并简化复杂布局的构建。本篇将介绍如何创建自定义组件,如何向组件传递数据,以及如何在不同页面间复用这些组件。
258 5
「Mac畅玩鸿蒙与硬件23」鸿蒙UI组件篇13 - 自定义组件的创建与使用
|
机器学习/深度学习 语音技术 开发工具
【独家秘籍】揭秘!如何用阿里云TTS魔法般将文字瞬间变成天籁之音,让你的作品开口说话,震撼人心!
【8月更文挑战第15天】通过阿里云语音合成服务(TTS),开发者可将文本转为自然语音,适用于有声阅读、客服等场景。首先注册并获取AccessKey ID/Secret,然后安装阿里云Python SDK。使用示例代码设置语音参数(如发音人xiaoyun、引擎wavenet),发送请求并保存生成的MP3文件。注意正确认证及异常处理,以确保应用稳定可靠。
873 0
|
算法 PyTorch 计算机视觉
改进的yolov5目标检测-yolov5替换骨干网络-yolo剪枝(TensorRT及NCNN部署)-2
改进的yolov5目标检测-yolov5替换骨干网络-yolo剪枝(TensorRT及NCNN部署)-2
改进的yolov5目标检测-yolov5替换骨干网络-yolo剪枝(TensorRT及NCNN部署)-2
|
前端开发 机器人 测试技术
【RF案例】Web自动化测试弹窗处理
在进行Web自动化测试时,常会遇到不同类型的弹窗,如ajax、iframe、新窗口及alert/Confirm等。这些弹窗可通过Selenium进行定位与处理。其中,ajax弹窗直接定位处理;iframe需先选中再操作;新窗口类似iframe处理;而alert/Confirm则需特殊方法应对。在Robot Framework中,需先定义并获取窗口后使用特定关键字处理。此外,还有部分div弹窗需在消失前快速定位。希望本文能帮助大家更好地处理各类弹窗。
281 6
【RF案例】Web自动化测试弹窗处理
|
8月前
|
机器学习/深度学习 监控
DeepSeek进阶开发与应用3:DeepSeek中的模型调优技术
本文深入探讨了DeepSeek框架中的模型调优技术,涵盖超参数优化、正则化方法及回调函数的应用。通过学习率调整、网格搜索、L1/L2正则化、Dropout、提前停止和模型检查点等具体示例,帮助读者掌握提升模型性能和防止过拟合的方法。文中还介绍了如何使用回调函数监控和调整训练过程,确保模型在大规模数据集上高效训练。
[MoeCTF 2022]chicken_soup 入土为安的第三天
[MoeCTF 2022]chicken_soup 入土为安的第三天
154 0
|
机器学习/深度学习 人工智能 算法
掌握技术分享的艺术:如何有效传递专业知识
在当今信息爆炸的时代,技术性文章的撰写和分享成为了知识传播的重要途径。然而,技术性文章往往因为其专业性和复杂性让许多读者望而却步。本文将探讨如何通过清晰的结构、浅显的语言和生动的例子来提高技术性文章的可读性和吸引力,从而更有效地传递专业知识。