反編譯知乎
1. 如何看待國產軟體 aardio 官方抨擊知乎,疑有"黑幕"的文章
關鍵結症在於,整天沉浸在小環境里的玻璃心作者,不了解知乎的一貫風格,引發了強烈的被迫害妄想症。
2. 程序員看劇的時候,如果看到有敲代碼頁面,會暫停看代碼嗎
我有過一次類似的經歷。某次在某大型石化變電站內給電力監控系統配套資料庫,由於資料庫程序修改量大白天干不完,,我和同事把數據拷貝到筆記本中,回到酒店繼續工作。到了飯點肚子實在餓,又怕用餐影響思維進程,就和同事把各自的筆記本帶到酒店餐廳,找個偏僻位置一邊用餐一邊討論繼續修改程序。
不過一旦發現是 HTML/CSS/Javascript/Java/Python/C 在搞向標准輸出列印,Web/HTTP 這種就沒了興致。改進的話,語言上整點 Racket/OCaml/Haskell/Idris/Rust/C#/Elixir,然後開 Visual Studio Code 全屏,裝好對應代碼高亮插件,貼點不明覺厲的代碼片段比如 Chez Scheme 的代碼上去,豎直副屏全屏打開一個 Terminal 不斷往外蹦符合演出敘事的消息。畢竟影視劇里的編程是表演的一部分,需要通過編程表演藝術裝屄的時候,請劇組盡力保證演出效果。
3. 為什麼在 Android 上啟動知乎 app 時會喚醒微信
知乎調用微信sdk中分享的相關介面,微信sdk的相關介面裡面,給微信發送了一個廣播,微信app就被喚醒了,這不是知乎的主觀行為,而是微信的(而且結合實際的分析來看,這個應該也算是正常的功能)。
1首先說一下app的被喚醒(自啟動)機制。
app自啟動,基本上都是依靠Android的廣播來實現的,而且是靜態注冊的廣播(在AndroidManifest.xml文件中進行配置的廣播),發送廣播的方法在一般情況下是sendBroadcast。
2按照慣例,反編譯一下微信apk,然後搜索一下它能夠由哪些靜態廣播進行喚醒,同時抓取廣播相關的log。
結合微信的AndroidManifest.xml文件以及抓取的log,可以知道相關的BroadcastReceiver是EntryReceiver,相關的action為
com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER
com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_UNREGISTER
從其名稱上看,是和注冊/注銷相關,具體接收到廣播之後做了哪些處理,這些就不贅述了。
3接下來分析知乎的代碼,搜索一下知乎反編譯之後的smali文件(sendBroadcast),其中只有一條是和微信相關的
4. 有沒有可能寫出c++反編譯器知乎
C++反匯編軟體現成的就有啊,靜態反匯編軟體比較著名的就是IDA Pro,動態的是ollydbg這個軟體。如果你像自己編寫一個也可以,需要知道位元組碼和匯編的對應關系、然後一些調試器的編寫的知識,不過自己編寫反編譯軟體的話針對一些簡單的程序還可以,如果遇到加過殼的程序,處理起來就比較麻煩了。