[Assembler] Assembler w systemie Windows XP - jak rozpocząć naukę?

0

Witam, na uczelni uczyliśmy się assemblera w środowisku Linux, dokładnie openSUSE i powiem szczerze, że podziwiam ludzi, którzy odnajdują się w tym systemie, ja tam nie czuję się najlepiej, wszystko tam zbyt różni się od poruszania w systemie Windows i tym samym można to porównać z próbą korzystania z łazienki u obcej osoby :P - wiem marne porównanie :P.

Przechodząc do sedna, chciałbym rozpocząć naukę assemblera w systemie operacyjnym Windows XP, jak powinienem rozpocząć naukę? Głównie chodzi mi o informacje odnośnie architektury no i z jakich narzędzi mam skorzystać? Wiem, że na google znajdę sporo informacji na ten temat, ale chciałem się zapytać pod kątem pisania programów hybrydowych, nie wiem nawet czy coś takiego jest możliwe do wykonania w Visual Studio 2010 Express czy tam Ultimate.

Też interesuje mnie kwestia różnicy architektury procesora, ja korzystam z procesora AMD, ale jakoś na zajęciach korzystaliśmy z procesorów Intel a ja w domu mogłem wykonywać te same zadania na procesorze AMD? Jest to dla mnie czarna magia nie rozumiem jak to jest możliwe skoro te architektury się podobno różnią? (nie wiem jak to działa) To tak w ramach dygresji.

Pytam tutaj programistów, ponieważ mam nadzieję, że nakierujecie mnie co powinienem przeczytać, żeby zrozumieć i używać assemblera w systemie operacyjnym Windows :). Wiem też, że od czasu, kiedy komputery są szybsze zainteresowanie assemblerem maleje, ale mam nadzieję, że kilka specjalistów z tej dziedziny znajdzie się i podzielą się oni wiedzą na ten temat.

Zainteresowałem się tematem, ponieważ podobno czasami można zaoszczędzić bardzo dużo mocy obliczeniowej czy też pamięci wykorzystując rozwiązania hybrydowe (zoptymalizowany kod assemblera w połączeniu z rozwiązaniami wysokiego poziomu).

Ja docelowo jestem zainteresowany tylko rozwiązaniami w językach C/C++/C# i właśnie w nich chciałbym się nauczyć stosować rozwiązania hybrydowe.

Może też ktoś będzie mógł mi polecić literaturę z tej dziedziny (w języku polskim ewentualnie angielskim jeśli jest to bestseller). Interesują mnie też materiały dotyczące rozbierania prostych programów na instrukcje assemblera w celu odtworzenia programu (np. tworzę prosty program na dodawanie, dokonuję deasemblacji i próbuje go odtworzyć - też tym samym chciałbym się nauczyć metod pozwalających na utrudnienie tego procesu w celu pisania później programów niepozwalających na łatwe "crack-owanie", chociaż utrudnić, bo wyeliminować się chyba nie da?

Z góry dziękuję za pomocne informacje.

0

Na początek: http://flatassembler.net/docs.php
Dalej: http://www.intel.com/products/processor/manuals/
Odnośnie analizy oprogramowania na początek, dosyć przystępnie napisana i mimo tego, że kody w pythonie to wyłożone są niezbędne podstawy na temat debuggowania softu: http://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921

Co do procesorów to poczytaj o architekturach takich jak x86, IA-64, etc i zrozumiesz, od tego możesz zacząć http://pl.wikipedia.org/wiki/X86

0
t0m_k napisał(a)

Na początek: http://flatassembler.net/docs.php
Dalej: http://www.intel.com/products/processor/manuals/
Odnośnie analizy oprogramowania na początek, dosyć przystępnie napisana i mimo tego, że kody w pythonie to wyłożone są niezbędne podstawy na temat debuggowania softu: http://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921

Co do procesorów to poczytaj o architekturach takich jak x86, IA-64, etc i zrozumiesz, od tego możesz zacząć http://pl.wikipedia.org/wiki/X86

Dzięki, rozejrzę się :)

0
t0m_k napisał(a)

Odnośnie analizy oprogramowania na początek, dosyć przystępnie napisana i mimo tego, że kody w pythonie to wyłożone są niezbędne podstawy na temat debuggowania softu: http://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921

Czytałem (a właściwie przeglądałem), jak dla mnie to gniot. Ani to do RE nie wprowadza, ani nie pokazuje jak w sensowny sposób korzystać z narzędzi wspierających Pythona, do tego króciutkie...

0
deus napisał(a)

Czytałem (a właściwie przeglądałem), jak dla mnie to gniot. Ani to do RE nie wprowadza, ani nie pokazuje jak w sensowny sposób korzystać z narzędzi wspierających Pythona, do tego króciutkie...

Raczej ta książka ma na celu pokazać tylko czego dalej się uczyć, a nie nauczyć. Jeśli będzie się ją czytało równocześnie uzupełniając wiedzę o każdym poruszonym zagadnieniu to według mnie na początek idealna.

edit: w każdym razie wyjaśnia podstawowe pojęcia, takie jak breakpointy, konwencje wywołań oraz odkrywa przed czytelnikiem winapi od strony podstaw manipulacji procesami i wątkami

0
t0m_k napisał(a)
deus napisał(a)

Czytałem (a właściwie przeglądałem), jak dla mnie to gniot. Ani to do RE nie wprowadza, ani nie pokazuje jak w sensowny sposób korzystać z narzędzi wspierających Pythona, do tego króciutkie...

Raczej ta książka ma na celu pokazać tylko czego dalej się uczyć, a nie nauczyć. Jeśli będzie się ją czytało równocześnie uzupełniając wiedzę o każdym poruszonym zagadnieniu to według mnie na początek idealna.

edit: w każdym razie wyjaśnia podstawowe pojęcia, takie jak breakpointy, konwencje wywołań oraz odkrywa przed czytelnikiem winapi od strony podstaw manipulacji procesami i wątkami

To podsumowując od czego mam zacząć? :P

0

Najlepiej od pisania normalnych programów, od zapoznania się z manualami Intela itd. Co do translatora to jesteśmy akurat z @t0m_k zgodni, Fasm. Co Ci będzie potrzebne to masz w jego dokumentacji wyjaśnione.

1 użytkowników online, w tym zalogowanych: 0, gości: 1