前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >逆向中遇到加密算法懵了?

逆向中遇到加密算法懵了?

作者头像
OneTS安全团队
发布2025-02-07 15:40:39
发布2025-02-07 15:40:39
740
举报
文章被收录于专栏:OneTS安全团队OneTS安全团队

声明

本文属于OneTS安全团队成员flatcc的原创文章,转载请声明出处!本文章仅用于学习交流使用,因利用此文信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,OneTS安全团队及文章作者不为此承担任何责任。

在逆向中遇到加密算法,别懵!首先我们需要识别出是哪一种加密算法。本文就先为大家介绍识别加密算法的常用方法!后续会更新识别算法后针对不同加密算法的逆向分析的做法及案例。

常见算法识别

01、特征值识别

很多常见算法,如AES、DES等,在运算过程中会使用一些常量提高运算的效率,这些常量往往被硬编码在程序中。

通过识别这些特征常量,可以对算法进行一个大致的快速判断。下表是常见算法需要使用的常量。

基于此原理的分析工具有IDA的 FindCrypt、PEID 的 Krypto Analyzer 插件等。

02、特征运算识别

当特征值不足以识别出算法时,我们可以深入二进制文件内部,通过分析程序是否使用了某些运算特征来推算程序使用了某些算法。下表是常见的运算特征:

我们可以使用静态分析或动态调试的方法来确定。

03、第三方库识别

算法中可能会使用一些现成的库,对这些库进行针对性的识别可以提高逆向分析的效率,下面是ida识别第三方库的一些方法:

01、字符串识别

许多第三方库会将版权信息和该库使用的一些字符串(如报错信息)以字符串的形式写入库中通过寻找这些字符串可以快速判断使用了哪些第三方库。

02、函数签名识别

在确定了使用的库之后,可以进一步识别具体函数。

🔹当IDA函数列表或者导航栏有大部分青色区域,就属于识别函数,这时可手动应用:shift+f5打开Signature列表,然后insert可以新增匹配的函数签名库。

🔹第三方库函数也有类似上述的方法:

ida文件菜单 -> Load File -> FLIRT Signature file,对应添加就行,若ida没有预置所需识别的库函数签名,这里查https://github.com/push0ebp/sig-databasehttps://github.com/Maktm/FLIRTDB对应签名放进sig文件夹,然后在IDA中加载。

03、二进制对比识别

工具:BinDiff 安装使用:https://www.cnblogs.com/lsdb/p/10543411.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OneTS安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档