1. 程式人生 > >Jarvis OJ 一些簡單的re刷題記錄和指令碼

Jarvis OJ 一些簡單的re刷題記錄和指令碼


[61dctf] androideasy

164求解器

50

相反

1

指令碼如下:

s=''

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

for i in range(len(a)):

s+=chr(a[i]^(0x17))

print(s)

[61dctf] stheasy

192求解器

100

相反

2

3

指令碼如下:

s=""

a=[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]

b=[]

c='lk2j9Gh}AgfY4ds-a6QW1#k5ER_T[cvLbV7nOm3ZeX{CMt8SZo]U'

for i in range(len(a)):

b.append(int(a[i]/3-2))

for j in range(len(b)):

s+=c[b[j]]

print (s)

Flag 是下一關的郵箱地址(以 DD 開頭)。

1.Hello.12b9bde7c0c8558a9da42aa1798cafc8


DD - Hello

129 SOLVERS

100

REVERSE


You have solved this Challenge

4

5

指令碼如下:

cip=[0x41, 0x10, 0x11, 0x11, 0x1B, 0x0A, 0x64, 0x67, 0x6A, 0x68, 0x62, 0x68, 0x6E, 0x67, 0x68, 0x6B, 0x62, 0x3D, 0x65, 0x6A, 0x6A, 0x3D, 0x68, 0x4, 0x5, 0x8, 0x3, 0x2, 0x2, 0x55, 0x8, 0x5D, 0x61, 0x55, 0x0A, 0x5F, 0x0D, 0x5D, 0x61, 0x32, 0x17, 0x1D, 0x19, 0x1F, 0x18, 0x20, 0x4, 0x2, 0x12, 0x16, 0x1E, 0x54, 0x20, 0x13, 0x14, 0x0, 0x0]

start=0x100000CB0

end=0x100000C90

v2=((start-end)>>2)^cip[0]

for i in range(55):

cip[i]-=2

cip[i]^=v2

v2+=1

s=''

for j in cip:

s+=chr(j)

print(s)

軟體密碼破解-1

118 SOLVERS

100

REVERSE

請對壓縮包中的程式進行分析並獲取flag。flag形式為xxx-xxxxx_xxxx。

CTF_100_0.rar.b5abee530fee7cdae2f5cdc33bb849e8

s=''

a=[0x28,0x57,0x64,0x6B,0x93,0x8F,0x65,0x51,0xE3,0x53,0xE4,0x4E,0x1A,0xFF]

b=[0x1B,0x1C,0x17,0x46,0xF4,0xFD,0x20,0x30,0xB7,0x0C,0x8E,0x7E,0x78,0xDE]

for i in range(len(a)):

s+=chr(a[i]^b[i])

print(s)

Classical Crackme

293 SOLVERS

100

REVERSE

經典Crackme題目,FLAG就是註冊碼。

CrackMe.rar.4b81595bfc90d446ba30f9c9bb03fb49

簡單base64加密

FindKey

284 SOLVERS

150

REVERSE

FLAG就是你輸入的key

findkey.31a509f4006ba41368dcf963762388bb

指令碼如下

key=''

s=[]

pwda = [188,155,11,58,251,208,204,202,150,120,206,237,114,92,126,6,42]

pwdb = [53,222,230,35,67,248,226,216,17,209,32,2,181,200,171,60,108]

lookup = [196,153,149,206,17,221,10,217,167,18,36,135,103,61,111,31,92,152,21,228,105,191,173,41,2,245,23,144,1,246,89,178,182,119,38,85,48,226,165,241,166,214,71,90,151,3,109,169,150,224,69,156,158,57,181,29,200,37,51,252,227,93,65,82,66,80,170,77,49,177,81,94,202,107,25,73,148,98,129,231,212,14,84,121,174,171,64,180,233,74,140,242,75,104,253,44,39,87,86,27,68,22,55,76,35,248,96,5,56,20,161,213,238,220,72,100,247,8,63,249,145,243,155,222,122,32,43,186,0,102,216,126,15,42,115,138,240,147,229,204,117,223,141,159,131,232,124,254,60,116,46,113,79,16,128,6,251,40,205,137,199,83,54,188,19,184,201,110,255,26,91,211,132,160,168,154,185,183,244,78,33,123,28,59,12,210,218,47,163,215,209,108,235,237,118,101,24,234,106,143,88,9,136,95,30,193,176,225,198,197,194,239,134,162,192,11,70,58,187,50,67,236,230,13,99,190,208,207,7,53,219,203,62,114,127,125,164,179,175,112,172,250,133,130,52,189,97,146,34,157,120,195,45,4,142,139]

for j in range(17):

for i in range(255):

if (i+pwda[j]&255)==lookup[j + pwdb[j]]:

s.append(i)

print(s)

a=17

while a>0:

key+=chr(s[a-1])

a-=1

print(key)