• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Pytań kilka o asemblerze

Object Storage Arubacloud
0 głosów
215 wizyt
pytanie zadane 15 stycznia 2018 w Assembler przez Milesq Nałogowiec (32,020 p.)
zamknięte 15 stycznia 2018 przez Milesq

Czytam książkę Inżynieria odwrotna w praktyce

jako tako asemblera znam, przynajmniej tak myślałem, ale asembler stosowany w tej książce ma parę "dziwnych" szczegółów np.

w książce mamy taki fragment kodu:

01: 8B 45 0C			mov		eax, [ebp+0Ch]
02: 83 61 1C 00			and		dword ptr [ecx+10h], 0
03: 89 41 0Ch			mov		ecx+0Ch], eax
04: 8b 45 10			mov		eax, [ebp+10h]
05: C7 01 13 01 00+ 	mov		dword ptr [ecx], 113h
06: 89 41 10			mov		[ecx+10h], eax

i teraz pytania

1) czy te numerki na początku każdej lini są obowiązkowe? w innych miejscach autorzy ich nie stosują, czy to są tylko zaznaczenia numerów lini które  kodzie nie występują?

2)  drugiej lini mamy coś takiego dword  ptr to chyba zaznaczenie żę dane będą typu double word, tylko co to jest ptr i dlaczego czasem jest a czasem nie?

3) druga linia zeruje to co jest zapisane w ramie pod adresem ecx + 10h, czyli ecx dodać 16

zeruje instrukcją and, bo cokolwiek przepuszczone przez and'a gdzie drugim parametrem jest 0 da 0,

czasem można spotkać się z zapisem

xor ecx, ecx

i to też wiadomo bo ta sama wartość na obu wejściach xor'a da zawsze 0

pytanie dlaczego używamy and ecx, 0 lub xor ecx, ecx zamiast mov ecx, 0?

to chyba logiczniejsze?

4) w każdej lini, po oznaczeniu numeru lini ale przed instrukcjami mamy jakieś liczby w szesnastkowym, co to?

np C7 01 13 01 00+

widzę pewne zależności między nimi a instrukcjami, ale wolę wiedzieć na pewno, używamy ich w kodzie?

5) na drugiej stronie w książce mamy wyjaśnione w postaci tabeli że liczbę 113h z 5 linii  komputer przedstawia binarnie jako

00000000 00000000  |  00000001  |  000100111

Liczba                        |Waga           | Typ

 

i teraz pytanie przecież liczba 0x113 to liczba 275dec czyli binarnie 100010011

więc widać że w polu Waga mamy pierszą cyfrę z tej liczby (1)

a reszta jest  polu typ,

i teraz pytanie po co są te pola? w sensie po co jest np. liczba itp. to jakiś standard zapisu liczb? jeśli tak to jaki?

komentarz zamknięcia: Padła już wystarczająca odpowiedź

1 odpowiedź

+1 głos
odpowiedź 15 stycznia 2018 przez criss Mędrzec (172,590 p.)
wybrane 15 stycznia 2018 przez Milesq
 
Najlepsza
  1. Po co to drukowali - nie wiem. Najprawdopobniej jest to liczbowe przedstawienie rozkazu (tzn. tak jak wygląda w pamięci)
  2. odwołując się do [some_address] precyzujesz tylko miejsce w pamięci (adres), ale nadal nie wiadomo ile bajtów chcesz wziąć pod uwage. Do tego służy operator rozmiaru (ja to tak nazywam przynajmniej) czyli `<rozmiar> ptr` gdzie pod <rozmiar> możesz podstawić byte, word, dword itd.
  3. Mówi się, ze zerowanie za pomocą xor-a jest szybsze. Co do and-a nic nie słyszałem.
  4. To nie jest to samo pytanie co 1) ?
  5. Tu nie wiem o co chodzi tym bardziej, że nie mam wspomnianej książki
komentarz 15 stycznia 2018 przez Milesq Nałogowiec (32,020 p.)

Dziękuję, jeśli chodzi o piąte to coś znajdę

a co do czwartego to nie w pierszym chodziło o 

to

01: ...

02: ...

a w czwartym o to

05: C7 01 13 01 00+     mov     dword ptr [ecx], 113h

czyli to jest to liczbowe przedstawienie rozkazu

 

komentarz 15 stycznia 2018 przez criss Mędrzec (172,590 p.)
A, to co do 1): nie, nie sa obowiązkowe. Nawet zabronione, chyba, że coś mnie ominęło, ale nie sądze, zeby etykieta mogła się zaczynać od cyfry.
Co do 4): tak, to jest to

Podobne pytania

0 głosów
1 odpowiedź 197 wizyt
pytanie zadane 11 kwietnia 2016 w Assembler przez noname375 Początkujący (300 p.)
0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 15 kwietnia w Assembler przez Mist Użytkownik (590 p.)
0 głosów
0 odpowiedzi 36 wizyt
pytanie zadane 1 grudnia 2023 w Assembler przez hutsalo1998 Użytkownik (520 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...