查殼:(沒有加殼)
得知這是32bit檔案
int __cdecl main
(int argc,
const
char
**ar**,
const
char
**envp)
else
if( v6 >2)
else
}else
for( i =
0; i <=1;
++i )if(
*((_byte *
)&v8 +
5* v4 + v5 -41)
==49
)// 通過第51行5 * v4,這是乙個5行5列的迷宮(一共25個字元)
exit(1
);if(
*((_byte *
)&v8 +
5* v4 + v5 -41)
==35)}
}
**分析:
檢視**中的_data_start__
.data:
00402000 __data_start__ db '*11110100001010000101111#',0
// 發現一串疑似地圖的字串
又通過第16~ 20行**,第51~ 53行**,我們能夠知道這是乙個迷宮題。
猜想是地圖
『11110100001010000101111#』,就是走出迷宮的地圖。((_byte )&v8 + 5 * v4 + v5 - 41) == 49,((_byte *)&v8 + 5 * v4 + v5 - 41) == 35,中,49對應的ascii值恰好是』1』,35對應的ascii值恰好是』#』,根據演算法的大意,我們就能知道,若最後結果等於』1』,那麼程式會退出,字最後結果等於』#』,那麼相應的我們就得到了我們flag的對應數字順序.也就是說,我們迷宮的終點是』#』,而在這過程中,我們要避開』1』,就這樣走到我們的終點。
把11110100001010000101111#按5x5的順序擺好
從走到# (1看做是障礙物)
*
1111
01000
01010
00010
1111#
fla 不一樣又不一樣的 木板接水
空地上豎立著n個從左到右排列的木板,它們可以把水擋住,但溢位最邊上木板的水將會流到空地上。已知木板間距都是單位1,現給定每個木板的高度,請求出總共能接住的水量?說明一點,這裡只考慮間距 寬度 和高度,不考慮第三個維度,因此水量是平方單位。木板高度分別是2,1,3,那麼我們可以接住2 2 4平方單位的...
Lock與synchronized是不一樣的
很多編碼者都會說,lock類和synchronized關鍵字用在 塊的併發性和記憶體上時語義 是一樣的,都是保持 塊同時只有乙個執行緒具有執行權。這樣的說法只對了一半,我們以乙個任務提交給多個執行緒執行為例,來看看使用顯式鎖 lock類 和內部鎖 synchronized 關鍵字 有什麼不同。首先定...
我們不一樣
前輩們因自身實際的種種因素的影響而產生的認知,並不一定適用於我們自身。你可能從來不會去想乙個問題 你的觀點,來自 其實,它們絕大部分來自網路,它們或多或少地蠶食了你的判斷力。未來的路要怎麼走,沒有對與錯。有的,只是每乙個選擇所需要承擔的責任。我不想面臨,後之視今亦猶今之視昔的悲哀。我希望,未來回首,...