首页
社区
课程
招聘
[已解决] twofish算法求助 100.00雪花
发表于: 2024-6-2 04:31 4290

[已解决] twofish算法求助 100.00雪花

2024-6-2 04:31
4290

参照这个帖子,需要能解释出twofish的逻辑在代码中是怎么样呈现的,各个步骤对应哪些代码
https://bbs.kanxue.com/thread-281945.htm


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 55
活跃值: (1962)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
2

先按照这个文章脱出easy-dex,https://blog.csdn.net/aa2528877987/article/details/122098972,你会发现在easy-dex里面的MainActivity(图一)

  Object a = b.a(str2.getBytes());

实际上你输入的是在这个b.a方法加密的,随后到b.a方法里面查看,想要识别出来常规算法就得知道算法的特征,类似于常量表之类的,b方法的算法表特征就在第一行(图二)

  private static final byte[][] a = {new byte[]{-87, 103, -77, -24, 4, -3, -93, 118, -102, -110, By

上网查询可知道他是twofish的加密表https://www.oryx-embedded.com/doc/twofish_8c_source.html,java十进制转为十六进制就是这里面的uint8_t q0还有uint8_t q1,具体的加密代码肯定也不是出题者自己写的,搜索github Incorrect key length  twofish(对应着easy-dex的这一部分,直接搜这一部分的也行

    synchronized (b.class) {
           if (bArr == null) {
               throw new InvalidKeyException("Empty key");
           }
           int length = bArr.length;
           if (length != 8 && length != 16 && length != 24 && length != 32) {
               throw new InvalidKeyException("Incorrect key length");
           }

),可以找到原有算法,接下来就是先一一比较大体相似之处,随后确定这个是twofish算法了

2024-9-12 16:17
0
游客
登录 | 注册 方可回帖
返回
//