|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
[Asm]Problema
Ho scritto sto code:
Codice:
.model small .stack .data Message db 'Hello World by Lucas assembler', 13d, 10d, '$' .code Start: mov dx, OFFSET Message mov ax, SEG Message mov ds, ax ; set int 21h service 09h mov ah, 09h int 21h ; set int 21h service 4Ch(exit) mov ah, 4Ch int 21h end Start Quote:
__________________
Gnu/Linux User
|
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Che assemblatore usi??
Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
nasm su win32
__________________
Gnu/Linux User
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quella non è la sintassi di NASM.
Converti così : Codice:
[BITS 16] [ORG 0100h] [SECTION .text] start: mov dx, Message ; set int 21h service 09h mov ah, 09h int 21h ; set int 21h service 4Ch(exit) mov ah, 4Ch int 21h [SECTION .data] Message db 'Hello World by Lucas assembler', 13d, 10d, '$' A quanto sembra il programma che avevi scritto cercava di usare i Segmenti , in questo caso ho convertito il programma in "Flat Model" per semplicità . Assembla con : c:\> nasm nomefile.asm -f bin -o eseguibile.com Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
dove trovo na guida alla sintaxis nasm?
__________________
Gnu/Linux User
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
http://nasm.sf.net
C'è la documentazione , o comunque qualsiasi libro che insegna ASM usando la sintassi NASM (quello che ti ho consigliato nell' altro thread è un esempio) Il tuo programma comunque conteneva un errore : Message db 'Hello World by Lucas assembler', 13d, 10d, '$' deve diventare: Message db 'Hello World by Lucas assembler', 13, 10, '$' Togliendo le "d" dal "13" e dal "10" dato che il Decimale è già la base di default del NASM Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Tnk!
Cmq io volevo impararmi l'asm per il reverse enginering e per completezza. Cmq........tu per cosa usi l'asm e ritieni che si debba usare molto oggi? Io penso che serva conoscerlo e magari usarlo per ottimizzare ma nn serve per altro perche troppo complicato e poco gestibile per grandi progetti(a meno di fare demo di grafica in 64 kb Poi è bello sapere disassembleare un exe e capire + o - cosa fa, no?
__________________
Gnu/Linux User
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Sinceramente io sto imparando l'ASM per pura voglia di conoscienza
Non ho in mente nessun grande progetto da eseguire con asm , però l'asm ti permette di capire a fondo come funziona il tuo computer , e ti da il controllo totale su tutto Prima di iniziare a imparare l'ASM cos'era una "Interrupt Vector Table" , o la differenza tra "interrupt software" e "interrupt hardware" , cosa fosse il dispatcher di un sistema operativo , quale fosse il principio alla base di una CPU ... erano tutti concetti a me ignoti , l' ASM ti permette di capire a fondo tutto ciò, e già tutto questo per me è sufficiente . Io sapevo già programmare un pochino in C , ma nonostante io ne sappia molto + di C che di ASM in questo momento , imparare quel poco di ASM mi ha permesso di apprendere molto di + sul mondo dell' elaborazione elettronica che tutto il libro di C che mi ero letto in precedenza . Inoltre , sarà vero che l'ASM è complicato , ma ti permette anche di fare cose che altri linguaggi non ti permettono Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
anche io lo studio spinto dai tuoi motivi, sai?
Cosi capisci e comprendi di + come funzia un Pc.
__________________
Gnu/Linux User
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
Hai PVT
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
|
Quote:
Ora....prima di compilarlo e scoprire cos'è veramente riusciresti a dire cosa fà ?
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità |
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Quote:
__________________
Gnu/Linux User
|
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
|
Ho riletto ora un pò dei tuoi messaggi....mi sa ke la domanda ke ti ho fatto è un po prematura....come non detto.
Cmq volevo semplicemente farti capire ke da un disassemblato è un'impresa sapere cosa faccia un programma....ti ci vuole mezza vita. Pensa ke x soli 350 bytes (il compilato di quello ke ti ho postato) ci sono voluti 4k di sorgente...figurati x un normale eseguibile E il tutto senza un briciolo di commento, variabili o label significative. L'apprendimento dell'assembler deve essere visto in un'altra ottica. Il reverse enginering e l'ultima spiaggia da sfruttare solo quando si ha una totale conoscenza del linguaggio (lo devi leggere come un libro) altrimenti diventa una perdita di tempo fine a se stessa. E' molto + utile impararlo x scrivere algoritmi ke in un qualsiasi altro linguaggio risultino di difficile implementazione o poco efficenti. Questo almeno secondo le mie esperienze....poi vedi te
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Io voglio solo usarlo un po in modo inline nei punti critici dei miei prog.
Cmq il reversing è un idea grandissima. Cmq posso porti una sfida? Mi dici cosa potrebbe essere il prog dal file che ti posto?
__________________
Gnu/Linux User
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
|
Quote:
Cmq la sfida l'accetto se realmente ti serve sapere cosa fà...visto ke mi ci vogliono 2 giorni....sai com'è nel weekend vorrei fare altro e negli altri giorni lavoro
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità |
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Quote:
Cmq se vuo...........nn sentirti obligato
__________________
Gnu/Linux User
|
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
|
Non mi sentirei obbligato neanke se mi avessi pagato
Cmq da una rapida occhiata non mi sembra un semplice pgm in C (esegue delle call dinamiche). Ma l'hai scritto te o l'hai beccato da qualke parte ? Visto anke com'è scritto, lascio perdere anke xke x effettuare il reverse eng. spesso non si parte dall'entry point sino all'ExitProcess (e come leggersi tutto un libro di storia solo x sapere com'è andata la seconda guerra mondiale) ma sarebbe + inteligente utilizzare un debugger Hai provato a compilare quello ke ti ho postato ? (ke non è un disassemblato ma un vero e proprio sorgente....gli ho semplicemente cambiato le label...altrimenti era una passeggiata)
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:53.



















