您的位置:首页 > 其它

JARVIS OJ re方向部分题解

2018-12-28 17:07 183 查看

JARVIS OJ re方向部分题解

闲来没事,把以前写过的题目wp写一下吧
都是简单的哟

Androideasy

放进jeb

a = [113, 123, 118, 112, 108, 94, 99, 72, 38, 68, 72, 87, 89, 72, 36, 118, 100, 78, 72, 87, 121, 83, 101, 39, 62, 94, 62, 38, 107, 115, 106]
flag = ''
for i in a:
flag += chr(i^23)
print flag

不多说啥
下一题

stheasy


关键代码分析
上代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int a[]={0x6C, 0x6B, 0x32, 0x6A, 0x39, 0x47, 0x68, 0x7D, 0x41, 0x67,
0x66, 0x59, 0x34, 0x64, 0x73, 0x2D, 0x61, 0x36, 0x51, 0x57,
0x31, 0x23, 0x6B, 0x35, 0x45, 0x52, 0x5F, 0x54, 0x5B, 0x63,
0x76, 0x4C, 0x62, 0x56, 0x37, 0x6E, 0x4F, 0x6D, 0x33, 0x5A,
0x65, 0x58, 0x7B, 0x43, 0x4D, 0x74, 0x38, 0x53, 0x5A, 0x6F,
0x5D, 0x55, 0x00};
int b[]={0x48, 0x5D, 0x8D, 0x24, 0x84, 0x27, 0x99, 0x9F, 0x54, 0x18,
0x1E, 0x69, 0x7E, 0x33, 0x15, 0x72, 0x8D, 0x33, 0x24, 0x63,
0x21, 0x54, 0x0C, 0x78, 0x78, 0x78, 0x78, 0x78, 0x1B,0x00,0x00};
int c[30]={0};
int i;
for(i=0;i<30;i++)
{
c[i]=a[b[i]/3-2];
printf("%c",c[i]);
}
return 0;
}

下一题

Android Easy

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int a[]={-40, -62, 107, 66, -126, 103, -56, 77, 122, -107, -24, -127, 72, -63, -98, 64, -24, -5, -49, -26, 79, -70, -26, -81, 120, 25, 111, -100, -23, -9, 122, -35, 66, -50, -116, 3, -72, 102, -45, -85, 0, 126, -34, 62, 83, -34, 48, -111, 61, -9, -51, 114, 20, 81, -126, -18, 27, -115, -76, -116, -48, -118, -10, -102, -106, 113, -104, 98, -109, 74, 48, 47, -100, -88, 121, 22, -63, -32, -20, -41, -27, -20, -118, 100, -76, 70, -49, -39, -27, -106, -13, -108, 115, -87, -1, -22, -53, 21, -100, 124, -95, -40, 62, -69, 29, 56, -53, 85, -48, 25, 37, -78, 11, -110, -24, -120, -82, 6, -94, -101};
int b[]={-57, -90, 53, -71, -117, 98, 62, 98, 101, -96, 36, 110, 77, -83, -121, 2, -48, 94, -106, -56, -49, -80, -1, 83, 75, 66, -44, 74, 2, -36, -42, -103, 6, -115, -40, 69, -107, 85, -78, -49, 54, 78, -26, 15, 98, -70, 8, -90, 94, -61, -84, 64, 112, 51, -29, -34, 126, -21, -126, -71, -31, -24, -60, -2, -81, 66, -84, 85, -91, 10, 84, 70, -8, -63, 26, 126, -76, -104, -123, -71, -126, -62, -23, 11, -39, 70, 14, 59, -101, -39, -124, 91, -109, 102, -49, 21, 105, 0, 37, -128, -57, 117, 110, -115, -86, 56, 25, -46, -55, 7, -125, 109, 76, 104, -15, 82, -53, 18, -28, -24};
int c=sizeof(a)/sizeof(int);
int flag[100]={0};
int i=a[0]^b[0];
for(;i<c;i++)
{
flag[i]=a[i]^b[i];
printf("%c",flag[i]);
}
return 0;
}

其实前面几题都很水的难得在后面 比如那个evil exe 下次吧那题wp写了

Hello


还是水题
字符串搜索直接找到关键函数
根据题目提示“DD”开头,想都不想直接爆破
有几个要注意的,就是从byte_100001040[1]开始才是所谓的开头
上代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int a[55]={ 0x41, 0x10, 0x11, 0x11, 0x1B, 0x0A, 0x64, 0x67, 0x6A, 0x68,
0x62, 0x68, 0x6E, 0x67, 0x68, 0x6B, 0x62, 0x3D, 0x65, 0x6A,
0x6A, 0x3D, 0x68, 0x04, 0x05, 0x08, 0x03, 0x02, 0x02, 0x55,
0x08, 0x5D, 0x61, 0x55, 0x0A, 0x5F, 0x0D, 0x5D, 0x61, 0x32,
0x17, 0x1D, 0x19, 0x1F, 0x18, 0x20, 0x04, 0x02, 0x12, 0x16,
0x1E, 0x54, 0x20, 0x13, 0x14};
int flag[55]={0};
int v2,i,temp;
for(v2=0;v2<129;v2++)
{
temp=v2;
for(i=0;i<55;i++)
{
flag[i]=(a[i]-2)^temp;
temp++;
}
if(flag[1]=='D'&&flag[2]=='D')
{
for(i=1;i<55;i++)
printf("%c",flag[i]);
}
}
return 0;
}

下一题

软件密码破解1

用函数搜索GetDlgItemText就行
下好断点走几步

这是加密段
上代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int a[]={0x28,0x57,0x64,0x6b,0x93,0x8f,0x65,0x51
,0xe3,0x53,0xe4,0x4e,0x1a,0xff};
int flag[]={0x1b,0x1c,0x17,0x46,0xf4,0xfd,0x20,0x30,0xb7,0x0c,0x8e,0x7e,0x78,0xde};
int i;
for(i=0;i<14;i++)
{
flag[i]^=a[i];
printf("%c",flag[i]);
}
return 0;
}


下一题

Classical Crackme


搜索一下,base64解一下

下一题

FindKey

winhex查看发现是pyc
改一下反编译一下

数据太多了就不放出来了

flag = ''
for i in range(17):
flag += chr(lookup[i + pwdb[i]] - pwda[i] & 255)
flag = flag[::-1]
print flag

数据段复制就行

下一题

Baby’s Crack

直接上关键代码

直接爆破吧23333

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
char a[]="jeihjiiklwjnk{ljj{kflghhj{ilk{k{kij{ihlgkfkhkwhhjgly";
int i;
int b=sizeof(a)/sizeof(char);
char v7,f;
for(i=0;i<b;i++)
{
for(f=0;f<129;f++)
{
v7=f;
if ( v7 != -1 && v7 )
{
if ( v7 > 47 && v7 <= 96 )
{
v7 += 53;
}
else if ( v7 <= 46 )
{
v7 += v7 % 11;
}
else
{
v7 = 61 * (v7 / 61);
}
}
if(v7==a[i])
{
printf("%c",f);
break;
}
}
}
return 0;
}

跑出来是16进制
在线转一下
出flag

下一题

veryeasy

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int a[36]={0xFB, 0x9E, 0x67, 0x12, 0x4E, 0x9D, 0x98, 0xAB, 0x00, 0x06,
0x46, 0x8A, 0xF4, 0xB4, 0x06, 0x0B, 0x43, 0xDC, 0xD9, 0xA4,
0x6C, 0x31, 0x74, 0x9C, 0xD2, 0xA0};
int b[6]={0xab,0xdd,0x33,0x54,0x35,0xef};
int flag[26]={0};
int i;
for(i=0;i<26;i++)
{
flag[i]=b[i%6]^a[i];
printf("%c",flag[i]);
}
return 0;
}

把这些re水题都写了
下期预告
evil exe

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: