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

Nauka asemblera

Object Storage Arubacloud
0 głosów
202 wizyt
pytanie zadane 15 kwietnia w Assembler przez Mist Obywatel (1,030 p.)
Witam ,chciem się dowiedzieć podstaw asembler'a co chciem wiedzieć ?

 

1.jakie ma rozszerzenie pliku asembler'a jeżeli w ogóle jakieś ma jeżeli nie to jak zapisywać coś w asembler'ze?

 

2.jakie są komendy itp którymi się wydaje polecenia ?

 

3.jak otworzyć asembler'a?

 

4.mozliwosci asembler'a?

 

Oczywiście z góry dziękuję za pomoc
komentarz 15 kwietnia przez 1337haxior Nowicjusz (100 p.)
1. .exe

2. są różne, mov, add, sub, cmp, jmp itd...

3. ida pro, cheat engine, reclass itd...

4. robienie cheatów lub modów do gier, tworzenie cracków do różnych programów itd...
komentarz 15 kwietnia przez Mist Obywatel (1,030 p.)
edycja 15 kwietnia przez Mist
Witaj,dziękuję za twoją odp która mi wyjaśniła podstawy
komentarz 15 kwietnia przez wizarddos Nałogowiec (26,050 p.)

@1337haxior,

.exe to plik wykonywalny systemu windows i nie ma nic wspólnego z asemblerem poza tym że może być wynikiem procesu asemblacji

ida pro, cheat engine, reclass itd...

IDA pro (Właściwie to po prostu IDA) to deasembler - zmienia postać wykonywalną (plik .exe, .o, .lib etc.) na instrukcje procesora

ReClass to program do inspekcji pamięci a nie asemblera

O tym ostatnim już nie będę wspominał

4. robienie cheatów lub modów do gier, tworzenie cracków do różnych programów itd...

Jakimś dziwnym trafem wymieniłeś tu tylko te złe zastosowania asemblera pomijając całą masę przydatnych...

 

komentarz 16 kwietnia przez Iei Obywatel (1,950 p.)
Jak otworzyć assemblera - no np. w visual studio code wybierasz Otwórz plik i dalej ten plik z assemblerem. W linuxie jeszcze prościej - wpisujesz cat plikzassemblerem.asm gdy chcesz wyświetlić plik lub gedit plikzassemblerem.asm gdy chcesz edytować (o ile dobrze zrozumiałem pytanie)
komentarz 16 kwietnia przez Mist Obywatel (1,030 p.)
Witaj,rozumiem napewno mi to pomoże

1 odpowiedź

+3 głosów
odpowiedź 15 kwietnia przez wizarddos Nałogowiec (26,050 p.)
wybrane 16 kwietnia przez Mist
 
Najlepsza

1. Kod źródłowy często zapisuje się w plikach `.asm`

2. Może lektura tych materiałów do zajęć z uj trochę ci rozjaśni

3. Niezbyt się da, tak samo jak nie otworzysz C++, pythona, Javascriptu. Możesz co najwyżej asemblować kod do pliku .exe albo .o (tu czytaj ostatnią sekcję)
4. Trochę ich jest

  • małe programy dla systemów wbudowanych: oprogramowanie dla telefonów, lodówek, samochodów itp.
  • sterowniki urządzeń,
  • wykonywanie poleceń procesora nie dostępnych w językach wysokiego poziomu, np. rotacja bitów dla kodowania,
  • obliczenia wektorowe: MMX, SIMD,
  • oprogramowanie które wymaga ekstremalnej wydajności: gry, pakiety algebry liniowej,
  • oprogramowanie dla komputerów dla których nie istnieja języki wysokiego poziomu
  • pisanie kompilatorów
  • pisanie wirusów komputerowych i bootloaderów
  • reverse-enginering, modyfikowanie plików wykonywalnych, łamanie zabezpieczeń
  • kod samo modyfikujący się
komentarz 15 kwietnia przez reaktywny Nałogowiec (41,090 p.)
Zastosowania ciekawe, ale dziś już po asm sięga się raczej rzadko i wszystkie powyższe zadania wykonuje się w językach wyższego poziomu.
komentarz 15 kwietnia przez wizarddos Nałogowiec (26,050 p.)
Wiem wiem, trochę z tego co widziałem C wypiera porządnie asm'a

 

A to akurat było bardziej Ctrl+C, Ctrl+V z tamtych materiałów
komentarz 16 kwietnia przez Mist Obywatel (1,030 p.)

@wizarddos, ok dzięki 

komentarz 18 kwietnia przez sensor Użytkownik (680 p.)
edycja 18 kwietnia przez sensor

@wizarddos, witam, mógłbyś mi powiedzieć podstawową i najważniejszą zaletę assemblera, ale technicznie a nie tak w stylu

  • Programista panuje nad wszystkim, pozwala to wyeliminować niektóre zmienne czy instrukcje.
  • Do kodu nie są dołączane zbędne biblioteki "standardowe".
  • Można wybrać instrukcje, które są krótsze lub szybsze.

 hmmm z tym panowaniem nad wszystkim to trochę dziwne, nie wiem co nawet na to napisać

co do bibliotek to też dziwne jak sformułowanie ja na rzekomo niski poziom programowania, da się to ruszyć z dosu? prosto z biosu bez systemu?

co do instrukcji to też niewiele mówi bo co to w ogóle ma znaczyć

ty widzę że obeznany to prośba o wyjaśnienie

komentarz 19 kwietnia przez wizarddos Nałogowiec (26,050 p.)

hmmm z tym panowaniem nad wszystkim to trochę dziwne, nie wiem co nawet na to napisać

Chodzi o to, że asembler składa się z instrukcji przekazywanych wprost do procesora i wykonywanych na nim. Jak np. w C

#include <stdio.h>
int main() {
   // printf() displays the string inside quotation
   printf("Hello, World!");
   return 0;
}

"czytanie kodu" wyglądałoby mniej więcej tak

Dołącz bibliotekę stdio.h -> zadeklaruj funkcję główną -> wyświetl "Hello world" -> zwróć "0" jako pozytywne zakończenie programu

Tak w asemblerze 

          global    _start

          section   .text
_start:   mov       rax, 1                 
          mov       rdi, 1                  
          mov       rsi, message           
          mov       rdx, 13                
          syscall                          
          mov       rax, 60                 
          xor       rdi, rdi               
          syscall                           

          section   .data
message:  db        "Hello, World", 10   

To coś bardziej w stylu

zadeklaruj sekcję `_start` dla programu -> uruchom sekcję start w  której

Przekaż do rejestru procesora `rax` wartość 1 - wywołanie systemowe dla zapisu
Przekaż do rejestru `rdi` wartość 1 - stdout

Przekaż do rejestru rsi adres zmiennej message

(i jescze prarę innych tego typu przekazań)

 To samo wyjaśnia drugi punkt - w asemblerze nie dołącza się cała biblioteka, która zawiera inne funkcje więc wykorzystujemy mniej zasobów

 

A w punkcie trzecim autor pewnie miał na myśli wykonywanie instrukcji bezpośrednio procesora a nie dokładanie dodatkowej warstwy abstrakcji jaką daje język programowania

 

1
komentarz 20 kwietnia przez Oscar Nałogowiec (29,320 p.)

A w punkcie trzecim autor pewnie miał na myśli wykonywanie instrukcji bezpośrednio procesora a nie dokładanie dodatkowej warstwy abstrakcji jaką daje język programowania

Raczej chodziło autorowi o instrukcje przełączające różne wewnętrzne bebechy w procku typu w włączanie/wyłączanie przewań, ustawienia adresu tablicy przerwań, ustawienie stosu, jakieś przełączanie trybów (usypianie, oszczędzenie mocy, zegara itp) albo chociaż instrukcję IO, w prockach które to mają. Tego typu instrukcji używa się normalnie tylko w trakcie startu systemu/programu. Można to oczywiście zaimplementować jako funkcje w bibliotece, ale ta biblioteka musi być napisana w asemblerze, co zresztą dotyczy też wielu bibliotek niskopoziomowych - np.. printf gdzieś tam po iluś poziomach zchodzenia w funkcjach (jako write albo putchar) konczy się kodem podobnym do tego, który zacytowałeś w asemblerze i którego nie da się już napisać w C.

komentarz 20 kwietnia przez wizarddos Nałogowiec (26,050 p.)

@sensor, 

da się to ruszyć z dosu? prosto z biosu bez systemu?

Da się, to tzw. bare metal programming

Podobne pytania

0 głosów
0 odpowiedzi 189 wizyt
pytanie zadane 29 stycznia 2018 w Assembler przez winwoj Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 252 wizyt
pytanie zadane 19 października 2022 w Assembler przez koleś34 Gaduła (3,270 p.)
+1 głos
1 odpowiedź 1,114 wizyt

92,666 zapytań

141,564 odpowiedzi

320,021 komentarzy

62,033 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

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!

...