|
F-Prot v3.12 |
|
amois |
|
Program Tipi: Antivirus |
|
Araçlar:
SoftICE, W32Dsm |
|
|
|
|
Cok eskiden beri piyasada olan bir Antivirus yazilimi.
|
Yazı |
Bugune kadar hic Antivirus programi ile ugrasmamistim. Cunku, koruma sistemlerinin iyi oldugunu dusunuyordum. Ayrica, Net'te istemedigimiz kadar crack mevcuttu. F-Prot un en son versiyonu olan
3.12 icin henuz crack yayinlanmamis olmasini firsat bilip, bir inceleyeyim dedim.
FP-Win.exe yi calistirinca karsimiza cikan menude "Register" ve "Upgrade" bolumleri var. "Upgrade" yapmak istedigimizde, Trial versiyonda bu bolumun aktif olmadigini soyluyor. Benim baslangic noktam burasi oldu.
[bpx messageboxa] -->
:0042E8BC mov eax, dword ptr [004FC2C4]
<-- [004FC2C4] = ?
:0042E8C1 and eax, 00000020
:0042E8C4 test eax, eax
:0042E8C6 je 0042E8EC
<-- Bu da ne ?
:0042E8C8 push 0000F066
:0042E8CD lea ecx, dword ptr [ebp-10]
...
:0042E8E2 Call 004BC310
<-- Uyari
:0042E8E7 jmp 0042E97E
42E8E2 deki cagri uyari verdiriyor. Biraz yukarida 42E8C8 de bir karsilastirma mevcut. Uyari vermesinin nedeni 42E8C6 da JUMP yapamamis olmamiz. Cunku, [004FC2C4] deki degerimiz 0 degil. Peki, buraya deger atayan bolumler nereleri
?
1- :00434F40 mov dword ptr [004FC2C4], edx
2- :00434F5E mov dword ptr [004FC2C4], ecx
3- :00434F7B mov dword ptr [004FC2C4], eax
4- :00434FCE mov dword ptr [004FC2C4], ecx
Bu 4 adrese breakpoint koyup, programi tekrar yukleyelim. (bpx yerine bpm kullanin)
Once 434F5E de (ecx=8), daha sonra 434FCE (ecx=28) de durduk. Yapmamiz gereken 434FCE adresinde iken
[r ecx=0] yazip denemek. Evet, program calisti ve
"Register" bolumu kalkti. Kisacasi isi hallettik. Kalici olarak Patch yapinca ortaya baska bir problem cikiyor.
Program kendisinin Modify edildigini anlayip calismiyor. Eger, patch yaptigimizi anlamamis olsaydi, cok kotu bir Antivirus programi olurdu. Oyle ya, kendisini kontrol edemeyen bir program, diger dosyalari nasil kontrol edecek ?
[bpx
messageboxa] -->
:004325E0 Call 004BC310
<-- Alert
:004325E5 jmp 0043269A
Dosyanin degistigini soyleyen cagri 4325E0 da. [F10] ile ilerleyelim.
:00432707 pop ebp
:00432708 ret
:00432764 call 004026B7
:00432769 mov dword ptr [ebp+FFFFFF1C], eax
<-- Buradayiz
Simdi, 432708 de RET ile 432769 a donduk. Aslinda, hatayi veren cagri 432764 gibi gozukuyor. Fakat, original exe yi calistirdigimizda da yine 432764 e geldigimizi goruyoruz. Bu durumda 4026B7 den 4325E0 a gelene kadar karsilastigimiz ayrim noktalarini gozden gecirmemiz gerekiyor. Bizi 4325E0 a getiren rota nasil ?
[bpx 4026B7] --> [F8]
...
:00432404 cmp dword ptr [ebp+FFFFF9CC], 00000006
:0043240B ja 0043269A
<-- iyi cocuk
:00432411 mov edx, dword ptr [ebp+FFFFF9CC]
:00432417 jmp dword ptr [4*edx+00432709]
<-- edx=4
:0043241E cmp dword ptr [ebp+FFFFF9DC], 00000000
...
:0043258E cmp dword ptr [ebp+FFFFF9DC], 00000000
:00432595 je 004325C6
<-- Alert e zipla
432417 de iken edx=4 ve bunun sonucunda 43258E ye zipladik. Daha sonra ise, malum uyari geliyor. Aslinda bizi kurtaracak bolum
43240B de durmakta. Eger, burada JUMP yapabilirsek hatadan kurtulacagiz. Peki, burada nasil JUMP yapacagiz ?
...
:004323E2 mov dword ptr [ebp+FFFFF9DC], 00000000
:004323EC mov eax, dword ptr [ebp-14]
<-- eax=5
:004323EF mov dword ptr [ebp+FFFFF9CC], eax
:004323F5 mov ecx, dword ptr [ebp+FFFFF9CC]
<-- ecx=5
:004323FB sub ecx, 00000001
<-- ecx=4
:004323FE mov dword ptr [ebp+FFFFF9CC], ecx
<-- ecx=4
:00432404 cmp dword ptr [ebp+FFFFF9CC], 00000006
:0043240B ja 0043269A
<-- iyi cocuk
4323FE de iken ecx degerimizin 6 dan buyuk olmasi gerekiyor. Dikkat ederseniz, problemin kaynagi, 4323EC de iken eax in [ebp-14] den almis oldugu 5 degeri. Cozmemiz gereken nokta burasi olmali.
4323EC de iken [d ebp-14] ile memory bolgesini not edelim. Daha sonra buraya
[bpm] breakpoint koyup, nerede deger atandigini bulalim.
1- :00432342 mov [ebp-14], 00000000
<-- No problem
2- :00432374 mov dword ptr [ebp-14], eax
<-- eax=5
Problemin kaynagini 432374 de eax deki degerin atanmasi olarak bulduk. Burayi da patch edelim.
Cracking olayinda, bir uyarinin hemen uzerindeki JE, JNE leri patch etmektense, uyariya neden olan bolumu bulmak her zaman daha iyi bir cozumdur. Problemin kaynagini bulmak, ilerde karsilasabilecegimiz problem sayisini azaltabilir. 43240B yi direkt olarak patch yapsaydik, extra problemlerimiz olacakti. Ornegin, program hic calismayacakti. Gerci, bir yeri daha patch ederek bunu da cozebilirdik. Ama, her zaman gercek sorun yaratan bolumu bulmaya calisin.
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.