[閒聊] 逆向已回收

看板Marginalman作者 (後悔なんてあるわけない)時間3年前 (2022/06/26 04:37), 編輯推噓0(002)
留言2則, 1人參與, 3年前最新討論串1/1
仔細想想 逆向工程這件事似乎不是很好 formalize 和混淆不同 混淆蠻容易定義的 例如定義完美的混淆器為: 即使攻擊者拿到混淆過後的程式碼 攻擊者能做到的事 和單純拿到oracle能做到的事一模一樣 (也就是只知道輸入輸出對應關係) 雖然這種混淆器已經在 2001 年被證明不可能達成了 不過定義混淆這件事還是蠻容易的 或是像 indistinguishability obfuscation 的定義方式 兩個輸入輸出相同的 circuit 經過混淆器後沒有辦法分辨 這也是一種定義方式 但相反的 怎樣算是逆向成功 就有點麻煩了 感覺最好的說法是: 知道這支程式「在幹麻」 而這個「在幹麻」必須是人類可以理解的樣子 但這樣就會是主觀的了 例如你拿到一個算平方的程式,如果你說你逆向的結果是 輸入1會回傳1、輸入2會回傳4,...一直到int的上限的話 沒人會當你成功逆向了 或是你的結果是一串不是很明顯知道在幹麻的指令: 先push某個值在幹麻幹麻的,也沒有人會當你逆向成功 必須說出這個程式是在算「平方」才行 再舉一個例子,假如有一個程式 在輸入 >=0 時會輸出它的平方根 而 <0 的部份則被塞了一大堆垃圾程式碼 經過編譯後到你手上 怎樣算是成功逆向呢 應該只要能說出: >=0 時會輸出平方根,否則是垃圾 這樣就可以了 不需要知道 <0 時到底確切是什麼行為 甚至可以說如果還花力氣去看 <0 的部份的話就是被對方拐了 因為這部份「不重要」 也就是說,逆向這件事是和「人」的目的密切相關的 比較像是在問:當初作者是因為什麼原因而寫下這個程式的 應該很難正式的定義什麼是逆向 -- https://i.imgur.com/lGiFkH9.png
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.198.173.41 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1656189465.A.395.html

06/26 06:41, 3年前 , 1F
大師
06/26 06:41, 1F

06/26 06:41, 3年前 , 2F
逆向可以把貧果的垃圾hash偷掃描照片關掉嗎?
06/26 06:41, 2F
文章代碼(AID): #1Yjt8PEL (Marginalman)