第四題據說已經加強了
終於來了道逆向題····雖然是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的乙個迴路,若它通過圖的每乙個節點一次,且僅一次,就是哈密頓迴路.存在哈密頓迴路的圖就是哈密頓圖.哈密頓圖就是從一點出發,經過所有的必須且只能一次,最終回到起點的路徑.圖中有的邊可以不經過,但是不會有邊被經過兩次.哈密頓迴路之中的圖並不要求是完全圖,而當這個圖的完全圖也就是每個頂點之間...