1. 程式人生 > >OllyDBG 找程式主函式入口地址總結

OllyDBG 找程式主函式入口地址總結

通常用OllyDBG開啟一個程式之後,並沒有直接跳到程式主函式入口地址,而是在進行一些初始化工作,這個是需要跳過的。
如果你對反彙編比較熟悉的話可以直接找函式入口地址:
1. 找幾個壓棧指令
2. 壓棧完了之後就是對棧的初始化
3. 通常在壓棧指令之前都有一個跳轉指令(這個有時地址偏移比較大)

如果上述都不太熟悉的話可以中規中矩的進行單步執行:
1.開始之後便一直F8,直到步過下面這個函式:
     FF15 38804000 call dword ptr ds:[<&KERNEL32.GetVersion>; kernel32.GetVersion
     GetVersio():判斷當前執行的Windows和DOS版本


2. 然後繼續F8,直到步過下面這個函式:
     FF15 34804000 call dword ptr ds:[<&KERNEL32.GetCommand>; kernel32.GetCommandLineA
     GetCommandLineA():不接受引數,獲取自己程式的命令列引數
     GetCommandLineA後面還有好幾個Call,在第四個call完之後的下一個call通常就是程式的主函式入口地址了。

3.跳到GetCommandLineA後面的第五個函式時就得F7了,進去就是了。