开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2909|回复: 2
收起左侧

[交流] 有空帮我看下,这个是要怎么还原?

[复制链接]
结帖率:100% (1/1)
发表于 2016-8-1 10:07:26 | 显示全部楼层 |阅读模式   福建省福州市
  public static final int m9Decode(byte[] paramArrayOfByte, int[] paramArrayOfInt)
  {
    int i = 8;
    int j = 0;
    if (paramArrayOfByte == null);
    int k;
    for (j = -1; ; j = -2)
    {
      return j;
      k = paramArrayOfByte.length;
      if ((k >= 10) && (paramArrayOfByte[0] == 109) && (paramArrayOfByte[1] == 57) && (paramArrayOfByte[2] == 48))
        break;
    }
    int[] arrayOfInt1 = new int[i];
    System.arraycopy(paramArrayOfInt, 0, arrayOfInt1, 0, i);
    int[] arrayOfInt2 = new int[i];
    System.arraycopy(paramArrayOfInt, i, arrayOfInt2, 0, i);
    byte[] arrayOfByte = new byte[i];
    arrayOfByte[j] = paramArrayOfByte[4];
    arrayOfByte[1] = paramArrayOfByte[5];
    arrayOfByte[2] = paramArrayOfByte[6];
    arrayOfByte[3] = paramArrayOfByte[7];
    arrayOfByte[4] = (byte)((87 + arrayOfByte[0]) % 256);
    arrayOfByte[5] = (byte)((29 + arrayOfByte[1]) % 256);
    arrayOfByte[6] = (byte)((171 + arrayOfByte[2]) % 256);
    arrayOfByte[7] = (byte)((148 + arrayOfByte[3]) % 256);
    int m = 0;
    while (true)
    {
      if (i >= k - 2)
      {
        if ((paramArrayOfByte[(k - 2)] == (byte)(0xFF & (m ^ arrayOfInt1[0]))) && (paramArrayOfByte[(k - 1)] == (byte)(0xFF & (m ^ arrayOfInt1[1]))))
          break;
        j = -3;
        break;
      }
      if (i % 8 == 0)
      {
        arrayOfInt1[j] = ((arrayOfInt1[0] + arrayOfInt2[0] + arrayOfByte[0]) % 256);
        arrayOfInt1[1] = ((arrayOfInt1[1] + arrayOfInt2[1] + arrayOfByte[1]) % 256);
        arrayOfInt1[2] = ((arrayOfInt1[2] + arrayOfInt2[2] + arrayOfByte[2]) % 256);
        arrayOfInt1[3] = ((arrayOfInt1[3] + arrayOfInt2[3] + arrayOfByte[3]) % 256);
        arrayOfInt1[4] = ((arrayOfInt1[4] + arrayOfInt2[4] + arrayOfByte[4]) % 256);
        arrayOfInt1[5] = ((arrayOfInt1[5] + arrayOfInt2[5] + arrayOfByte[5]) % 256);
        arrayOfInt1[6] = ((arrayOfInt1[6] + arrayOfInt2[6] + arrayOfByte[6]) % 256);
        arrayOfInt1[7] = ((arrayOfInt1[7] + arrayOfInt2[7] + arrayOfByte[7]) % 256);
      }
      int n = paramArrayOfByte[i] ^ arrayOfInt1[(i % 8)];
      paramArrayOfByte[i] = (byte)(n & 0xFF);
      m ^= n;
      i++;
    }
  }

这个是反编译出来的,有几处逻辑出问题了,大家帮忙看看
结帖率:62% (33/53)

签到天数: 6 天

发表于 2016-8-3 14:29:57 | 显示全部楼层   贵州省贵阳市
看不懂啊!!!!
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
 楼主| 发表于 2016-8-1 10:11:43 | 显示全部楼层   福建省福州市
.method public static final m9Decode([B[I)I
    .locals 13

    .prologue
    const/4 v12, 0x3

    const/16 v1, 0x8

    const/4 v11, 0x2

    const/4 v10, 0x1

    const/4 v0, 0x0

    .line 172
    if-nez p0, :cond_1

    .line 173
    const/4 v0, -0x1

    .line 224
    :cond_0
    :goto_0
    return v0

    .line 175
    :cond_1
    array-length v3, p0

    .line 176
    const/16 v2, 0xa

    if-lt v3, v2, :cond_2

    aget-byte v2, p0, v0

    const/16 v4, 0x6d

    if-ne v2, v4, :cond_2

    aget-byte v2, p0, v10

    const/16 v4, 0x39

    if-ne v2, v4, :cond_2

    aget-byte v2, p0, v11

    const/16 v4, 0x30

    if-eq v2, v4, :cond_3

    .line 177
    :cond_2
    const/4 v0, -0x2

    goto :goto_0

    .line 182
    :cond_3
    new-array v4, v1, [I

    .line 183
    invoke-static {p1, v0, v4, v0, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 185
    new-array v5, v1, [I

    .line 186
    invoke-static {p1, v1, v5, v0, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 189
    new-array v6, v1, [B

    .line 190
    const/4 v2, 0x4

    aget-byte v2, p0, v2

    aput-byte v2, v6, v0

    .line 191
    const/4 v2, 0x5

    aget-byte v2, p0, v2

    aput-byte v2, v6, v10

    .line 192
    const/4 v2, 0x6

    aget-byte v2, p0, v2

    aput-byte v2, v6, v11

    .line 193
    const/4 v2, 0x7

    aget-byte v2, p0, v2

    aput-byte v2, v6, v12

    .line 195
    const/4 v2, 0x4

    aget-byte v7, v6, v0

    add-int/lit8 v7, v7, 0x57

    rem-int/lit16 v7, v7, 0x100

    int-to-byte v7, v7

    aput-byte v7, v6, v2

    .line 196
    const/4 v2, 0x5

    aget-byte v7, v6, v10

    add-int/lit8 v7, v7, 0x1d

    rem-int/lit16 v7, v7, 0x100

    int-to-byte v7, v7

    aput-byte v7, v6, v2

    .line 197
    const/4 v2, 0x6

    aget-byte v7, v6, v11

    add-int/lit16 v7, v7, 0xab

    rem-int/lit16 v7, v7, 0x100

    int-to-byte v7, v7

    aput-byte v7, v6, v2

    .line 198
    const/4 v2, 0x7

    aget-byte v7, v6, v12

    add-int/lit16 v7, v7, 0x94

    rem-int/lit16 v7, v7, 0x100

    int-to-byte v7, v7

    aput-byte v7, v6, v2

    move v2, v0

    .line 202
    :goto_1
    add-int/lit8 v7, v3, -0x2

    if-lt v1, v7, :cond_5

    .line 221
    add-int/lit8 v1, v3, -0x2

    aget-byte v1, p0, v1

    aget v5, v4, v0

    xor-int/2addr v5, v2

    and-int/lit16 v5, v5, 0xff

    int-to-byte v5, v5

    if-ne v1, v5, :cond_4

    add-int/lit8 v1, v3, -0x1

    aget-byte v1, p0, v1

    aget v3, v4, v10

    xor-int/2addr v2, v3

    and-int/lit16 v2, v2, 0xff

    int-to-byte v2, v2

    if-eq v1, v2, :cond_0

    .line 222
    :cond_4
    const/4 v0, -0x3

    goto :goto_0

    .line 203
    :cond_5
    rem-int/lit8 v7, v1, 0x8

    if-nez v7, :cond_6

    .line 205
    aget v7, v4, v0

    aget v8, v5, v0

    add-int/2addr v7, v8

    aget-byte v8, v6, v0

    add-int/2addr v7, v8

    rem-int/lit16 v7, v7, 0x100

    aput v7, v4, v0

    .line 206
    aget v7, v4, v10

    aget v8, v5, v10

    add-int/2addr v7, v8

    aget-byte v8, v6, v10

    add-int/2addr v7, v8

    rem-int/lit16 v7, v7, 0x100

    aput v7, v4, v10

    .line 207
    aget v7, v4, v11

    aget v8, v5, v11

    add-int/2addr v7, v8

    aget-byte v8, v6, v11

    add-int/2addr v7, v8

    rem-int/lit16 v7, v7, 0x100

    aput v7, v4, v11

    .line 208
    aget v7, v4, v12

    aget v8, v5, v12

    add-int/2addr v7, v8

    aget-byte v8, v6, v12

    add-int/2addr v7, v8

    rem-int/lit16 v7, v7, 0x100

    aput v7, v4, v12

    .line 209
    const/4 v7, 0x4

    const/4 v8, 0x4

    aget v8, v4, v8

    const/4 v9, 0x4

    aget v9, v5, v9

    add-int/2addr v8, v9

    const/4 v9, 0x4

    aget-byte v9, v6, v9

    add-int/2addr v8, v9

    rem-int/lit16 v8, v8, 0x100

    aput v8, v4, v7

    .line 210
    const/4 v7, 0x5

    const/4 v8, 0x5

    aget v8, v4, v8

    const/4 v9, 0x5

    aget v9, v5, v9

    add-int/2addr v8, v9

    const/4 v9, 0x5

    aget-byte v9, v6, v9

    add-int/2addr v8, v9

    rem-int/lit16 v8, v8, 0x100

    aput v8, v4, v7

    .line 211
    const/4 v7, 0x6

    const/4 v8, 0x6

    aget v8, v4, v8

    const/4 v9, 0x6

    aget v9, v5, v9

    add-int/2addr v8, v9

    const/4 v9, 0x6

    aget-byte v9, v6, v9

    add-int/2addr v8, v9

    rem-int/lit16 v8, v8, 0x100

    aput v8, v4, v7

    .line 212
    const/4 v7, 0x7

    const/4 v8, 0x7

    aget v8, v4, v8

    const/4 v9, 0x7

    aget v9, v5, v9

    add-int/2addr v8, v9

    const/4 v9, 0x7

    aget-byte v9, v6, v9

    add-int/2addr v8, v9

    rem-int/lit16 v8, v8, 0x100

    aput v8, v4, v7

    .line 215
    :cond_6
    aget-byte v7, p0, v1

    .line 216
    rem-int/lit8 v8, v1, 0x8

    aget v8, v4, v8

    xor-int/2addr v7, v8

    .line 217
    and-int/lit16 v8, v7, 0xff

    int-to-byte v8, v8

    aput-byte v8, p0, v1

    .line 218
    xor-int/2addr v2, v7

    .line 202
    add-int/lit8 v1, v1, 0x1

    goto/16 :goto_1
.end method
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表