JARVIS OJ re方向部分题解

JARVIS OJ re方向部分题解

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

Androideasy

放进jeb
JARVIS OJ re方向部分题解_第1张图片

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

JARVIS OJ re方向部分题解_第2张图片
关键代码分析
上代码

#include 
#include 
#include 

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

JARVIS OJ re方向部分题解_第3张图片

#include 
#include 
#include 

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

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

Hello

JARVIS OJ re方向部分题解_第4张图片
还是水题
字符串搜索直接找到关键函数
根据题目提示“DD”开头,想都不想直接爆破
有几个要注意的,就是从byte_100001040[1]开始才是所谓的开头
上代码

#include 
#include 
#include 

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就行
下好断点走几步
JARVIS OJ re方向部分题解_第5张图片
这是加密段
上代码

#include 
#include 
#include 

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;
}

JARVIS OJ re方向部分题解_第6张图片
下一题

Classical Crackme

JARVIS OJ re方向部分题解_第7张图片
搜索一下,base64解一下
JARVIS OJ re方向部分题解_第8张图片
下一题

FindKey

winhex查看发现是pyc
改一下反编译一下
JARVIS OJ re方向部分题解_第9张图片
数据太多了就不放出来了

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

数据段复制就行
在这里插入图片描述
下一题

Baby’s Crack

直接上关键代码
JARVIS OJ re方向部分题解_第10张图片
直接爆破吧23333

#include 
#include 
#include 

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 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
JARVIS OJ re方向部分题解_第11张图片
下一题

veryeasy

JARVIS OJ re方向部分题解_第12张图片

#include 
#include 
#include 

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

你可能感兴趣的:(ctf)