一道很騷的CrackMe

2021-09-29 14:10:29 字數 1356 閱讀 6957

這個題目是 10年看雪的乙個大佬出的crackme

我乙個夥計不知道怎麼就拔出來 讓我看了,。。。。

其實這個題目本身並不難,,  這兩天打比賽打的太累了,,, 感覺自己不太在狀態,,,

crackme的鏈結

然後  這個crackme 的大致情況就是如此

我一開始是用 sub 0xa 來找 按鈕事件,

然後我發現 這個程式邏輯點 還要很長  直接下乙個 記憶體訪問斷點  然後發現了這裡的演算法

其實到這基本就可以了

然後就是分析硬核的演算法了

這裡我整理了一下   大概就是 

name 長度大於5

serial 長度大於19

然後 每第五位 是  -   

然後迴圈5次

然後 就是 sum  += sum (name[(name_len-i)])

然後就是

然後再往下看  進入關鍵函式看

發現了我們上面說的那個點,

然後我們寫出序號產生器。

table="zouzhiyong"

name="pipixia"

flag=""

count=0

for i in range(0,5):

temp=ord(name[i])

for j in range(1,len(name)-i):

temp+=ord(name[j])

while temp<10000:

temp*=3

temp = temp / 3

while temp:

dnum=temp%10

temp=int((temp-dnum)/10)

strs=ord(table[dnum])

strs=strs-32-(strs%5)-(strs%2)

if count%5==4:

count+=2

flag+='-'+chr(strs)

else:

count+=1

flag+=chr(strs)

print(flag)

一道筆試題,做的很垃圾

給定相同位數為n的兩個整形數a,b,其中b的每位數直接可以調整位置,我們要通過調整b中每位數的位置,找到乙個b 使得b 為大於a的最小組合數。如果找不到則返回 1,否則返回b 例如 輸入 n 3a 421 b 123 輸出 1 輸入 n 4 a 1234 b 1232 輸出 1322 思路 首先將輸...

一道錯過的很基礎的筆試題

目前只記得個大概了 乙個16位的作業系統 unsigned char a 4 3 a 當初自己寫的答案是3,但是真相卻不是這樣?第乙個自己考慮到了隱性強制型別轉換,第二個計算機是通過補碼的形式來表示資料的,不過當時還是算錯了!原碼就是二進位制定點表示法,即最高位為符號位,0 表示正,1 表示負,其餘...

很考驗毅力和耐心的一道題

設計乙個模擬計算器的程式,要求能對包含加 減 乘 除 括號運算子及sqr和abs函式的任意整型表示式進行求解。要檢查有關運算的條件,並對錯誤的條件產生報警。好吧。敲完這題我虛弱了。我真 虛弱了啊!include include include include include include incl...