1拱雏、打開軟件后,發(fā)現(xiàn)是未注冊底扳,然后點擊關(guān)閉按鈕铸抑,會彈出窗口
我們的目的就是為了能夠去掉這個彈窗。
2衷模、對這個程序進行查殼鹊汛,沒有什么發(fā)現(xiàn)
3、載入OD里面阱冶,F(xiàn)9運行起來柒昏,隨后切換到程序主界面點擊關(guān)閉按鈕,照樣彈窗
4熙揍、此時,切換到OD中氏涩,按下F12暫停届囚,此時OD會出現(xiàn)這樣的畫面
這時OD把程序給暫停住了
5、在OD中使用快捷鍵“Alt+K”是尖,出來”調(diào)用堆椧庀担“界面
我們在這里分析一下調(diào)用堆棧,可以看到上面的都是系統(tǒng)空間的饺汹,我們在最后一行紅色調(diào)用那里右鍵點擊蛔添,選擇“顯示調(diào)用”
6、接著OD就來到了這里
在 77D5082A 處按F2下斷點,重新運行程序迎瞧。
7夸溶、切換到程序,繼續(xù)點擊關(guān)閉按鈕凶硅,這時OD會斷在上一步下的斷點那里
8缝裁、隨后F8單步運行,此時程序會彈窗了足绅,點擊對話框里面的“是“或”者“否”讓程序能夠運行下去捷绑。【這里必須點擊“是“或”者“否”氢妈,否則程序會運行不下去粹污。我在看視頻的時候沒注意到這里,所以在這一步卡了殼首量,又重新看了一遍視頻才過去的】
隨后繼續(xù)F8單步下去壮吩,不久就會運行到程序空間。
9蕾总、這時就會看到調(diào)用彈窗的那個地方
觀察上面的代碼粥航,看是否有jmp可以跳過這個的。但是一直找到了段首也沒有發(fā)現(xiàn)生百,
既然沒有递雀,那我們F8繼續(xù)單步,返回到上一層的調(diào)用
10蚀浆、返回到了這里
4CDCE6 出的call就是是彈窗出現(xiàn)的call缀程,要是能夠把它跳過就相當于跳過了彈窗:
004CDCE6 . E8 CD64F9FF call WebMan.004641B8
那么就往上找jmp吧。但是還是找到段首沒找到一個有用的jmp市俊。那就只能是繼續(xù)F8單步運行杨凑,返回上一層調(diào)用了
11、返回到了這里:
00460A75 . FF93 98020000 call dword ptr ds:[ebx+0x298] ; WebMan.004CDCC4
上面這個call就是彈窗的call摆昧,那么想辦法跳過它吧撩满。正好在上面有一個je
00460A69 . /74 10 je short WebMan.00460A7B
總算是找到了這樣一個 跳 了。在這里F2下斷點绅你,重新運行程序
12伺帘、切換到程序界面,點擊關(guān)閉按鈕來關(guān)閉程序忌锯,OD會停在那里
觀察一下伪嫁,發(fā)現(xiàn)這個跳轉(zhuǎn)未實現(xiàn)呀。
既然je不能實現(xiàn)跳偶垮,那么改為jne呢张咳?在je代碼處點擊空格帝洪,會彈出窗口讓輸入?yún)R編代碼,我們直接改為jne:
然后F9讓程序運行脚猾,會發(fā)現(xiàn)沒有討厭的彈窗出現(xiàn)了葱峡。
13、把修改過的程序復(fù)制出來婚陪,保存成新的族沃。