Fråga:
Hitta referens till sträng i radare2
robert
2015-12-18 21:50:47 UTC
view on stackexchange narkive permalink

I denna crackme -lösning hittas strängarna:

  $ rabin2 -z crackserial_linuxaddr = 0x00000aa0 off = 0x00000aa0 ordinal = 000 sz = 7 len = 7 sektion = .rodata typ = A sträng = Användare: addr = 0x00000aa7 av = 0x00000aa7 ordinal = 001 sz = 11 len = 11 sektion = .rodata typ = A sträng = Lösenord: addr = 0x00000ab2 av = 0x00000ab2 ordinal = 002 sz = 10 len = 10 sektion = .rodata typ = A sträng = Bra jobbat! Addr = 0x00000abc av = 0x00000abc ordinal = 003 sz = 10 len = 10 sektion = .rodata typ = A sträng = Försök igen  

efter det refereras till "Bra jobb" letas efter.

  $ radare2 crackserial_linux - Vad sägs om ett trevligt schackspel? [0x080488c4] > / c ab2f hit_0 @ 0x08048841 # 5: tryck 0x8048ab2 [0x080488c4] >  

Jag försökte samma sak, men fungerar inte för mig:

  $ r2 crackserial_linux [0x080488d0] > !! rabin2 -z crackserial_linux [strängar] addr = 0x08048d80 off = 0x00000d80 ordinal = 000 sz = 7 sektion = .rodata sträng = användare: addr = 0x08048d87 off = 0x00000d87 ord inal = 001 sz = 9 sektion = .rodata sträng = Seriell: addr = 0x08048d90 av = 0x00000d90 ordinal = 002 sz = 10 sektion = .rodata sträng = Bra jobb! addr = 0x08048d9a off = 0x00000d9a ordinal = 003 sz = 10 sektion =. rodata string = Försök igen4 strängar [0x080488d0] > / c d90 [0x080488d0] > 

Varför är förresten strängarna i mitt fall på olika platser?

_` / ​​c` använder mönstermatchning med hjälp av `1118c` ger dig inga resultat med hjälp av` 18c` kommer att spytt många resultat tänka på det innan du frågar varför._Varför? Är det på grund av PIE och är relaterat till virtuellt minne?
Två svar:
Maijin
2015-12-20 20:18:21 UTC
view on stackexchange narkive permalink

Även axt :

Använd som axt @ hello_world_n ger dig referensen.

axt verkar bara ta en adress som inmatning inte en sträng jag kunde locka axt för att skriva ut en xref med axt str.hello_world_n i hello world.exe men många andra exer misslyckas med att hitta xrefs
Ja du ger kommandot en flagga alias en adress. För att hitta mer xref använd `aar`. "aaa" inkluderar "aar". `r2 -A bin.exe` är samma som` aaa`
blabb
2015-12-19 14:50:07 UTC
view on stackexchange narkive permalink

som kommenterad av Daniel W Crompton har kommandot / c omfördelats till krypto grejer använd axt för att hitta referenser

  [0x140035bf0] >! radare2 -vradare2 4.3.1 6 @ windows-x86-64 git.4.3.1commit: 54ac837b5503f10f91e2069ac357791f7a3e635a build: fre 03/06 / 2020__15: 52: 24.93 [0x140035bf0] > / c? Användning: / c Sök efter kryptomaterial | / ca Sök efter AES-tangenter utökade i minnet | / cc [algo] [digest] Hitta kollisioner (bruteforce blocklängdvärden tills given kontrollsumma hittas) / cd Sök efter ASN1 / DER-certifikat | / cr Sök efter ASN1 / DER privata nycklar (RSA och ECC)  

Att döma av de olika inläggen du gjorde nyligen verkar det som om du inte har en korrekt installation kanske du borde försök att avinstallera och installera om radare2-paketet

Beröm per se verkar fungera korrekt för mig här:

  radare2-w32-0.9.9> cat xxx \ helloworld.cpp # inkluderar <stdio.h>int main (void) {printf ("hej världen \ n"); retur 0;} radare2-w32-0.9.9> radare2 xxx \ helloworld.exe [0x00401347] > iz ~ hej värld vaddr = 0x0041218c paddr = 0x0001118c ordinarie = 000 sz = 13 len = 12 sektion = .rdata typ = en sträng = hello world \ n 

/ c använder mönstermatchning med 1118c ger dig inga resultat med 18c kommer tänka på många resultat, tänk på det innan du frågar varför (det är en av nackdelarna med att följa tutar blindt / d90 eller / ab2 faller i denna kategori)

Låter oss söka efter xrefs till den virtuella adressen

  [0x00401347] > / c 41218c0x00401003 # 5: push 0x41218c  

Demontera runt träffen

  [0x00401347] > pd 5 @ 0x401000; - avsnitt..text: 0x00401000 55 push ebp; 0x00401001 8bec mov ebp, esp
; - hit0_0: 0x00401003 688c214100 push str.hello_world_n; "Hej världen." 0x00401008 e807000000 samtal 0x401014; 0x00401014 (unk, unk) 0x0040100d 83c404 add esp, 4  
Kommandot / c fungerar inte längre för detta, det används nu för krypto, axt fortsätter arbetet.


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...