首页
社区
课程
招聘
[推荐]生产力分享【openai】
2022-12-5 01:03 13856

[推荐]生产力分享【openai】

2022-12-5 01:03
13856

介绍

昨天下午在肉丝geigei的星球看到有个佬拿ai识别算法直接震惊了,深入玩了一下更震惊了!!!
AI:人类一败涂地
图片描述

注册

使用可以看这篇,因为不支持国内的账号去注册
https://mirror.xyz/0x6E12A28086548B11dfcc20c75440E0B3c10721f5/9O9CSqyKDj4BKUIil7NC1Sa1LJM-3hsPqaeW_QjfFBc

使用姿势♂

https://chat.openai.com/chat
图片描述

这吊毛会伪装 我们GG了

图片描述

还有这里

https://beta.openai.com/playground
图片描述
这里可以设置调节各种功能,比如有的人问题一个比较长的问题ai说两句就断下来了
可以调节一下这里
图片描述

开始各种骚操作

识别算法

发个s_box 直接识别出来啦
图片描述
使用idaf5 直接丢到聊天框里试试
图片描述

优化代码 优化ollvm后的函数

第一次优化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
优化成c代码
__int64 __fastcall sub_131D0(unsigned __int64 a1)
{
  __int64 v1; // x23
  _BOOL4 v2; // w11
  int v3; // w11
  bool v4; // zf
  int v5; // w25
  __int64 v6; // x11
  int v7; // w26
  int v8; // w27
  int v9; // w28
  int v10; // w29
  bool v11; // cf
  unsigned __int64 v12; // x0
  int v13; // w30
  int v14; // w24
  int v15; // w14
  int v17; // [xsp+4h] [xbp-8Ch]
  __int64 v18; // [xsp+8h] [xbp-88h]
  __int64 v19; // [xsp+10h] [xbp-80h]
  bool v20; // [xsp+1Fh] [xbp-71h]
  __int64 v21; // [xsp+20h] [xbp-70h]
  __int64 v22; // [xsp+28h] [xbp-68h]
 
  v2 = ((((x_52 - 1) * x_52) ^ 0xFFFFFFFE) & ((x_52 - 1) * x_52)) == 0;
  v3 = (y_53 < 10 && v2) | (y_53 < 10) ^ v2;
  v4 = v3 == 0;
  if ( v3 )
    v5 = 2139543119;
  else
    v5 = -1006104199;
  if ( v3 )
    v6 = 2857839067LL;
  else
    v6 = 3288863097LL;
  if ( v4 )
    v7 = 417237071;
  else
    v7 = 1552878014;
  if ( v4 )
    v8 = 417237071;
  else
    v8 = 83927717;
  if ( v4 )
    v9 = 1979178465;
  else
    v9 = 1532617102;
  if ( v4 )
    v10 = 1979178465;
  else
    v10 = 1448572860;
  v11 = a1 >= 0x17;
  v12 = (a1 + 16) & 0xFFFFFFFFFFFFFFF0LL;
  if ( v11 )
    v13 = -1204245777;
  else
    v13 = 458200882;
  v14 = -162189241;
  v17 = v6;
  while ( 1 )
  {
    while ( 1 )
    {
      while ( 1 )
      {
        while ( 1 )
        {
          v15 = v14;
          if ( v14 > 417237070 )
            break;
          if ( v14 <= -830847626 )
          {
            v14 = v5;
            if ( v15 != -1437128229 )
            {
              v14 = v10;
              if ( v15 != -1204245777 )
                v14 = -1437128229;
            }
          }
          else if ( v14 > 83927716 )
          {
            v14 = v7;
            if ( v15 != 83927717 )
            {
              v14 = v15;
              if ( v15 == 161196073 )
              {
                v14 = v17;
                v22 = v1;
              }
            }
          }
          else if ( v14 == -830847625 )
          {
            v6 = v18;
            v14 = 2114615228;
          }
          else
          {
            v14 = v13;
          }
        }
        if ( v14 > 1552878013 )
          break;
        if ( v14 > 1448572859 )
        {
          if ( v14 == 1448572860 )
          {
            v18 = v12;
            v14 = v9;
            v19 = v12 - 1;
            v20 = v12 == 24;
          }
          else
          {
            v6 = v19;
            if ( v20 )
              v14 = -830847625;
            else
              v14 = 2114615228;
          }
        }
        else
        {
          v14 = 83927717;
          if ( v15 != 417237071 )
          {
            v14 = v15;
            if ( v15 == 458200882 )
            {
              v1 = 22LL;
              v14 = 161196073;
            }
          }
        }
      }
      if ( v14 > 2114615227 )
        break;
      if ( v14 == 1552878014 )
      {
        v1 = v21;
        v14 = 161196073;
      }
      else
      {
        v14 = 1448572860;
      }
    }
    if ( v14 != 2114615228 )
      break;
    v21 = v6;
    v14 = v8;
  }
  return v22;
}
AI:
int sub_131D0(unsigned long long a1)
{
    int r2, r3;
    unsigned long long r4;
    int v8, v7, v6, v5, v4, v3, v2, v1;
 
    if (x_52 == 1) {
        if (y_53 < 10) {
            v1 = -1006104199;
            v2 = 3288863097;
            v3 = 83927717;
            v4 = 1448572860;
        }
        else {
            v1 = 2139543119;
            v2 = 2857839067;
            v3 = 1552878014;
            v4 = 1532617102;
        }
        v5 = 417237071;
        v6 = 417237071;
        v7 = 1979178465;
        v8 = 1979178465;
    }
    r4 = (a1 + 16) & 0xFFFFFFFFFFFFFFF0;
    if (a1 >= 23) {
        v1 = -1204245777;
    }
    else {
        v1 = 458200882;
    }
    v2 = -162189241;
    for (;;) {
        if (v2 > 417237070) {
            if (v2 > 1552878013) {
                if (v2 > 2114615227) {
                    break;
                }
                if (v2 == 1552878014) {
                    r2 = r4;
                    v2 = 161196073;
                    continue;
                }
                v2 = 1448572860;
                continue;
            }
            if (v2 > 1448572859) {
                if (v2 == 1448572860) {
                    r4 = r2;
                    v2 = v4;
                    continue;
                }
                if (r4 == 24) {
                    v2 = -830847625;
                    continue;
                }
                r2 = r4;
                v2 = 2114615228;
                continue;
            }
            if (v2 > 83927716) {
                if (v2 == 83927717) {
                    v2 = v3;
                    continue;
                }
                r2 = r4;
                v2 = 161196073;
                continue;
            }
            if (v2 == -830847625) {
                r2 = r4;
                v2 = 2114615228;
                continue;
            }
            v2 = v5;
            continue;
        }
        if (v2 <= -830847626) {
            if (v2 == -1437128229) {
                v2 = v8;
                continue;
            }
            if (v2 == -1204245777) {
                v2 = v7;
                continue;
            }
            v2 = v1;
            continue;
        }
        if (v2 == -162189241) {
            v2 = v6;
            continue;
        }
        if (v2 == 161196073) {
            r2 = 22;
            v2 = v2;
            continue;
        }
        v2 = v1;
    }
    return r2;
}
 
Human:

第二次优化 很显然这样下去我们要被优化了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
去除没意义的分支
int sub_131D0(unsigned long long a1)
{
    int r2, r3;
    unsigned long long r4;
    int v8, v7, v6, v5, v4, v3, v2, v1;
 
    if (x_52 == 1) {
        if (y_53 < 10) {
            v1 = -1006104199;
            v2 = 3288863097;
            v3 = 83927717;
            v4 = 1448572860;
        }
        else {
            v1 = 2139543119;
            v2 = 2857839067;
            v3 = 1552878014;
            v4 = 1532617102;
        }
        v5 = 417237071;
        v6 = 417237071;
        v7 = 1979178465;
        v8 = 1979178465;
    }
    r4 = (a1 + 16) & 0xFFFFFFFFFFFFFFF0;
    if (a1 >= 23) {
        v1 = -1204245777;
    }
    else {
        v1 = 458200882;
    }
    v2 = -162189241;
    for (;;) {
        if (v2 > 417237070) {
            if (v2 > 1552878013) {
                if (v2 > 2114615227) {
                    break;
                }
                if (v2 == 1552878014) {
                    r2 = r4;
                    v2 = 161196073;
                    continue;
                }
                v2 = 1448572860;
                continue;
            }
            if (v2 > 1448572859) {
                if (v2 == 1448572860) {
                    r4 = r2;
                    v2 = v4;
                    continue;
                }
                if (r4 == 24) {
                    v2 = -830847625;
                    continue;
                }
                r2 = r4;
                v2 = 2114615228;
                continue;
            }
            if (v2 > 83927716) {
                if (v2 == 83927717) {
                    v2 = v3;
                    continue;
                }
                r2 = r4;
                v2 = 161196073;
                continue;
            }
            if (v2 == -830847625) {
                r2 = r4;
                v2 = 2114615228;
                continue;
            }
            v2 = v5;
            continue;
        }
        if (v2 <= -830847626) {
            if (v2 == -1437128229) {
                v2 = v8;
                continue;
            }
            if (v2 == -1204245777) {
                v2 = v7;
                continue;
            }
            v2 = v1;
            continue;
        }
        if (v2 == -162189241) {
            v2 = v6;
            continue;
        }
        if (v2 == 161196073) {
            r2 = 22;
            v2 = v2;
            continue;
        }
        v2 = v1;
    }
    return r2;
}
 
AI:
int sub_131D0(unsigned long long a1)
{
    int r2, r3;
    unsigned long long r4;
    int v1;
 
    r4 = (a1 + 16) & 0xFFFFFFFFFFFFFFF0;
    if (a1 >= 23) {
        v1 = -1204245777;
    }
    else {
        v1 = 458200882;
    }   
    if (r4 == 24) {
        v1 = -830847625;
    }
 
    r2 = r4;
    return r2;
}

再来一个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
__int64 __fastcall sub_1900C(__int64 result)
{
  unsigned int v1; // w25
  int v2; // w27
  int v3; // w26
  int v4; // w26
  bool v5; // zf
  _BOOL4 v6; // w26
  int v7; // w28
  _BOOL4 v8; // w26
  _BOOL4 v9; // w26
  _BOOL4 v10; // w26
  _BOOL4 v11; // w26
  __int64 v12; // [xsp+8h] [xbp-68h]
  bool v13; // [xsp+19h] [xbp-57h]
  bool v14; // [xsp+1Ah] [xbp-56h]
  bool v15; // [xsp+1Bh] [xbp-55h]
  unsigned int v16; // [xsp+1Ch] [xbp-54h]
 
  v1 = ~((x_32 - 1) * x_32) | 0xFFFFFFFE;
  v13 = v1 == -1;
  v2 = 1784382885;
  v14 = y_33 < 10;
  while ( 1 )
  {
    while ( 1 )
    {
      while ( 1 )
      {
        while ( 1 )
        {
          v3 = v2;
          if ( v2 > 426583910 )
            break;
          if ( v2 > -264856942 )
          {
            if ( v2 == -264856941 )
            {
              v10 = ((((x_32 - 1) * x_32) ^ 0xFFFFFFFE) & ((x_32 - 1) * x_32)) == 0;
              if ( (y_33 < 10 && v10) | (y_33 < 10) ^ v10 )
                v2 = 426583911;
              else
                v2 = 1779832790;
            }
            else if ( v2 == 137437904 )
            {
              v15 = v16 < 3;
              v11 = ((((_BYTE)x_32 - 1) * (_BYTE)x_32) & 1) == 0;
              if ( (y_33 < 10 && v11) | (y_33 < 10) ^ v11 )
                v2 = -1759043329;
              else
                v2 = 208888353;
            }
            else
            {
              v2 = 137437904;
            }
          }
          else if ( v2 == -1759043329 )
          {
            if ( v15 )
              v2 = 778267431;
            else
              v2 = -264856941;
          }
          else if ( v2 == -1528273384 )
          {
            v12 = result;
            v8 = ((((_BYTE)x_32 - 1) * (_BYTE)x_32) & 1) == 0;
            if ( (y_33 < 10 && v8) | (y_33 < 10) ^ v8 )
              v2 = 1048288643;
            else
              v2 = 831000698;
          }
          else
          {
            v16 = v1;
            v4 = (x_32 - 1) * x_32;
            v5 = ((v4 ^ 0xFFFFFFFE) & v4) == 0;
            v6 = ((v4 ^ 0xFFFFFFFE) & v4) != 0;
            v7 = v5;
            if ( (y_33 < 10) ^ v7 | (y_33 <= 9 && !v6) )
              v2 = 137437904;
            else
              v2 = 208888353;
          }
        }
        if ( v2 > 1048288642 )
          break;
        if ( v2 == 426583911 )
        {
          v9 = (((x_32 - 1) * x_32) & 1) == 0;
          if ( (y_33 < 10 && v9) | (y_33 < 10) ^ v9 )
            v2 = 1342097558;
          else
            v2 = 1779832790;
        }
        else if ( v2 == 778267431 )
        {
          v2 = -450033486;
          *(_QWORD *)(v12 + 8LL * v16) = 0LL;
          v1 = v16 + 1;
        }
        else
        {
          v2 = -1528273384;
        }
      }
      if ( v2 <= 1779832789 )
        break;
      v2 = 426583911;
      if ( v3 != 1779832790 )
      {
        if ( (((v13 && v14) | v13 ^ v14) & 1) != 0 )
          v2 = -1528273384;
        else
          v2 = 831000698;
      }
    }
    if ( v2 != 1048288643 )
      break;
    v1 = 0;
    v2 = -450033486;
  }
  return result;
}
优化一下
AI:
  y_33 < 10 ? v2 = 1342097558 : v2 = 1779832790;
  x_32 & 1 ? v2 = 1048288643 : v2 = 831000698;
  v15 ? v2 = 778267431 : v2 = -264856941;
  v16 < 3 ? v2 = -1759043329 : v2 = 208888353;
 
 
__int64 __fastcall sub_1900C(__int64 result)
{
  int v1; // w25
  int v2; // w28
  bool v3; // zf
  bool v4; // sf
  __int64 v5; // [xsp+8h] [xbp-68h]
  unsigned int v6; // [xsp+1Ch] [xbp-54h]
  signed int v7; // [xsp+30h] [xbp-40h]
 
  v1 = (~(x_32 - 1) * x_32) | 0xFFFFFFFE;
  v7 = 10;
  if ( y_33 < 10 )
  {
    v2 = -264856941;
    if ( !(x_32 & 1) )
      v2 = 831000698;
  }
  else
  {
    v2 = 426583910;
    if ( !(x_32 & 1) )
    {
      v2 = 1779832790;
      if ( v1 == -1 )
        v2 = 1342097558;
    }
  }
  while ( v2 > 426583910 )
  {
    if ( v2 > 1048288642 )
    {
      if ( v2 > 1779832789 )
      {
        v2 = 426583911;
        if ( v1 == -1 )
          v2 = 1342097558;
        else
          v2 = 1779832790;
      }
      else if ( v2 > -450033486 )
      {
        if ( v2 > 831000697 )
        {
          if ( v2 > 1342097558 )
          {
            if ( v2 > 208888353 )
              v2 = 137437904;
          }
          else
          {
            v2 = -1528273384;
          }
        }
        else if ( v2 > -1759043329 )
        {
          if ( v2 > -264856942 )
          {
            if ( v2 > 778267430 )
            {
              if ( v2 == 1779832790 )
              {
                v2 = -450033486;
                v3 = y_33 < v7;
                if ( v3 )
                {
                  v3 = v6 < 3;
                  v4 = (y_33 < v7) ^ v3 | v3;
                  if ( v4 == 1 )
                  {
                    v2 = 778267431;
                    *(_QWORD *)(v5 + 8LL * v6) = 0LL;
                    ++v6;
                  }
                  else
                  {
                    v2 = -1759043329;
                    if ( v3 )
                      v2 = 208888353;
                  }
                }
              }
            }
            else
            {
              v2 = -264856941;
            }
          }
          else
          {
            v2 = -1528273384;
          }
        }
        else
        {
          v2 = -1759043329;
        }
      }
      else
      {
        v2 = -450033486;
        v3 = y_33 < v7;
        if ( v3 )
        {
          v3 = v6 < 3;
          v4 = (y_33 < v7) ^ v3 | v3;
          if ( v4 == 1 )
          {
            v2 = 778267431;
            *(_QWORD *)(v5 + 8LL * v6) = 0LL;
            ++v6;
          }
          else
          {
            v2 = -1759043329;
            if ( v3 )
              v2 = 208888353;
          }
        }
      }
    }
    else if ( v2 > 831000698 )
    {
      if ( v2 > 1342097558 )
      {
        if ( v2 > 1784382884 )
          break;
        v2 = 1048288643;
        if ( v1 == 0 )
          v2 = -450033486;
      }
      else
      {
        v2 = 1342097558;
      }
    }
    else
    {
      v2 = 831000698;
    }
  }
  return result;
}
 
Human:

太过分了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
__int64 __fastcall sub_1900C(__int64 result)
{
  int v2; // w27
  int v3; // w28
  _BOOL4 v4; // w26
  _BOOL4 v5; // w26
  _BOOL4 v6; // w26
  _BOOL4 v7; // w26
  __int64 v8; // [xsp+8h] [xbp-68h]
  bool v9; // [xsp+19h] [xbp-57h]
  unsigned int v10; // [xsp+1Ch] [xbp-54h]
 
  v2 = 1784382885;
  v9 = ((x_32 - 1) * x_32) == -1;
  while ( 1 )
  {
    while ( 1 )
    {
      v3 = v2;
      if ( v2 > 426583910 )
        break;
      if ( v2 > -264856942 )
      {
        if ( v2 == -264856941 )
        {
          v6 = ((((x_32 - 1) * x_32) ^ 0xFFFFFFFE) & ((x_32 - 1) * x_32)) == 0;
          if ( (y_33 < 10 && v6) | (y_33 < 10) ^ v6 )
            v2 = 426583911;
          else
            v2 = 1779832790;
        }
        else if ( v2 == 137437904 )
        {
          v7 = ((((_BYTE)x_32 - 1) * (_BYTE)x_32) & 1) == 0;
          if ( (y_33 < 10 && v7) | (y_33 < 10) ^ v7 )
            v2 = -1759043329;
          else
            v2 = 208888353;
        }
        else
        {
          v2 = 137437904;
        }
      }
      else if ( v2 == -1759043329 )
      {
        if ( v10 >= 3 )
          v2 = 778267431;
        else
          v2 = -264856941;
      }
      else if ( v2 == -1528273384 )
      {
        v8 = result;
        v4 = ((((_BYTE)x_32 - 1) * (_BYTE)x_32) & 1) == 0;
        if ( (y_33 < 10 && v4) | (y_33 < 10) ^ v4 )
          v2 = 1048288643;
        else
          v2 = 831000698;
      }
      else
      {
        v10 = ~((x_32 - 1) * x_32) | 0xFFFFFFFE;
        v4 = (((x_32 - 1) * x_32) ^ 0xFFFFFFFE) & ((x_32 - 1) * x_32) == 0;
        v5 = (((x_32 - 1) * x_32) & 1) == 0;
        if ( (y_33 < 10 && v4 & v5) | (y_33 < 10) ^ (v4 | v5) )
          v2 = 137437904;
        else
          v2 = 208888353;
      }
    }
    if ( v2 > 1048288642 )
      break;
    if ( v2 == 426583911 )
    {
      v5 = (((x_32 - 1) * x_32) & 1) == 0;
      if ( (y_33 < 10 && v5) | (y_33 < 10) ^ v5 )
        v2 = 1342097558;
      else
        v2 = 1779832790;
    }
    else if ( v2 == 778267431 )
    {
      v2 = -450033486;
      *(_QWORD *)(v8 + 8LL * v10) = 0LL;
      v10 = v10 + 1;
    }
    else
    {
      v2 = -1528273384;
    }
  }
  return result;
}
去除没用的分支
AI:
__int64 __fastcall sub_1900C(__int64 result)
{
  int v2; // w27
  int v3; // w28
  _BOOL4 v4; // w26
  _BOOL4 v5; // w26
  __int64 v6; // [xsp+8h] [xbp-68h]
  bool v7; // [xsp+19h] [xbp-57h]
  unsigned int v8; // [xsp+1Ch] [xbp-54h]
 
  v2 = 1784382885;
  v7 = ((x_32 - 1) * x_32) == -1;
  while ( 1 )
  {
    while ( 1 )
    {
      v3 = v2;
      if ( v2 > 426583910 )
        break;
      if ( v2 == 208888353 )
      {
        v2 = 137437904;
      }
      else if ( v2 == -1759043329 )
      {
        if ( v8 >= 3 )
          v2 = 778267431;
        else
          v2 = -264856941;
      }
      else if ( v2 == -1528273384 )
      {
        v6 = result;
        v4 = (((_BYTE)x_32 - 1) * (_BYTE)x_32) & 1 == 0;
        if ( (y_33 < 10 && v4) | (y_33 < 10) ^ v4 )
          v2 = 1048288643;
        else
          v2 = 831000698;
      }
      else
      {
        v8 = ~((x_32 - 1) * x_32) | 0xFFFFFFFE;
        v4 = (((x_32 - 1) * x_32) ^ 0xFFFFFFFE) & ((x_32 - 1) * x_32) == 0;
        v5 = (((x_32 - 1) * x_32) & 1) == 0;
        if ( (y_33 < 10 && v4 & v5) | (y_33 < 10) ^ (v4 | v5) )
          v2 = 137437904;
        else
          v2 = 208888353;
      }
    }
    if ( v2 > 1048288642 )
      break;
    if ( v2 == 426583911 )
    {
      v5 = (((x_32 - 1) * x_32) & 1) == 0;
      if ( (y_33 < 10 && v5) | (y_33 < 10) ^ v5 )
        v2 = 1342097558;
      else
        v2 = 1779832790;
    }
    else if ( v2 == 778267431 )
    {
      v2 = -450033486;
      *(_QWORD *)(v6 + 8LL * v8) = 0LL;
      v8 = v8 + 1;
    }
    else
    {
      v2 = -1528273384;
    }
  }
  return result;
}

呜呜呜

图片描述

反汇编

反汇编

图片描述

代码转译

翻译成frida代码

图片描述

各种语言转换

  1. java翻译成jni函数
    ```
    public static boolean equals(Annotation annotation, Annotation annotation2) {
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Method[] declaredMethods;
    if (annotation == annotation2) {
        return true;
    }
    if (annotation != null && annotation2 != null) {
        Class<? extends Annotation> annotationType = annotation.annotationType();
        Class<? extends Annotation> annotationType2 = annotation2.annotationType();
        Validate.notNull(annotationType, "Annotation %s with null annotationType()", annotation);
        Validate.notNull(annotationType2, "Annotation %s with null annotationType()", annotation2);
        if (!annotationType.equals(annotationType2)) {
            return false;
        }
        try {
            for (Method method : annotationType.getDeclaredMethods()) {
                if (method.getParameterTypes().length == 0 && isValidAnnotationMemberType(method.getReturnType()) && !memberEquals(method.getReturnType(), method.invoke(annotation, new Object[0]), method.invoke(annotation2, new Object[0]))) {
                    return false;
                }
            }
            return true;
        } catch (IllegalAccessException | InvocationTargetException unused) {
        }
    }
    return false;
    }
    翻译成jni函数
    AI:

JNIEXPORT jboolean JNICALL Java_org_apache_commons_lang3_AnnotationUtils_equals
(JNIEnv *env, jclass clazz, jobject annotation, jobject annotation2) {
jclass annotationType = NULL, annotationType2 = NULL;
jmethodID getDeclaredMethods = NULL;
jobjectArray methodsArray = NULL;
jsize arrayLength;
jint i;
jmethodID getReturnType = NULL, invoke = NULL;
jobject returnType = NULL;
jboolean memberEqualsResult;
jboolean result = JNI_FALSE;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
if (annotation == annotation2) {
    result = JNI_TRUE;
    goto exit;
}
 
if (annotation != NULL && annotation2 != NULL) {
    // get annotationType
    annotationType = (*env)->GetObjectClass(env, annotation);
    ValidateNotNull(env, annotationType, "Annotation %s with null annotationType()", annotation);
    annotationType2 = (*env)->GetObjectClass(env, annotation2);
    ValidateNotNull(env, annotationType2, "Annotation %s with null annotationType()", annotation2);
    // compare annotationType
    if (!(*env)->IsSameObject(env, annotationType, annotationType2)) {
        result = JNI_FALSE;
        goto exit;
    }
    // get declared methods
    getDeclaredMethods = (*env)->GetMethodID(env, annotationType, "getDeclaredMethods", "()[Ljava/lang/reflect/Method;");
    methodsArray = (jobjectArray)(*env)->CallObjectMethod(env, annotationType, getDeclaredMethods);
    arrayLength = (*env)->GetArrayLength(env, methodsArray);
    // iterate methods and compare
    for (i = 0; i < arrayLength; i++) {
        jobject method = (*env)->GetObjectArrayElement(env, methodsArray, i);
        // get param type length
        jmethodID getParameterTypes = (*env)->GetMethodID(env, method, "getParameterTypes", "()[Ljava/lang/Class;");
        jobjectArray parameterTypesArray = (jobjectArray)(*env)->CallObjectMethod(env, method, getParameterTypes);
        jsize parameterTypesLength = (*env)->GetArrayLength(env, parameterTypesArray);
        // compare return type
        getReturnType = (*env)->GetMethodID(env, method, "getReturnType", "()Ljava/lang/Class;");
        returnType = (*env)->CallObjectMethod(env, method, getReturnType);
        if (parameterTypesLength == 0 && isValidAnnotationMemberType(env, returnType)) {
            // call method to get return values
            invoke = (*env)->GetMethodID(env, method, "invoke", "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;");
            jobject returnValue1 = (*env)->CallObjectMethod(env, method, invoke, annotation, NULL);
            jobject returnValue2 = (*env)->CallObjectMethod(env, method, invoke, annotation2, NULL);
            // compare return values
            if (!memberEquals(env, returnType, returnValue1, returnValue2, &memberEqualsResult)) {
                // call failed
                result = JNI_FALSE;
                goto exit;
            }
            else {
                // compare failed
                if (memberEqualsResult == JNI_FALSE) {
                    result = JNI_FALSE;
                    goto exit;
                }
            }
        }
    }
    result = JNI_TRUE;
}

exit:
if (annotationType != NULL) {
(env)->DeleteLocalRef(env, annotationType);
}
if (annotationType2 != NULL) {
(
env)->DeleteLocalRef(env, annotationType2);
}
if (methodsArray != NULL) {
(env)->DeleteLocalRef(env, methodsArray);
}
if (returnType != NULL) {
(
env)->DeleteLocalRef(env, returnType);
}
return result;
}
Human:

 

```

结束

目前来看重复性的工作让chatGPT来做已经是可行的了,比如代码的转换,算法识别,优化代码。当然chatGPT并不是万能的他的回答并不一定能做到最优(甚至有可能是错误的)但是chatGPT还是一个非常棒的工具,还有非常多的姿势等待发掘!!


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞7
打赏
分享
最新回复 (17)
雪    币: 2057
活跃值: (4096)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
默NJ 2022-12-5 15:49
2
0
wtf,我要失业了
雪    币: 2378
活跃值: (9195)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
TkBinary 5 2022-12-5 15:57
3
0
牛!!!!. 又增加了一款利器.
雪    币: 1148
活跃值: (3364)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
王麻子本人 2022-12-5 16:25
4
0


现在我懒得弄得逻辑都丢给他了

雪    币: 1148
活跃值: (3364)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
王麻子本人 2022-12-5 17:29
5
0


太好用了 呜呜呜

雪    币: 2649
活跃值: (1541)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hhhaiai 2022-12-6 12:50
6
0
w我靠。。。。这逆向和正向开发都要失业
雪    币: 4484
活跃值: (3017)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
熊猫吃鱼 2022-12-6 13:34
7
0
window.localStorage.removeItem(Object.keys(window.localStorage).find(i=>i.startsWith('@@auth0spajs'))) 输入还是不行、、代理确定是没问题的
雪    币: 8715
活跃值: (8610)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
r0Cat 7 2022-12-6 22:47
8
0
废掉谷歌指日可待
雪    币: 1753
活跃值: (2617)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Nudest 2022-12-6 23:00
9
0
Not available
OpenAI's services are not available in your country.

能注册,可惜不能验证邮箱链接。
雪    币: 16
活跃值: (430)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
zpsemo 2022-12-7 11:26
10
0
谁说逆向丢工作,拿这个东西辅助逆向
雪    币: 1148
活跃值: (3364)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
王麻子本人 2022-12-7 18:57
11
0
Nudest Not available OpenAI's services are not available in your country. 能注册,可惜不能验证邮箱链接。[em_38]
挂代理 挂代理还这样可以换浏览器
雪    币: 1148
活跃值: (3364)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
王麻子本人 2022-12-7 18:59
12
0
目前还是挺好的 但是官网放开的这个模型只训练到了2021年已经很难想象以后会达到什么高度,电影里的人工智能并不遥远了
雪    币: 1148
活跃值: (3364)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
王麻子本人 2022-12-7 19:00
13
0
r0Cat 废掉谷歌指日可待
已经在拿来当谷歌用了 谷歌还要想一下怎么才能搜到 直接问他他能自己思考去解决你要解决的问题
雪    币: 176
活跃值: (943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bluegatar 2022-12-8 04:05
14
0
牛逼的东西
雪    币: 164
活跃值: (726)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
0
r0Cat 废掉谷歌指日可待
那是不可能的 谷歌的 阿法go 更牛逼。
雪    币: 370
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
奶桃 2022-12-12 10:45
16
0
注册成功了,哈哈
雪    币: 370
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
奶桃 2022-12-12 10:50
17
0
我让openAi给我一段代码,他给了,给完后立马删了,说 network error,哈哈是这样吗?
游客
登录 | 注册 方可回帖
返回