[Reverse]simplecheck-mingo
题目是一个apk,对输入字符串进行验证,使用jeb打开可以发现验证逻辑为:
逻辑很清晰,可爆破验证得到flag为"flag{MAth_i&_GOOd_DON7_90V_7hInK?"(需添加‘}’)。
贴上代码如下:
#include <stdio.h>
int main()
{
int a[] = { 0, 146527998, 205327308, 94243885, 138810487, 408218567, 77866117, 71548549,
563255818, 559010506, 449018203, 576200653, 307283021, 467607947, 314806739, 341420795,
341420795, 469998524, 417733494, 342206934, 392460324, 382290309, 185532945, 364788505,
210058699, 198137551, 360748557, 440064477, 319861317, 676258995, 389214123, 829768461,
534844356, 427514172, 864054312 };
int b[] = { 13710, 46393, 49151, 36900, 59564, 35883, 3517, 52957, 1509, 61207, 63274, 27694,
20932, 37997, 22069, 8438, 33995, 53298, 16908, 30902, 64602, 64028, 29629, 26537, 12026,
31610, 48639, 19968, 45654, 51972, 64956, 45293, 64752, 37108 };
int c[] = { 38129, 57355, 22538, 47767, 8940, 4975, 27050, 56102, 21796, 41174, 63445, 53454,
28762, 59215, 16407, 64340, 37644, 59896, 41276, 25896, 27501, 38944, 37039, 38213, 61842,
43497, 9221, 9879, 14436, 60468, 19926, 47198, 8406, 64666 };
int d[] = { 0, -341994984, -370404060, -257581614, -494024809, -135267265, 54930974, -155841406,
540422378, -107286502, -128056922, 265261633, 275964257, 119059597, 202392013, 283676377,
126284124, -68971076, 261217574, 197555158, -12893337, -10293675, 93868075, 121661845,
167461231, 123220255, 221507, 258914772, 180963987, 107841171, 41609001, 276531381, 169983906, 276158562 };
for(int v0 = 1;v0<35;v0++)
{
for (int i = 0; i < 256; i++)
{
if (a[v0] == b[v0] * i * i + c[v0] * i + d[v0] && a[v0] == b[v0 - 1] * i * i + c[v0 - 1] * i + d[v0 - 1])
{
printf("%c", char(i));
break;
}
}
}
printf("\n");
return 0;
}
打赏还是打残,这是个问题


没有帐号? 立即注册