有趣的安全遊戲 哈密頓行動(四)突破程式的鎖

2021-08-08 03:23:39 字數 1448 閱讀 7580

第四題據說已經加強了

終於來了道逆向題····雖然是pe的,好吧,還是不擅長

題目資訊:

題目啥都沒說,就是一道註冊類題,不過難度不大

先開始用ida分析,看著真蛋疼,搜了一些函式符號,發現是vb的(起始圖示很明顯了)

下了個vb的分析工具,vb decompiler,反彙編檢視

可以好好看看這個校驗函式,結合ida可以動態除錯,會用od的應該更簡單。

整個過程有三處做校驗,分別對應為使用者名稱校驗、密碼加密校驗以及密碼唯一值確定校驗

第一處校驗比較簡單,就是完全匹配使用者名稱,如截圖

第二處校驗是乙個加密演算法,讀取密碼中的每一位元組,前後位元組相加減去0x64,新生成的字串和儲存在記憶體中的字串比較,這裡要注意對應比較的是位址中的內容,不是位址值(被自己坑了)

針對此處的校驗,可以列舉出密碼,大概也有幾十個,列舉的**如下:

for

first

in range(0,0xff):

badval = 0

arr =

nextval = 0

for i in range(0,len(resultlist)):

if i == 0:

nextval = resultlist[i] + 0x64 - first

else:

if nextval < 0

or nextval >= 0x7f

or nextval < 0x20:

badval = 1

break

nextval = resultlist[i] + 0x64 - nextval

if badval == 1:

continue

if arr[11] + first == resultlist[11] + 0x64:

resultstr = ""

print "first : %x %x" %(first,(arr[0]*arr[11]))

for z in arr:

resultstr += chr(z)

print resultstr

arr =

第三處校驗是基於第二次的校驗,因為列舉出了很多,但答案是唯一的,因此此處過濾出了正確答案,走到這裡,可以用ida看看了,因為vb反編譯出來的有一點誤差,此處校驗的方式是將字串首尾位元組相乘,與一固定值作比較,檢視列舉的字串,得到答案。

提交成功~

神經網路的哈密頓量

a,b n m 2 1,0 0,1 設乙個二分類的網路來分類兩個粒子a和b。將a和b對應的訓練集xa和xb理解成是表達a和b運動狀態的哈密頓量。網路收斂得到的權重w看作波函式 如果將收斂標準理解成是能量e的一種外部表徵,神經網路的收斂就是計算a和b的本徵函式 的過程。如果把波函式 理解成是軌道這個網...

送外賣(可重複點的哈密頓路徑)

時間限制 2 s 空間限制 256000 kb 有乙個送外賣的,他手上有n份訂單,他要把n份東西,分別送達n個不同的客戶的手上。n個不同的客戶分別在1 n個編號的城市中。送外賣的從0號城市出發,然後n個城市都要走一次 乙個城市可以走多次 最後還要回到0點 他的單位 請問最短時間是多少。現在已知任意兩...

哈密頓迴路與旅行商問題的求解

哈密頓圖 圖g的乙個迴路,若它通過圖的每乙個節點一次,且僅一次,就是哈密頓迴路.存在哈密頓迴路的圖就是哈密頓圖.哈密頓圖就是從一點出發,經過所有的必須且只能一次,最終回到起點的路徑.圖中有的邊可以不經過,但是不會有邊被經過兩次.哈密頓迴路之中的圖並不要求是完全圖,而當這個圖的完全圖也就是每個頂點之間...