2013-04-05 95 views
2

Aloha,Stackoverflow。逆向工程Web應用程序

我經常遇到網絡應用程序,並自問:「我該如何編寫一個腳本/應用程序來與之交互?」 (純粹是學術的,不是爲了垃圾郵件的目的!)。

例如,網站Omegle;人們已經編寫了Python腳本來與網站進行交互並在不打開瀏覽器的情況下進行聊天......怎麼樣?我承認WEB編程並不是我最強的領域,但我真的很想知道如何從這些應用程序中提取正在使用的協議,並使用這些知識來創建自定義應用程序和修改該服務。

所以基本上,我怎麼能找出一個Web應用程序的內部工作原理(即imeetzu.com,這樣我可以編寫代碼從我的桌面與它的接口?

預先感謝您!

+0

http://reverseengineering.stackexchange.com/ – DCoder 2013-04-05 14:04:39

回答

8

你需要一套工具入手:

  • 與調試窗口(Chrome是這個特別好)瀏覽器這將允許你在特定的訪問網絡調用瀏覽器直接使(有來一個警告),並看到:

    • 其內容
    • 它們的參數
    • 他們的目標
  • 的網絡數據包嗅探器來跟蹤下來任何通過Flash去(或WebSockets)。我很喜歡Ethereal(現在稱爲Wireshark),但如果你在美國,可能會違法使用它(取決於你使用它的方式)。這將允許您查看進入和離開網絡接口的每個TCP幀。

的知識,你將需要:

  • 能夠識別和隔離的網絡流。這是通過練習
  • 知識的語言應用程序,你試圖反向工程是寫入英寸如果JavaScript不是你的一杯茶,避免基於JS的東西
  • 數學和密碼學。數據可能會很好地被加密/混淆/不時地混淆。注意並注意它。

在這種特殊情況下,看起來您可能不得不處理Flash。還有其他資源可以幫助解決這個問題,儘管所有這些資源都是非免費的。有一個特別好的Flash反編譯器叫做SoThink SWF decompiler,它允許你將SWF變成FLA或AS源的集合。

這就是所有的工具。這個方法很簡單 - 查看數據進出的數據,並通過消除什麼是數據。如果它被加密了,你需要IV和樣本來希望打破它(或者只是反編譯代碼,並找出密鑰/握手是如何完成的)。這是一個非常非常廣泛的領域,我甚至沒有觸及冰山一角 - 隨時索取更多信息。

(我怎麼知道這一切呢?我是一個貢獻者百百項目,反向工程遊戲協議)