Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa ukradenim bitovima!

[es] :: Zaštita :: Problem sa ukradenim bitovima!

[ Pregleda: 2177 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mr. Jack

Član broj: 39108
Poruke: 106
*.vdial.verat.net.



Profil

icon Problem sa ukradenim bitovima!23.01.2005. u 13:01 - pre 234 meseci
program je Any dvd v4.5.5.1 http://static.slysoft.com/SetupAnyDVD4551.exe

PEID: ASprotect 1.23 RC4 - 1.3.08.24

false OEP:4435D6

sa scroll up se vidi 14 ukradenih bitova

na poslednjem exception stavim breakpoint na return pa tc EBP==ESP i pre OEP-a staje na samo jedno mesto:

Code:

009857AC    55              PUSH EBP      <- ukradeni bitovi
009857AD    8BEC            MOV EBP,ESP
009857AF    53              PUSH EBX
009857B0    56              PUSH ESI
009857B1    8B75 0C         MOV ESI,DWORD PTR SS:[EBP+C]
009857B4    8B5D 08         MOV EBX,DWORD PTR SS:[EBP+8]
009857B7    EB 11           JMP SHORT 009857CA
009857B9    0FB703          MOVZX EAX,WORD PTR DS:[EBX]
009857BC    03C6            ADD EAX,ESI
009857BE    83C3 02         ADD EBX,2
009857C1    8BD0            MOV EDX,EAX
009857C3    8BC6            MOV EAX,ESI
009857C5    E8 0C000000     CALL 009857D6
009857CA    66:833B 00      CMP WORD PTR DS:[EBX],0
009857CE  ^ 75 E9           JNZ SHORT 009857B9
009857D0    5E              POP ESI
009857D1    5B              POP EBX
009857D2    5D              POP EBP
009857D3    C2 0800         RETN 8
009857D6    0102            ADD DWORD PTR DS:[EDX],EAX
009857D8    C3              RETN


sad je pitanje kojih 14 bitova su ukradeni?

Cinimi se da ovo jesu ukradeni bitovi iako neme pomeranja stek pointera to se radi u narednom pozivu.

Pozdrav.
Planets devastated
Mankind's on its knees
A saviour comes from out the skies
In answer to their pleas...

M.R. J.A.C.K
 
Odgovor na temu

39145nobody

Član broj: 39145
Poruke: 327
*.dial-up.arnes.si.



Profil

icon Re: Problem sa ukradenim bitovima!24.01.2005. u 06:28 - pre 234 meseci
Ovo nisu ukradeni bajti .


004435C7 |. 59 POP ECX ; ANYDVD_5.004435D6
004435C8 |. 59 POP ECX ; ANYDVD_5.004435D6
004435C9 \. C3 RETN

004435CA 00 DB 00 ; stolen bytes
004435CB 00 DB 00
004435CC 00 DB 00
004435CD 00 DB 00
004435CE 00 DB 00
004435CF 00 DB 00
004435D0 00 DB 00

004435D1 . E8 72460000 CALL ANYDVD_5.00447C48 ; end of stolen bytes
004435D6 . BF 94000000 MOV EDI,94



Meni to izgleda kot 7 stolen bytes .


Kako pridemo do sem ? Alt+K (Call Stack) , glej "Called from" , vidimo da je klican od 004435D1 .

Call stack of main thread
Address Stack Procedure / arguments Called from Frame
006CFDB8 004435D6 ANYDVD_5.00447C48 ANYDVD_5.004435D1 006CFE38



Poslednji exception :


00E339EC 3100 XOR DWORD PTR DS:[EAX],EAX ; we are here
00E339EE 64:8F05 00000000 POP DWORD PTR FS:[0] ; 006CFF68
00E339F5 58 POP EAX ; 006CFF68
00E339F6 833D B07EE300 00 CMP DWORD PTR DS:[E37EB0],0
00E339FD 74 14 JE SHORT 00E33A13 ; press F2 here
00E339FF 6A 0C PUSH 0C
00E33A01 B9 B07EE300 MOV ECX,0E37EB0



Stisni F2 na 00E339FD 74 14 JE SHORT 00E33A13 (adresa če biti drugčija !) , onda Shift+F9 , disable F2 , Alt+M (memory bp on access na "code" section) , Alt+C (nazaj v CPU Window) ,
Ctrl+T :
[Condition is TRUE] esp==ebp


V "Debugging options" -> "Trace" označi samo "Log commands" , "Show ESP" .

Onda Ctrl+F11 (više puta če se ustaviti ). Pritiskaj Ctrl+F11 dokler ne prideš do fake OEP.
 
Odgovor na temu

39145nobody

Član broj: 39145
Poruke: 327
*.dial-up.arnes.si.



Profil

icon Re: Problem sa ukradenim bitovima!24.01.2005. u 11:44 - pre 234 meseci
Small tut for OEP .

Stolen bytes so dobljeni iz Log Window nakon trace-anja sa Ctrl+F11 i memory bp na code section. (Meni View -> Run Trace) .[Za boljšo razpoznavnost : desni klik "Highlight register" -> ESP] . Greš na čisto spodaj kjer piše 0 ,onda pritiskaj "Page Up" dokler ni konec REP STOS BYTE PTR ES:[EDI]

Pri meni so na 5413 in 5412 stolen bajti (v rdeči barvi).

Prikačeni fajlovi
 
Odgovor na temu

Mr. Jack

Član broj: 39108
Poruke: 106
213.244.197.*



Profil

icon Re: Problem sa ukradenim bitovima!25.01.2005. u 11:50 - pre 234 meseci
hvala na odgovoru!

Da da sad mi je jasno, mislio sam da se u trace log uvek trazi EBP=ESP ali vidim da to nije slucaj. Ali nisam uspeo da popravim IAT evo sta sam uradio:

- nop magic call
- trace level 1 dissasemble
- plugin tracer ASProtect 1.22

ali program se gasi bez ikakve poruke.


Pozdrav.
Planets devastated
Mankind's on its knees
A saviour comes from out the skies
In answer to their pleas...

M.R. J.A.C.K
 
Odgovor na temu

39145nobody

Član broj: 39145
Poruke: 327
*.dial-up.arnes.si.



Profil

icon Re: Problem sa ukradenim bitovima!25.01.2005. u 12:58 - pre 234 meseci
Citat:
Mr. Jack: hvala na odgovoru! :-)

Da da sad mi je jasno, mislio sam da se u trace log uvek trazi EBP=ESP ali vidim da to nije slucaj. Ali nisam uspeo da popravim IAT evo sta sam uradio:

- nop magic call
- trace level 1 dissasemble
- plugin tracer ASProtect 1.22

ali program se gasi bez ikakve poruke.


Stolen bytes so iz "Trace Log" . Aspr "zjebe" IAT , tako da moraš ručno provjeriti od kod do kod je IAT (ako popravljaš sa ImpRec) traži FF 25 i onda "folow in dump memory address"
-------------------------

iat:


start:
454000 (454000 - 400000 = 54000 -> vpišeš v RVA input box)

fin:
45428c


size : fin - start = 45428c - 454000 = 28c
 
Odgovor na temu

39145nobody

Član broj: 39145
Poruke: 327
*.dial-up.arnes.si.



Profil

icon Re: Problem sa ukradenim bitovima!27.01.2005. u 11:48 - pre 234 meseci
Nešto tebi nije jasno . Ovo si napisao:

- nop magic call
- trace level 1 dissasemble


------------------------------
Ako loadaš AnyDVD (pakirano verzijo) brez NOP-anja Magic CALL , a onda Imprec -> (vpišeš OEP) -> IAT Auto Search)

Ima 95 "unresolved pointers" !

------------------------------


2 Way : NOP Magic CALL


(V Debugging Options -> Exceptions -> Ignore memory access violation in KERNEL32 ; samo ovo mora biti označeno)

Loadaš "AnyDVD.exe" v ollydbg ,F9 , Ollydbg se ustavi na :

Message=Access violation when writing to [00000000]

, stisni tipko "Home" , Ctrl+B -> HEX+00 vpišeš ovo: 8B 17 89 02


009932B4 E8 47FCFFFF CALL 00992F00
009932B9 E8 7EFEFFFF CALL 0099313C ;Magic CALL , daj bp (F2) ovdje
009932BE 8B17 MOV EDX,DWORD PTR DS:[EDI] ; we land here

Onda Shift+F9 (okoli 19 krat) dokler ne brejka na Magic CALL .
Desni klik -> Binary -> Fill with NOPS .

Pritisni F9 , onda " - " (minus , koji je na desni strani tipkovnice) , označi ove 4 NOP-e , desni klik -> Undo

selection . Onda slijedi procedura kao na početku , dokler nisi na fake OEP.

Pravi OEP :

004435CA > 6A 60 PUSH 60 ;
004435CC 68 085C4500 PUSH AnyDVD.00455C08


Popravi da izgleda kao ovdje (v Ollydbg) .

Kad si sredio OEP , klik na 004435CA , potem desni klik -> New Origin here .
Dumpaj sa Ollydump. Loadaj Imprec . (upišeš za OEP 435CA (offset) , a onda može i IAT Auto Search).

Ovo piše v LOG-u (v ImpRec):

Current imports:
4 (decimal:4) valid module(s) (added: +4 (decimal:+4))
9E (decimal:158) imported function(s). (added: +9E (decimal:+158))
(6 (decimal:6) unresolved pointer(s)) (added: +6 (decimal:+6))


Onda Klik na "Show Invalid" -> desni klik -> Plugin Tracers -> ASProtect 1.23 rc4 .

Ostati če još samo jedan (1) "invalid pointer":

Ponovno klik na "Show Invalid" -> desni klik -> Plugin Tracers -> ASProtect v1.2x Emul API . Izkaže se, da se radi

o user32.dll / DialogBoxParamA.


Programeri se stavili još nekoliko trika ,da ne možeš loadati razpakirano verzijo . Preimenuj "AnyDVD.exe" ->

"xxAnyDVD.exe" ; potem "dump_.exe" v "AnyDVD.exe" .

Ima još nekoliko trikova ovdje (sam češ jih vrlo brzo nači)
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Zaštita :: Problem sa ukradenim bitovima!

[ Pregleda: 2177 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.