1. 程式人生 > >(未完)Writeup of Take the maze (reverse) in BugKu

(未完)Writeup of Take the maze (reverse) in BugKu

好題(可惜我還沒做出來,只做到一半)

簡述一下邏輯吧,首先觀察程式,main函式調F5虛擬碼失敗,看看函式尾是不是要修改棧指標。果然,修改棧指標後,跳出了F5虛擬碼。

觀察一下main函式的邏輯:

  開頭有一個反除錯,動調改跳轉過了它,接下來進入一個功能不明的函式(猜測為加密函式),然後,動態除錯竟然終止了……GG

  然後開始靜態分析,在輸出‘succeed’語句前的if條件中有一個函式,進入這個函式觀察程式碼邏輯,發現三個步驟:

    首先是5個case,隨後是label後的11個case,走後是4個case;

    發現一個可疑字串‘delru0123456789’,且前五個case對應著數字01234,後11個case對應著56789abcdef,但是這11個case之前有個-53的操作,於是這11個case相當於分成了0,1,2,3,4,5,6,7,8,9,10這11種情況(emmm對16進位制數字的操作);

    最後4個case每個case下都各自有一個函式,不難發現這四個函式中都藏有若干陣列,分析邏輯後依次異或,得到由‘0’與‘1’組成的26*12的陣列(應該就是map),再對4個case後所接的數值進行判斷,發現驚喜——‘dlru’(down,left,right,up)

    於是判斷第一層case的5個字元(有個指向可疑陣列的‘e’,暫時不知道是什麼用途)起到了確定方向的作用,而第二層case的11個字元則是代表著步長,從0道10

    成功逆推出走迷宮路徑代表的字串,接下來,就要直面一開始碰到的加密函數了。

 

GG,果然沒懟出來。悄悄問了一波學長,學長說硬懟位元組碼解析什麼的太浪費時間(手動滑稽),不如來一發爆破啊(恍然大悟臉)

(複習四級去了,四級考完去爆破)

(未完待·續)

相關推薦

Writeup of Take the maze (reverse) in BugKu

好題(可惜我還沒做出來,只做到一半) 簡述一下邏輯吧,首先觀察程式,main函式調F5虛擬碼失敗,看看函式尾是不是要修改棧指標。果然,修改棧指標後,跳出了F5虛擬碼。 觀察一下main函式的邏輯:

【Python】正則表達式1

pes mmu get regular rop 則表達式 line out github 1、正則表達式唯一的用途就是在文本中匹配和尋找模式,模式可以簡單,也可以復雜。 2、Regexr 這個網站很個性的就是,有一個community標簽,打開後可以看到評分由高到低

Python基礎day-11[內置函數,遞歸,匿名函數]

oat 讀寫 磁盤 自動 信息 map() instance 冒號 匿名 內置函數: abs() : 返回數字的絕對值。參數可以是整數或浮點數,如果參數是復數,則返回復數的模。 print(abs(0.2)) print(abs(1)) print(abs(-4)) pr

centos中編譯安裝nginx+mysql +php

net conf ftw tar 解壓 ocs org sql nbsp 參考地址:http://www.cnblogs.com/htian/p/5728599.html 去官網找到PCRE,並下載http://www.pcre.org/wget ftp://ftp.csx

elasticsearch aggregation 過程

elasticsearch aggregation 過程在查詢過程中,ES是將整個查詢分成幾個階段的,大體如下:QueryPhaserescorePhasesuggestPhaseaggregationPhaseFetchPhase對於全文檢索,可能還有DFSPhase。從源代碼QueryPhase 類可以看

Python第四天

刪除 back del -c remove strong 數據類型 切片 ron 一、拾遺 1、在Python中數據又稱為對象,每創建一個對象都會創建三個屬性: (1)身份:id   is 用來比較id,id一樣,type和value肯定一樣 (2)類型:type 

低俗小說

個人 出租車 事情 回來 自己 something 是個 round 提醒 簡單介紹:這個筆記是看低俗小說時候跟著刷的劇情,有事耽擱沒有刷完,整部電影充滿了細節 pulp fiction 低俗小說開場:一對情侶準備搶劫咖啡店,搶劫咖啡店的顧客錢包1.兩個殺手出場,談到大佬馬

導入模塊方式盡量少用from xx import *以及包的定義,跨目錄運行包和模塊

sys.path mod 默認 尋找 spa rom bsp 自己 pan 1 import module_name 2 import module_name,module_name2 3 from module_name import * 4 form module_n

關於openwrt+ipv6在H3C教育網環境中的研究

網絡 現實 sdn ipv san 關系 協議 慢慢 network 這裏先開個頭,考完試繼續補充。 教育網的IPv6提供了非常好的一些性能,也起到了試驗性的作用,確是所謂Next Generation Network ;於是乎,如何能充分發揮IPv6也成

置換群本蒟蒻瞎BB的

元組 個數 置換群 條件 如果 其中 就是 不一定 成了 置換群(本蒟蒻瞎BB的)(未完) 群的定義 給定一個集合\(G=\{a, b, c...\}\)和集合\(G\)上的二元運算*,並滿足: 封閉性:\(\forall a, b \in G, \exists c \i

c# winform 實現打印功能

ble preview raw using ntp review winform setup print 1.打印控件介紹(Document屬性設置為PrintDocument1;ShowDialog()方法顯示對話窗) PrintDialog控件(打印會話):用於選擇打印

第二章 數論基礎

跳過 大數運算 簡單的 nbsp -m 之一 需要 加法 mod 1 整除性和帶余除法 1.1 整除 設$a$,$b$均為正數,若存在整數$m$使得$a=m\times b$成立,則成為非零數$b$整除$a$,換而言之,若$b$除$a$沒有余數,則認為$b$整除$a$.表示

3.3常用知識-索引與排序

聚集索引 主鍵自增 主鍵 建立索引 函數 3.3 存儲 bsp 排序。 1.索引與排序的關系   經過多番嘗試,我發現,直接select * from table 默認是會按聚集索引來排序的。   那如果order by column ,column中有非聚集索引,排序用使

前端HTML 與css 整理

簽名 跳轉 doc emp 分類 for ... 小寫 tar HTML 中的標簽存放於文本文件中 需要按照以下固定的文檔結構組織:<!DOCTYPE HTML><html> <head>頭部相關信息 </head>

9.17lnmp練習,

images -o watermark 分享 ffffff process mage ext ESS 9.17lnmp練習,(未完)

SeLinux許可權問題分析

檢視當前目錄下的檔案或目錄的許可權:ps -Z u:object_r:system_data_file:s0 system adb shell 之後執行setenforce 0可以暫時去除sepolicy許可權 (不用重啟機器,而且重啟之後許可權又恢復成原來的了) usage:

文獻:基於地基增強系統的格網虛擬觀測值

2018-11-04 1. 2.可以參考的思路 3.存在問題:需要對使用者端軟體進行升級 4.   5.河南:雙差對流層延遲 在固定基線整週模糊度之後,採用雙頻消電離層組合可以準確計算出基線上的雙差對流層延遲。 相同基線長度的 GPS 和 BDS 的雙差對流層延遲影

SpringMVC學習筆記

前邊的入門就不說了~~ 如果有不懂的可以參考SpringMVC 4.2.4.RELEASE官方中文API (進入下載頁直接下載) 1、矩陣變數 2、媒體型別 3、請求引數和請求頭(params="myParam=myValue") 4、REST架構 &nb

Bmob後端雲學習

調用 短信驗證 安全性 友好 data 快速 ack 考證 邊界 Bmob後端雲學習 BaaS(後端即服務:Backend as a Service)公司為移動應用開發者提供整合雲後端的邊界服務。 這種服務的一個代表就是Bmob後端雲,BAT和亞馬遜 ,都有這類產品。 作為

C++與STL入門

C++與STL入門總結 寫在前面 C++的特性 1.標頭檔案的變化 2.C++標準程式庫 3.名稱空間(namespace) 4.資料型別的變化 5.指標與引用 6.字串(string) 7.結構體與