跟着小生学逆向之文件检测

admin 2020年11月20日09:40:50评论9 views字数 1031阅读3分26秒阅读模式

今天小生分享一下刚get到的新技能,文件检测,让我们可以一起在逆向这条路越走越远!工资越来越高!

CRC循环冗余校验的原理

1)、文件检测和CRC的关系

差错校验码:(特征)信息字段和校验字段的长度可以任意选定。

 

2)、循环冗余校验(CRC)的基本原理

根据(N.K)码,生成多项式Gx),进而生成K位信息的校验码。

 

k位信息码后在拼接R位的校验码,整个编码长度为N位,因此这种编码又叫(NK)码,对于一个给定的(NK)码,可以证明存在一个最高次幂为N-R=K多项式Gx)根据(Gx可以生成K位信息的校验码。

 

校验码的具体生成过程为:假设发送信息用信息多项式Cx)表示,将Cx左移R位,则可表示成Cx*2R次方。这样Cx)的右边就会空出R位,这就是校验码的原理。

通过Cx*2R次方除以生成多项式Gx)得到的余数就是校验码。

 

3)、CRC码的生成步骤

 

跟着小生学逆向之文件检测

 

首先,将x的最高次幂为R的生成多项式Gx)转换成对应的R+1位二进制数,将信息码左移R位,相当于对应的信息多项式Cx*2R次方,用生成多项式即二进制数对信息码做除,得到R位的余数,将余数拼到信息码左移后空出的位置,得到完整的CRC码。

 

 

分析代码-CRC校验在apk保护中的作用

对含有CRC循环冗余检测的代码进行分析。

 

CRC校验中有两个关键点,一是要预先确定一个发送端和接收端都用来作为除数的二进制比特串或多项式,二是把原始帧与上面选定的除进行二进制除法运算,计算出FCS即帧校验序列。

CRC校验在apk保护中的作用

我们对含有CRC循环冗余校验的代码进行分析。

首先我们去看一下Oncreate,这里会直接调用checkCRC方法,判断返回值是否为真,不然程序直接finish

 

跟着小生学逆向之文件检测

接着我们去这个CRC定义的地方,首先使用zipfile类定义一个对象,获取zip文件路径,然后使用getentry,指定两个文件得到,zipfile,对象zeze2。使用getCRc方法,返回未压缩条目数据的CRC-32校验和,将CRC校验返回的值和自定义的值进行一个比较,相等则返回true,否则false

 

跟着小生学逆向之文件检测

好了咱们今天给大家讲解了,CRC的原理实现和CRC校验在APK保护中的具体逻辑代码实现。不知道朋友们是不是听明白了呢?不明白的朋友们可以扫码下方二维码进行咨询,当然也有更多工具和学习教程给大家学习,回复1即可!

原文始发于微信公众号(映山红coin安全团队):跟着小生学逆向之文件检测

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年11月20日09:40:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   跟着小生学逆向之文件检测https://cn-sec.com/archives/1056641.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息