2018上海市大學生網路安全大賽 逆向 cpp

2021-08-31 03:52:40 字數 977 閱讀 1485

一道簡單的逆向,就是兩個函式加密,反著來一遍就行,不用爆破。

for ( i = 0; ; ++i )

for ( i = 0; i <= 3; ++i )

}

#!/usr/bin/env python

#coding=utf-8

la = [153,176,135,158,112,232,65,68,

0x5,0x4,0x8b,0x9a,0x74,0xbc,0x55,0x58,

0xb5,0x61,0x8e,0x36,0xac,0x9,0x59,0xe5,

0x61,0xdd,0x3e,0x3f,0xb9,0x15,0xed,0xd5]

flag=''

def last():

for j in range(4):

for i in range(1,32):

d=la[32-i]

e = la[32-i-1]

f = d^e

la[32-i]=f

def first():

for k in range(len(la)):

#la[i]=(la[i]>>6|4*la[i])^i

la[k]=la[k]^k

la[k]=(la[k]<<6)&0xff|(la[k]>>2)

last()

first()

for i in range(len(la)):

flag+=chr(la[i])

print flag

網上有些writeup寫last()函式時照搬s[j]=s[j-1]|s[j]&(~(s[j]&s[j-1])),其實它就相當於抑或,這個可以自己證明的。
但這題給我的警示是打比賽不要理所當然轉化這種相當的運算公式,如果是錯的,自己都發現不了。。(比如first())

上海大學生網路安全大賽 web write up

這週做了一下,貼出做出來的web題。x th7s is flag flag 首先構造數字46 chr next ord strrev crypt serialize array 有概率得到46 chdir next scandir chr ord strrev crypt serialize arr...

愛滋女大學生網路日記 摘錄

花開花落,每種花都有自己的花期,無論你對它給予多大的希望,它也會枯萎,也會凋謝。生命不也是如此嗎?不管花期長短?我們能做花叢中最艷的那枝就足夠了。用單純的眼光看世界,用真誠的心態和任何人交流,積極,樂觀的態度對待生活。病魔並不可怕,可怕的是你沒有健康的心態,真面生活的勇氣。人生事實上就是乙個大悲劇,...

第四屆上海大學生資訊保安比賽 web2

這道題目是一道 審計題 原始碼 題目思路是 變數覆蓋,反序列化漏洞 看到原始碼裡面有parse str 函式,這個函式如果沒有帶 array 這個引數,將會導致變數被重新賦值 過first 過 var a var give 過 bbb a var give 26bbb me 這裡用 26不能用 是因...