Copy Link
Add to Bookmark
Report

6x05 ASProtect 2.2 SKE

eZine's profile picture
Published in 
phearless
 · 10 months ago

                [ ASProtect 2.2 SKE by ap0x ] 

pH#6 .............F.u.l.l..R.e.v.e.r.s.e............. [ #Sadrzaj ]
0x01 ................................................ [ Intro ]
0x02 ................................................ [ AIPbeGone ]
0x03 ................................................ [ Contact ]
0x04 ................................................ [ Outro & Greetz ]


--[ 0x01 ]---------------------------------------------[ .Intro ]

Posto je steta da se nase kulinarsko umece ogranici na kuvanje samo
jednog protectora precicemo na kuvanje velike zverke, ASProtecta.Ovu jako
plasljivu zivotinju je jako tesko uhvatiti a jos teze skuvati... Za ovo
ce nam trebati puno kulinarskog umeca... Da vidimo...

Da bi smo skuvali ovaj unpackme, trebace nam neki kulinarski alati:

[+] OllyDBG v.1.10 .................................. http://www.wasm.ru
[+] OllyInisible v.x ................................ http://www.wasm.ru
[+] LordPE v.1.4 .................................... http://www.wasm.ru
[+] ImpRec v.1.6 .................................... http://www.wasm.ru
[+] PeID v0.94 ...................................... http://www.wasm.ru
[+] RL!Weasle 0.6 ................................... stize uz pH eZine
[+] AIPbeGone ....................................... stize uz pH eZine
[+] CALLMapper ...................................... stize uz pH eZine
[+] bcMaster 0.1 .................................... stize uz pH eZine

i naravno glavni sastojak naseg glavnog jela za danas:

[+] ASProtect 2.2 SKE ................................ AIP.ASPR22SKE.EXE

--[ 0x02 ]---------------------------------------------[ AIPbeGone ]

Sa ASProtectom smo se vec sreli u knjizi The Art Of Reversing. Za
razliku od tog primera ovaj put se suocavamo sa SKE verzijom ASProtecta,
odnosno pokazecemo kako lako mozemo da uklonimo advanced import
protection zastitu koja je samo delimicno opisana u knjizi.

00401000 >/$ 68 01704100 PUSH API_ASPR.00417001
00401005 |. E8 01000000 CALL API_ASPR.0040100B
0040100A \. C3 RET
0040100B $ C3 RET

Pritisnucemo dva puta SHIFT+F9 i zavrsicemo na sledecemo kodu:

0096741F 90 NOP
00967420 EB 01 JMP SHORT 00967423
00967422 6966 81 FE47467> IMUL ESP,DWORD PTR DS:[ESI-7F],744647FE

Posto je ovo ne registrovana verzija ASProtecta, NAG o registraciji se
moze pojaviti sa vremena na vreme. Bilo kako bilo postavite memoriski
breakpoint na glavnu .code sekciju i pritisnite SHIFT+F9. Ako se posle
ovoga ne nadjete ovde:

004081B8 55 PUSH EBP
004081B9 8BEC MOV EBP,ESP
004081BB 83C4 F0 ADD ESP,-10
004081BE B8 70814000 MOV EAX,API_ASPR.00408170
004081C3 E8 A4C2FFFF CALL API_ASPR.0040446C
004081C8 A1 60A64000 MOV EAX,DWORD PTR DS:[40A660]
004081CD A3 9CA74000 MOV DWORD PTR DS:[40A79C],EAX
004081D2 6A 00 PUSH 0
004081D4 68 5C804000 PUSH API_ASPR.0040805C
004081D9 6A 00 PUSH 0
004081DB 6A 64 PUSH 64
004081DD FF35 9CA74000 PUSH DWORD PTR DS:[40A79C]
004081E3 E8 B8C3FFFF CALL API_ASPR.004045A0
004081E8 E8 53B3FFFF CALL API_ASPR.00403540

pritiskajte SHIFT+F9 sve dok se to ne dogodi. Ovo je naravno OEP
zasticene Delphi mete.
Ono sto je najbitnije kod popravke importa zasticenih pomocu advanced
import protectiona je lociranje dela ASProtect koda koji je zasluzan za
biranje pravog APIja kako bi zasticeni program radio normalno. Ovo mesto
je izuzetno lako naci ako razmisljate na nacin na koji kompajler izvrsava
kod.
Logicno je da na samom pocetku izvrsavanja aplikacije izvrsavaju sledeci
APIji: GetModuleHandleA, GetCommandLineA, GetVersion… Iz ovog razloga
cemo postaviti breakpoint na GetModuleHandle API. Kada pritisnemo F9
nacicemo se na nasem breakpointu, a posle izvrsenja APIja sa CTRL+F9
dolazimo ovde:

009659B0 50 PUSH EAX ; API_ASPR.00400000
009659B1 51 PUSH ECX
009659B2 52 PUSH EDX
009659B3 89E0 MOV EAX,ESP
009659B5 B9 13000000 MOV ECX,13
009659BA 8B10 MOV EDX,DWORD PTR DS:[EAX]

Pogledajmo samo malo gore:

00965999 68 B0599600 PUSH 9659B0
0096599E FF75 14 PUSH DWORD PTR SS:[EBP+14]
009659A1 FF75 0C PUSH DWORD PTR SS:[EBP+C]
009659A4 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
009659A7 FF60 38 JMP NEAR DWORD PTR DS:[EAX+38] <- Magicni bpx!

Sada cemo postaviti breakpoint na PUSH DWORD PTR SS:[EBP+14], posle cega
cemo pritisnuti F9 i videcemo ovo:

0096599E FF75 14 PUSH DWORD PTR SS:[EBP+14] ;GetCommandLineA

Run mozete pritiskati nebrojeno puta i uvek ce se na adresi 0096599E
nalaziti ime trenutno pozvanog APIja, odnosno pointer ka njemu. Da bi smo
videli odakle je pozvan GetCommandLine API postavicemo memoriski
breakpoint na .Code sekciju i posle klika na SHIFT+F9 dolazimo ovde:

00404340 . A3 3CA04000 MOV DWORD PTR DS:[40A03C],EAX
00404345 . E8 FECDFFFF CALL API_ASPR.00401148

Ovo je naravno instrukcija posle izvrsavanja APIja. Vratimo se malo
nazad i pogledajmo u sledeci CALL:

0040433B . E8 78CDFFFF CALL API_ASPR.004010B8

On vodi ovde:

004010B8 $ E8 43EFCC00 CALL 010D0000
004010BD . BD 8BC0FF25 MOV EBP,25FFC08B

Dakle odavde zakljucujemo da CALL ka adresi 010D0000 vodi ka advanced
import protection-u. Ako pregledate kod videcete da postoji mnogo ovakvih
CALLova ka istoj toj adresi, ali sta se nalazilo ovde pre nego sto je
ASProtect ubacio CALL ka njegovoj import zastiti.
Bez obzira na vrstu kompajlera skokovi ka APIjima se izvode na samo dva
nacina, kako NEAR CALL ili kao NEAR JMP. U slucaju Delphija u upotrebi su
oba nacina ali ce ASProtect imeniti samo NEAR JUMPove u CALL ka istoj
advanced import protection adresi. NEAR JUMPovi imaju duzinu od sest
bajtova, dok je za CALL potrebno samo pet. Ovo znaci da je sesti bajt
takodje izmenjen i da predstavlja obfuskaciju koda, a ovo mozemo i
proveriti ako izmenimo bajt na adresi 004010BD u NOP, odnosno 90h. Onda
adresa 004010BD dobija malo drugaciji izgled:

004010B8 $ E8 43EFCC00 CALL 010D0000
004010BD . 90 NOP
004010BE . 8BC0 MOV EAX,EAX
004010C0 $- FF25 ECB04000 JMP NEAR DWORD PTR DS:[40B0EC] ; GetLocaleInfoA
004010C6 . 8BC0 MOV EAX,EAX
004010C8 $ E8 33EFCC00 CALL 010D0000
004010CD . 26:8BC0 MOV EAX,EAX ; Superfluous prefix
004010D0 $ E8 2BEFCC00 CALL 010D0000

Ovo sad vec podseca na Delphi redirekcije ka APIjima, jedan NEAR JUMP
koji prati MOV EAX,EAX instrukcija. Pitanje koje se sada postavlja je
kako popraviti sve ove CALLove tako da oni vode ka pravi APIjima?
Ono sto sigurno pada svima vama na pamet je traceovanje do magicne
adrese na kojoj cemo procitati o kojem se to APIju radi. Ali ovo i nije
srecno resenje jer to znaci da svi APIji moraju biti pozvani, a ovo ce se
desiti samo ako budemo ispitali bas sve funkcije programa. Sledece sto
vam sigurno pada na pamet je postavljanje breakpointa na CALLove ka
advanced import protection-u, ali ni ovo nece raditi iz razloga sto ce
ASProtect detektovati obican breakpoint i srusice se posle greske 115.
Sta onda da radimo? Da postavljamo memoriske break pointe, da postavljamo
hardwareske breakpointe, da traceujemo?
Ni jedno, ni drugo, ni trece… Napisacemo program koji ce kreirati
threadove u samoj meti koji ce izvrsavati kod kroz advanced import
protection. Jedan ovakav plugin vec postoji, zove se RL!Weasle i mi cemo
ga iskoristiti. Sve sto treba da uradimo pre njegovog koriscenja je da
pronadjemo sve CALLove koji vode ka advanced import protection kodu. To
su ovi CALLovi:

00401060 $ E8 9BEFCC00 CALL 010D0000
00401065 . 90 NOP
00401066 . 8BC0 MOV EAX,EAX
00401068 .- FF25 10B14000 JMP NEAR DWORD PTR DS:[40B110]
0040106E 8BC0 MOV EAX,EAX
00401070 .- FF25 0CB14000 JMP NEAR DWORD PTR DS:[40B10C]
00401076 8BC0 MOV EAX,EAX
00401078 $- FF25 08B14000 JMP NEAR DWORD PTR DS:[40B108]
0040107E 8BC0 MOV EAX,EAX
00401080 $ E8 7BEFCC00 CALL 010D0000
00401085 . 90 NOP
00401086 . 8BC0 MOV EAX,EAX
00401088 $- FF25 28B14000 JMP NEAR DWORD PTR DS:[40B128]
0040108E 8BC0 MOV EAX,EAX
00401090 .- FF25 00B14000 JMP NEAR DWORD PTR DS:[40B100]
00401096 8BC0 MOV EAX,EAX
00401098 $ E8 63EFCC00 CALL 010D0000 ;Ne popravljati
0040109D . 90 NOP
0040109E . 8BC0 MOV EAX,EAX
004010A0 $ E8 5BEFCC00 CALL 010D0000
004010A5 . 90 NOP
004010A6 . 8BC0 MOV EAX,EAX
004010A8 $- FF25 F8B04000 JMP NEAR DWORD PTR DS:[40B0F8]
004010AE 8BC0 MOV EAX,EAX
004010B0 $ E8 4BEFCC00 CALL 010D0000
004010B5 . 90 NOP
004010B6 . 8BC0 MOV EAX,EAX
004010B8 $ E8 43EFCC00 CALL 010D0000
004010BD . 90 NOP
004010BE . 8BC0 MOV EAX,EAX
004010C0 $- FF25 ECB04000 JMP NEAR DWORD PTR DS:[40B0EC]
004010C6 8BC0 MOV EAX,EAX
004010C8 $ E8 33EFCC00 CALL 010D0000
004010CD . 26:8BC0 MOV EAX,EAX
004010D0 $ E8 2BEFCC00 CALL 010D0000
004010D5 . 90 NOP
004010D6 . 8BC0 MOV EAX,EAX
004010D8 $- FF25 E0B04000 JMP NEAR DWORD PTR DS:[40B0E0]
004010DE 8BC0 MOV EAX,EAX
004010E0 $ E8 1BEFCC00 CALL 010D0000
004010E5 . 90 NOP
004010E6 . 8BC0 MOV EAX,EAX
004010E8 $ E8 13EFCC00 CALL 010D0000
004010ED . 90 NOP
004010EE . 8BC0 MOV EAX,EAX
004010F0 $ E8 0BEFCC00 CALL 010D0000
004010F5 . 90 NOP
004010F6 . 8BC0 MOV EAX,EAX
004010F8 $- FF25 20B14000 JMP NEAR DWORD PTR DS:[40B120]
004010FE 8BC0 MOV EAX,EAX
00401100 $- FF25 D0B04000 JMP NEAR DWORD PTR DS:[40B0D0]
00401106 8BC0 MOV EAX,EAX
00401108 $ E8 F3EECC00 CALL 010D0000
0040110D . 90 NOP
0040110E . 8BC0 MOV EAX,EAX
00401110 $ E8 EBEECC00 CALL 010D0000
00401115 . 90 NOP
00401116 . 8BC0 MOV EAX,EAX
00401118 $ E8 E3EECC00 CALL 010D0000
0040111D . 90 NOP
0040111E . 8BC0 MOV EAX,EAX
00401120 $ E8 DBEECC00 CALL 010D0000
00401125 . 2E:8BC0 MOV EAX,EAX
00401128 $- FF25 C8B04000 JMP NEAR DWORD PTR DS:[40B0C8]
0040112E 8BC0 MOV EAX,EAX
00401130 $- FF25 40B14000 JMP NEAR DWORD PTR DS:[40B140]
00401136 8BC0 MOV EAX,EAX
00401138 $ E8 C3EECC00 CALL 010D0000
0040113D . 90 NOP
0040113E . 8BC0 MOV EAX,EAX
00401140 $- FF25 C0B04000 JMP NEAR DWORD PTR DS:[40B0C0]
00401146 8BC0 MOV EAX,EAX
...
004043A8 $ E8 53BCCC00 CALL 010D0000
004043AD . 90 NOP
004043AE . 8BC0 MOV EAX,EAX
004043B0 $- FF25 50B14000 JMP NEAR DWORD PTR DS:[40B150]
004043B6 8BC0 MOV EAX,EAX
004043B8 $- FF25 4CB14000 JMP NEAR DWORD PTR DS:[40B14C]
004043BE 8BC0 MOV EAX,EAX
004043C0 $- FF25 48B14000 JMP NEAR DWORD PTR DS:[40B148]
004043C6 8BC0 MOV EAX,EAX
...
00404520 E8 DBBACC00 CALL 010D0000
00404525 90 NOP
00404526 8BC0 MOV EAX,EAX
00404528 E8 D3BACC00 CALL 010D0000
0040452D 90 NOP
0040452E 8BC0 MOV EAX,EAX
00404530 E8 CBBACC00 CALL 010D0000
00404535 90 NOP
00404536 8BC0 MOV EAX,EAX
00404538 E8 C3BACC00 CALL 010D0000
0040453D 90 NOP
0040453E 8BC0 MOV EAX,EAX
00404540 - FF25 80B14000 JMP NEAR DWORD PTR DS:[40B180]
00404546 8BC0 MOV EAX,EAX
00404548 E8 B3BACC00 CALL 010D0000
0040454D 90 NOP
0040454E 8BC0 MOV EAX,EAX
00404550 E8 ABBACC00 CALL 010D0000
00404555 90 NOP
00404556 8BC0 MOV EAX,EAX
00404558 - FF25 74B14000 JMP NEAR DWORD PTR DS:[40B174]
0040455E 8BC0 MOV EAX,EAX
00404560 E8 9BBACC00 CALL 010D0000
00404565 90 NOP
00404566 8BC0 MOV EAX,EAX
00404568 E8 93BACC00 CALL 010D0000
0040456D 90 NOP
0040456E 8BC0 MOV EAX,EAX
00404570 E8 8BBACC00 CALL 010D0000
00404575 90 NOP
00404576 8BC0 MOV EAX,EAX
00404578 - FF25 64B14000 JMP NEAR DWORD PTR DS:[40B164]
0040457E 8BC0 MOV EAX,EAX
00404580 - FF25 60B14000 JMP NEAR DWORD PTR DS:[40B160]
00404586 8BC0 MOV EAX,EAX
00404588 E8 73BACC00 CALL 010D0000
0040458D 90 NOP
0040458E 8BC0 MOV EAX,EAX
00404590 - FF25 C0B14000 JMP NEAR DWORD PTR DS:[40B1C0]
00404596 8BC0 MOV EAX,EAX
00404598 - FF25 C4B14000 JMP NEAR DWORD PTR DS:[40B1C4]
0040459E 8BC0 MOV EAX,EAX
004045A0 E8 5BBACC00 CALL 010D0000
004045A5 90 NOP
004045A6 8BC0 MOV EAX,EAX
004045A8 - FF25 B8B14000 JMP NEAR DWORD PTR DS:[40B1B8]
004045AE 8BC0 MOV EAX,EAX
004045B0 - FF25 B4B14000 JMP NEAR DWORD PTR DS:[40B1B4]
004045B6 8BC0 MOV EAX,EAX
004045B8 - FF25 B0B14000 JMP NEAR DWORD PTR DS:[40B1B0]
004045BE 8BC0 MOV EAX,EAX
004045C0 E8 3BBACC00 CALL 010D0000
004045C5 90 NOP
004045C6 8BC0 MOV EAX,EAX
004045C8 - FF25 A8B14000 JMP NEAR DWORD PTR DS:[40B1A8]
004045CE 8BC0 MOV EAX,EAX
004045D0 E8 2BBACC00 CALL 010D0000
004045D5 90 NOP
004045D6 8BC0 MOV EAX,EAX
004045D8 E8 23BACC00 CALL 010D0000
004045DD 90 NOP
004045DE 8BC0 MOV EAX,EAX
004045E0 - FF25 A0B14000 JMP NEAR DWORD PTR DS:[40B1A0]
004045E6 8BC0 MOV EAX,EAX
004045E8 - FF25 9CB14000 JMP NEAR DWORD PTR DS:[40B19C]
004045EE 8BC0 MOV EAX,EAX
004045F0 - FF25 98B14000 JMP NEAR DWORD PTR DS:[40B198]
004045F6 8BC0 MOV EAX,EAX
004045F8 C1E8 10 SHR EAX,10
004045FB C3 RET

Zavidan je broj importa koje je potrebno rucno popraviti. Ovi importi su
oznaceni crvenom bojom, a jedini necemo moci da popravimo oznacen je
zeleno, a ovo znamo jer ce nam jedino on dati gresku 115 i srusiti
program. Ovo je greska koju je napravio ASPack software i ona je
ispravljena u verziji 2.3 tako da cemo mi uspesno popraviti samo importe
koji su zaista potrebni za funkcionisanje ove aplikacije, ali na zalost
necemo popraviti sve.
Ovaj spisak mozete napraviti ili rucno ili pomocu mog programa
CALLMapper koji ce za unete podatke kao sto su process id, base of code
(0x00401000), size of code (0x8000) i call target (0x010D0000) kreira
fajl CALLsMAP.txt koji sadrzi adrese na kojima se nalazi pozivi ka
advanced import redirekcijama.
Sada mozemo da startujemo RL!Weasle i da pomocu njegove threads opcije
ubacujemo nove threadove u nasu metu. Startne adrese ovih threadova ce
biti adrese CALLova koji vode ka advanced import protection zastiti. Ono
sto je vazno je to sto ovo ne moze biti uradjeno iz jednog pokusaja,
potrebno je startovati metu i nove threadove ubacivati u metu koja je
aktivna, sto znaci da dump treba uraditi na OEPu, a popravke kasnije
zalepiti u dump fajl. Kada novi thread dodje do naseg magicnog
breakpointa (mesto je obelezeno gore) onda cemo procitati ime APIja koji
je ukraden i ugasicemo thread klikom na Terminate thread. Posle ovoga
potrebno je ponovo startovati glavni thread pritiskom SHIFT+F9.
Svaki thread ce nam otkriti ka kojem APIju vodi svaka redirekcija, ali
to idalje znaci da moramo da popravimo NEAR JUMPove koji vode ka IATu.
Zbog ovoga sam iskodirao jos jedan alat koji ce automatski popravljati
sve NEAR CALL i NEAR JUMP redirekcije ka IATu. Ovaj alat se zove
AIPbeGone i on ce inline patchovati samu zastitu tako da se advanced
import protection sam ukloni, to jest da IAT postane validan.
Kada i ova faza bude gotova potrebno je jos samo iskopirati popravljene
delove koda (NEAR CALL i NEAR JUMP) iz aktivne u ne aktivnu metu (ili
dump). Ovo takodje mozete uraditi rucno, ali mozete da iskoristite i moj
program bcMaster.
Sada kada nam je postupak jasan mozemo da popravimo metu prateci sledece
korake:

- Otvorimo prvi OllyDBG i u njega ucitajmo nasu metu (ukloniti sve bpx)
- Kliknimo na File -> Attach i pronadjimo ID naseg procesa (primer: C08)
- Pritisnimo 2x Shift+F9 u Ollyju
- Sada startujmo AIPbeGone i unesimo potrebne podatke
- ProcesId je vrednost koju smo iscitali iz Attach prozora
- Base address of AIP space je prva adresa alociranog prostora u kojem
smo pronasli magicni bpx, sto je u nasem slucaju 00930000
- Da bi smo odlucili gde cemo ubaciti APIje oticicemo na adresu
00401000 i pogledacemo prvi validni pointer ka APIju na adresi
00401068. On vodi na adresu 0040B110. A ako pogledamo dump prozor
videcemo da slobodnog prostora ima tek od adrese 0040B6A0. Da bi smo
bili sigurni mi cemo izabrati adresu 0040B6A8.
- Sada ponovo u Ollyju pritisnimo SHIFT+F9 da bi smo startovali metu, ovo
ce popraviti sve APIje koje meta poziva u toku rada. Ono sto je ostalo da
se popravi pronacicemo pomocu CALLMappera u koji unosimo sledece podatke:
- ProcesId je vrednost koju smo iscitali iz Attach prozora
- Base address je 00401000
- Size of code je 8000
- CALL target je 010D0000 koji je adresa na kojoj se nalazi AIP
- Da ispravicemo sve padding bajtove
- Sada cemo pronaci magicni bpx i postaviti breakpoint na modifikovani
NOP koji se nalazi odmah ispod JMPa koji je AIPbeGone ubacio ovde:

00965999 68 B0599600 PUSH 9659B0
0096599E ^ E9 5DA6FCFF JMP 00930000 <- Ubaceni skok
009659A3 90 NOP <- BPX here!

- Sada mozemo da otvorimo CALLsMAP.txt i da popravimo i preostale AIP
redirekcije pomocu RL!Weasle.
- Izabracemo Threads opciju u RL!Weasle pluginu i u start address cemo
unositi podatke iz CALLsMAP.txt fajla.
- Unesimo 00401060 i pritisnimo Run u RL!Weasle pluginu
- Zastacemo na nasem magicnom breakpointu
- Sada naza u RL!Weasle pluginu pritisnimo Stop
- U OllyDBGu pritisnimo SHIFT+F9
- Ponovimo ovo za sve adrese iz CALLsMAP.txt fajla. Ako se desi da pojavi
Error 115 na bilo kojoj adresi jednostavno nazad u RL!Weasle pluginu
pritisnite Stop pa SHIFT+F9 preskacuci adresu koja prikazuje taj error.
- Ovako cemo popraviti sve APIje potrebne za normalno funkcionisanje mete.
Jedini problem koji trenutno imamo je kako zalepiti validni IAT u dump.
- Da bi smo ovo resili otvoricemo novi OllyDbg u koji cemo ucitati istu
metu, sa razlikom sto cemo se ovaj put zaustaviti na OEPu, odnosno na
adresi 004081B8.
- Ponovo cemo pronaci AIP CALLove pomocu CALLMappera u koji unosimo
sledece podatke:
- ProcesId je vrednost koju smo iscitali iz Attach prozora (drugog)
- Base address je 00401000
- Size of code je 8000
- CALL target je 010D0000 koji je adresa na kojoj se nalazi AIP
- Da ispravicemo sve padding bajtove
- Posle ovoga otvaramo bcMaster u koji unosimo podatke o prvom (father) i
drugom (slave) procesu. Izabiramo CALLsMAP opciju i selektujemo
CALLsMAP.txt od drugog procesa. Ovo ce popraviti sve AIP redirekcije. Ono
sto je jos potrebno uraditi pomocu bcMastera je kopiranje API pointera sa
adrese 0040B6A8. Broj ovih bajtova je odredjen prvim sledecim 0x00000000
DWORDom koji predstavlja krajnju adresu za kopiranje podataka iz prvog u
drugi proces. Posle ovoga svi podatci su iskopirani iz prvog Olly procesa
i mozemo ga zatvoriti.
- Sada cemo uraditi dump drugog procesa pomocu LordPEa.
- Sada treba da pronadjemo podatke koje cemo uneti u RL!Weasle.Ovo radimo
tako sto ispratiti drugi NEAR JUMP (adresa 00401068) u dumpu i
skrolovacemo gore sve dok ne nadjemo 0x00000000 DWORD. To cemo videti
na adresi 0040B098.Posto i API pointeri sa 0040B6A8 ulaze u +1000 search
opseg u From polje unosimo 0040B098. Klik na Search ce popraviti sve
importe. Sada nam ostaje da exportujemo novi tree i da pomocu ImpReca
popravimo IAT na standardan nacin. Gotovo!

--[ 0x03 ]---------------------------------------------[ .Contact ]

WebSite: http://ap0x.jezgra.net
email: ap0x.rce[at]gmail[dot][com]

--[ 0x04 ]---------------------------------------------[ Outro & Greetz ]

Za razliku od svih mogucih tutorijala o ASProtect 2.2 SKEu koje sam
procitao ovo je daleko najjednostavniji nacin popravke importa koji je
ovaj posao pretvorio u obican sablon. Vise nema potrebe za rucnim
intervencijama osim u slucajevima greske 115 kada taj API (samo za
verziju 2.2) mozete slobodno NOPovati.

Greetz:

deroko | SND | TSRh | Reversing Labs | b4d_s3c70r | Jezgra

--[ EOF ]----------------------------------------------[ made by Ap0x ]

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT