在學習逆向工程中,都會去參考別人是如何破解軟體的,但是忽略了逆向的基礎與技巧,導致有很多逆向的細節不太清楚,那麼我們這次就要解決這個問題,就要先從軟體的驗證序號的架構說明。
軟體序號驗證邏輯
大多數的軟體在跳出輸入驗證序號的視窗前,會先判斷此軟體是否已被驗證成功,如果之前就有被驗證成功,就不跳出驗證序號的視窗,直接獲取之前驗證序號的資訊,然後直接進入驗證序號,最後再運行此軟體。
如果沒有被驗證成功的軟體,會跳出需要驗證序號的視窗,因此很多剛學習逆向的同學會透過字串分析,去分析驗證錯誤的訊息,然後繞過此驗證序號的結果,這邊會有一個問題,在運行完驗證序號程序後的結果的條件式判斷,進行修改,並不是修改驗證序號程序的主要函式,因此軟體重新執行後,還是會跳出驗證序號的視窗,所以要破解完整,就需要找出主要驗證序號的函式,才能真正的完整破解此軟體。