Tout d'abord, toute la Team Hackademy vous souhaite une année 2008 pleine de bonnes choses !
Pour débuter cette année, nous sommes heureux de vous annoncer que le Ezine commence à prendre forme (surtout l'équipe qui dirigera celui-ci) et devrait apparaitre sur le Web début Avril. Cela peut paraitre loin mais nous voulons vraiment faire un Ezine de qualité, cela demande donc beaucoup de préparation.
Pour ceux qui aimeraient publier dans le premier numéro il est encore temps d'envoyer vos articles (au pire il seront pour le prochain numéro) directement à redaction@thehackademy.net.
Autre annonce importante, le premier meeting HZV aura lieu le 16 Février 2008 sur Paris (dans les locaux de Sysdream). Celui-ci sera mensuel et aura pour concept de dispenser une formation d'environ 4h sur divers thèmes choisi par la communauté. Le premier thème abordé sera la sécurité VoIP et sera dispensé par CrashFr. Il vous est possible de réserver vos places en formulant votre demande sur meeting@thehackademy.net. Les meeting sont aussi l'occassion pour ceux qui n'auront pas la chance d'assister à la formation de faire des rencontres avec les autres membres de la communauté. Biensur ce meeting est ouvert à tous et gratuit (seul la limite de place disponible peut vous empecher l'accès; alors faites vite !).
Bonne année et n'oubliez pas: HZV will never die !
|
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
HacKSpideR

Inscrit le: 19 Juin 2007 Messages: 37
|
Posté le: Jeu Mar 06, 2008 10:48 pm |
Sujet du message: [ASM] Problème de buffer avec appel linux
|
|
Bonjour à tous,
Je me suis remie à la programmation bas niveau mais sous linux et j'ai essayer de faire un programme simple écrivant dans un fichier.
Mais je n'arrive pas à utilisé le nom du fichier rentré par l'utilisateur et stocké dans un buffer.
Voici le morceau de code (syntaxe Intel avec nasm) :
| Code: | BITS 32
SECTION .data
message db "Fichier : ",10
SECTION .bss
buffer resb 1024
buffer_len equ $-buffer
SECTION .code
GLOBAL _start
_start:
mov eax, 4 ; Fonction WRITE
mov ebx, 1
mov ecx, message
mov edx, 10
int 0x80
mov eax, 3 ; Fonction READ
mov ebx, 0
mov ecx, buffer ; Buffer
mov edx, buffer_len ; Taille buffer
int 0x80
mov eax, 5 ; Fonction OPEN
mov ebx, buffer
mov ecx, 10 ; Flag
mov edx, 0 ; Mode
int 0x80
test eax, eax
js error
push eax |
Donc le premier appel affiche le message "fichier :" ensuite, l'utilisateur doit entrer le nom du fichier et là impossible d'ouvrire le fichier, je prend le jump error.
J'ai entendu parler qu'il y'avait un caractére ( peut-etre un "\n" ) à la fin de la saisie dans le buffer.
Auriez vous une idée ?
Dernière édition par HacKSpideR le Dim Mar 09, 2008 6:23 pm; édité 1 fois |
|
| Revenir en haut |
|
 |
Celelibi

Inscrit le: 29 Mar 2006 Messages: 770
|
Posté le: Ven Mar 07, 2008 5:16 pm |
Sujet du message:
|
|
À priori je dirais que tu as le même problème que tu aurait en C avec la fonction read.
en gros en C ton code donne un truc genre : | Code: | char *message = "Fichier : "; /* Ici un \0 final est rajouté par le compilateur */
char buffer[1024];
int buffer_len = 1024;
write(1, message, 10);
read(0, buffer, buffer_len);
if (open(buffer, 10, 0) == 0)
/* Erreur */ |
Y'a des tas de trucs qui me dérangent là dedans.
Tu ne vérifie pas le retour de tes appels système.
Par conséquent tu n'as aucune idée de la taille des données lues. La fonction open ne pourra pas deviner que dans la chaîne "blahʱæzåʱ" le nom du fichier que tu voulais désigner c'est blah.
Ensuite, j'ai pas trouvé de combinaison de modes qui donne 10.
Commence par résoudre ton problème de chaîne de caractère en rajoutant un caractère nul à la fin de la chaîne lue.
Sinon, pourquoi coder en assembleur ? Tu en as que rarement besoin, la plus part du temps du C bas niveau suffit.
Et puis y'a pas de "h" dans syntaxe. _________________ Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...) |
|
| Revenir en haut |
|
 |
HacKSpideR

Inscrit le: 19 Juin 2007 Messages: 37
|
Posté le: Ven Mar 07, 2008 6:32 pm |
Sujet du message:
|
|
D'accord, je vais ajouter un caractère nul et vérifier le retour des appels systèmes.
J'ai fait ce code en assembleur pour m'amuser, j'écrit rarement en asm.
Mais merci pour l'aide je vais voir ce que sa donne.
et désolé pour la faute d'orthographe. |
|
| Revenir en haut |
|
 |
Apophis1988
Inscrit le: 05 Aoû 2007 Messages: 69
|
Posté le: Sam Mar 08, 2008 8:22 pm |
Sujet du message:
|
|
| Celelibi a écrit: |
Sinon, pourquoi coder en assembleur ? Tu en as que rarement besoin, la plus part du temps du C bas niveau suffit.
|
En effet, et si du C bas niveau ne suffit pas, on préfère généralement interfacer l'asm avec le C pour pouvoir bénéficier de certaines bibliothèques (faut pas aimer tout réécrire quand on l'a déjà sous la main). Au grand jamais on ne se risque de nos jours (sauf quand on a (très) peu de jugeote) à coder uniquement en assembleur même pour le plaisir.
Il te sera bien plus utile d'apprendre à placer ces instructions machines dans ton code en C (et même là, si ce n'est pas pour une opération critique ou pour gagner considérablement en temps de calcul, laisse tomber).
Il faut bannir le culte du "j'apprends à faire comme h4x0r simplement pour être comme lui"! Le temps que tu perds aujourd'hui à apprendre l'asm tu peux l'utiliser pour assimiler des langages qui seront très utilisés dans les années à venir: là tu auras vraiment une longueur d'avance sur les autres.
A bon entendeur...
Dernière édition par Apophis1988 le Dim Mar 09, 2008 6:07 am; édité 1 fois |
|
| Revenir en haut |
|
 |
toto
Inscrit le: 26 Mar 2007 Messages: 227
|
Posté le: Sam Mar 08, 2008 9:54 pm |
Sujet du message:
|
|
| on utilise surtout l'ASM intelligemment quand il s'agit de réaliser des instructions qui "consomment" très peu d'octets (notamment pour l'exploitation de failles applicatives) |
|
| Revenir en haut |
|
 |
HacKSpideR

Inscrit le: 19 Juin 2007 Messages: 37
|
Posté le: Dim Mar 09, 2008 6:22 pm |
Sujet du message:
|
|
| Citation: | | Il faut bannir le culte du "j'apprends à faire comme h4x0r simplement pour être comme lui"! Le temps que tu perds aujourd'hui à apprendre l'asm tu peux l'utiliser pour assimiler des langages qui seront très utilisés dans les années à venir: là tu auras vraiment une longueur d'avance sur les autres. |
Je n'ai pas appris l'ASM pour faire comme les "haxors" mais pour m'essayer à la rétro-ingénierie sous windows
et je sais qu'il est inutile de coder avec ce language alors qu'il existe le java, le perl et bien d'autre mais je voulais essayer sous linux l'histoire de dire j'y arrive. |
|
| Revenir en haut |
|
 |
Celelibi

Inscrit le: 29 Mar 2006 Messages: 770
|
Posté le: Dim Mar 09, 2008 7:38 pm |
Sujet du message:
|
|
Apophis1988, je ne suis pas vraiment d'accord avec toi. Toute connaissance acquise pourra un jour être utile. (Pourra, et le sera.)
Selon moi on peut coder en assembleur juste "pour le fun", ou pour le défi intellectuel.
Tout dépend de l'objectif à atteindre.
L'important c'est avant tout de se faire plaisir. _________________ Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...) |
|
| Revenir en haut |
|
 |
Apophis1988
Inscrit le: 05 Aoû 2007 Messages: 69
|
Posté le: Dim Mar 09, 2008 10:39 pm |
Sujet du message:
|
|
Bien vrai Celelibi. Comme il est tout aussi vrai qu'on apprend beaucoup plus sur les fondements même de l'informatique de base en apprenant l'assembleur que d'autres langages de plus haut niveau, mais hélas aujourd'hui la demande est beaucoup plus poussée vers certains de ces derniers langages tels le java ou le C++ (et C#).
La raison est je pense, que les gros portefeuilles considèrent aujourd'hui (en gros) les langages de bas niveau comme des acquis dans le domaine, un peu à l'image de certains axiomes en mathématiques qu'on ne remet plus en cause, mais qui sont implicitement utilisés dans des grandes formules toutes faites, toutes génériques, qu'on utilise bêtement sans se soucier de ce qu'il y'a derrière.
La métaphore sur les "h4x0rs" n'étaient pas pour vous HacKSpideR, mais uniquement pour le cas générale où au début, nous voulons tous découvrir ce qu'il réellement derrière. C'est bien beau quand on commence à le connaitre, puis après on se rend compte qu'on n'est pas vraiment plus avancé que quand on ne le savait pas.
Ceux qui savent réellement ce qu'il y'a derrière le mot informatique, qui sont généralement des passionnés comme vous et moi, se retrouvent généralement dans des laboratoires à faire de la recherche et à être payés pour 3 fois rien. Tandis que ceux qui ont la pratique et qui sont à jour des nouveaux "pseudos langages" se retrouvent ingénieurs avec des salaires de plus de 85000 euros net par an.
Je n'ai pas vraiment envie que nous finissions comme les dinosaures... |
|
| Revenir en haut |
|
 |
HacKSpideR

Inscrit le: 19 Juin 2007 Messages: 37
|
Posté le: Lun Mar 10, 2008 6:10 pm |
Sujet du message:
|
|
Je suis d'accord avec Apophis meme si je ne connais pas trop le monde du travail.
Et je croie avoir resolue mon problème, merci Celelibi |
|
| Revenir en haut |
|
 |
solo
Inscrit le: 14 Oct 2005 Messages: 958
|
Posté le: Mar Mar 11, 2008 11:57 am |
Sujet du message:
|
|
| Citation: | | Je n'ai pas appris l'ASM pour faire comme les "haxors" mais pour m'essayer à la rétro-ingénierie sous windows | alors le guide de goppit aurait suffit : win32 assembleur coding for crackers  _________________ malware |
|
| Revenir en haut |
|
 |
|
|