首頁>Club>
9
回覆列表
  • 1 # 使用者2651907528043

    寫這個回答,就是看不慣某個好像說了一堆,實際上根本什麼都沒說的“回答”。

    說明:

    這一份只是粗略整理,並不保證準確性,這張表格整理完後實際上也還沒進行實際測試過。表格中如“表格內容:X-Y”的專案,冒號後面為對應位。如“瞬生命”,就是“瞬生命:11-10”、“瞬生命:9-8”、“瞬生命:7-0”三段拼接而成的一個十二位數。數值類(小宇宙、生命、第七感)拼接後視作BCD碼。部分從密碼中讀取並寫入記憶體的數值意義不明,暫時標記為“未知”字母轉二進位制數流程:每個字母第一行第一列為0b000000,第一行第二列為0b000001,從左往右再從上到下遞增直到0b111111。字母一共有66個,所以最後的兩個字母需要用0b1000000和0b1000001表示,由於處理中可認為只處理低6位,姑且忽略最後這兩個。異或校驗位所在位置為猜測,因為只分析了源程式的密碼驗證程式,沒有分析密碼生成程式。每個招式的所屬根據顏色分類,但是同一分類內可能有錯(因為沒有過多的時間去驗證每個招式具體的對應)。

    密碼處理流程:

    程式先判斷是否輸入了31個字母,若無則提示密碼錯誤。程式判斷是否輸入的全部是同一個字母(比如“啊啊啊啊……”這樣),若有則提示密碼錯誤。程式對31個字母依次異或,若結果非0則提示密碼錯誤。要實現密碼異或結果為0,猜測是在生成時將異或校驗位先填入0,再對31個字母依次異或,再將結果(這個結果往往非0)填入異或校驗位。程式讀取取反校驗的值,設值為X,則第X個字母到第X+10個字母對應的6位二進位制數需要進行取反處理。程式將31個字母(實際上補上了一個空字母,共32個)進行拼合,變為24個位元組(32*6=24*8)。程式從這24個位元組中讀取需要的資料放入遊戲中實際讀取的記憶體中,讀取中會判斷每個位元組是否合法(判斷方式:高4位小於等於9,低4位小於等於A),若某一位不合法則提示密碼錯誤。密碼裝入完成,進入遊戲。

  • 中秋節和大豐收的關聯?
  • 軟體測試工程師沒有設計過測試用例,如何在應聘中彌補這一不足?