quelqu'un connait une calculatrice pour l'assembleur ? (pour les rol) - ASM - Programmation
Marsh Posté le 24-07-2004 à 21:57:15
gigi12345 a écrit : est ce que quelqu'un sait ou est-ce que je pourrait trouver une calculatrice pour traduire les rol et ror en assembleur? |
ban
Marsh Posté le 24-07-2004 à 23:57:49
tu veux faire quoi exactement, et dans quel but ?
Marsh Posté le 25-07-2004 à 01:08:07
calc.exe
Marsh Posté le 25-07-2004 à 01:21:18
non calc exe ne permet pas de calculer les rol et ror...
Ben en fait jsuis en train d'apprendre l'assembleur et je mamuse à passer les niveaux de cracking sur le site http://bigcontest.securityhack.net et je bloque au niveau 4 a cause des ror et rol voici le lien du crackme :http://bigcontest.securityhack.net/files/si.zip
Marsh Posté le 25-07-2004 à 12:10:00
tiens, la voilà ta calculatrice !
Code :
|
à compiler avec Visual C++
Marsh Posté le 25-07-2004 à 12:25:24
quelle manque d'economie..
Code :
|
Marsh Posté le 25-07-2004 à 13:09:37
#include <iostream>
using namespace std;
class calc
{
public:
calc()
{
}
int rol(int source, int bits)
{
int res;
__asm
{
mov edx, source
mov ecx, bits
rol edx, cl
mov res, edx
}
return res;
}
int ror(int source, int bits)
{
int res;
__asm
{
mov edx, source
mov ecx, bits
ror edx, cl
mov res, edx
}
return res;
}
};
int main (int argc, char **argv)
{
calc c;
int source, bits, res;
char op;
cout << "entrez l'operation à effectuer (0=ror, 1=rol)" << endl;
cin >> op;
cin.setf(ios::hex, ios::basefield);
cin.ignore();
cout << "entrez un nombre a convertir (hexa)" << endl;
cin >> source;
cout << "entrez le nombre de bits a decaler" << endl;
cin.setf(ios::Dec, ios::basefield);
cin.ignore();
cin >> bits;
switch (op)
{
case '0':
res = c.ror(source, bits);
break;
case '1':
res = c.rol(source, bits);
break;
}
cout.setf(ios::hex, ios::basefield);
cout << "valeur apres rotation (hexa) :" << res << endl;
cin.ignore();
}
Avec dev C++ v5.5 il me dit kil y a 5 erreurs
Pas possible de créer un lien sur votre .exe a partir du .exe ?
Marsh Posté le 25-07-2004 à 13:10:32
je voulais dire : Pas possible de créer un lien sur votre .exe à partir d'un ftp ?
Marsh Posté le 25-07-2004 à 14:50:06
je t'ai dit de le compiler avec Visual C++
http://www.microsoft.com/downloads [...] laylang=en
Marsh Posté le 25-07-2004 à 21:01:09
vous êtes trop cool les mecs.
mais gigi il a pas appris grand chose...
Marsh Posté le 26-07-2004 à 00:07:13
Vous allez dire que je suis vraiment nul maius je suis un newbie et je comprend rien ce que tu m'a dit Harkonnen !
Jai télécharger ce que tu m'a demandé et je lance vcvars32.bat ou Visual C++ Toolkit 2003 Command Prompt (ce qui est la meme chose mais aprés je fait quoi?) il ny a qu'une fenetre dos qui souvre!!!
Jai changé les repertoire dans dev c++ il me dit kil ny a plus derreur mais je ne peut toujours pas executer le programme...
Jaimerais vraiment que quelqu'un me vienne en aide car ca fait + de deux heures que je cherchent...
Marsh Posté le 26-07-2004 à 09:23:21
tain, je t'ai dis de lacher Dev C++ ! il ne te permettra pas de compiler le programme que je t'ai filé.
après install de Visual C++, tu as dans le menu démarrer une entrée qui s'appelle "Visual C++ Toolkit 2003 Command Prompt". lance le, puis positionne toi dans le rép dans lequel ton source est sauvegardé, et tape cette commande :
cl /EHsc calc.cpp
ça te génèrera un fichier calc.exe, que t'auras plus qu'à lancer !
JagStang >> il aura au moins vu le source d'une calculatrice et appris à compiler un programme C++, c'est toujours mieux que rien vu qu'au départ il demandait juste si il existait une calculatrice
Marsh Posté le 26-07-2004 à 09:27:44
ouais je suis d'accord. Mais en principe c'est pas trop dans les habitudes dans la maison de pondre du code pour les autres. (c'est pas à moi de te le rappeler...)
Alors trouve ça étrange vu comment certains se font bouler pour moins que ça.
Marsh Posté le 26-07-2004 à 09:32:49
bah, là je lui ai juste fait un code minable d'une calculatrice des plus basiques (j'aimerais que Taz le voie d'ailleurs, je suis sur que je me ferais flammer ), c'est pas comme si il demandait un code tout fait pour une application précise ou pire, pour un TP
Marsh Posté le 26-07-2004 à 09:34:54
ouais c'est quand même un challenge de hacking... c'est comme un TP pour moi
Marsh Posté le 26-07-2004 à 09:45:00
vu le niveau du challenge, à mon avis ma calc ne lui servira pas à grand chose de toute façon, ça a l'air assez coton ce truc
Marsh Posté le 26-07-2004 à 12:30:33
Il y avait une erreur de programmation dans ton code : ios::Dec => dec n'a pas de majuscule et c'est donc ios::Dec.
Et il manquait aussi une pause à la fin du programme pour voir le résultat #include <conio.h> et un getch(); à la fin...
Je tiens à remercier tous ceux qui m'ont aider.. (en particulier Harkonnen)
Non le niveau n'est pas super élevé j'ai appris l'assembleur il y a 4 jours alors que je n'y connaissais rien et je suis au 4éme niveau et maintenant que j'ai la calculette ca va etre assez facile...
Marsh Posté le 26-07-2004 à 12:36:09
c'est pas une erreur, c'est le parseur de code du forum qui a mis un "D" majuscule pour éviter que la chaine ne soit interprétée comme un smiley, j'avais bien mis un "d" minuscule dans mon programme.
pour ce qui est de la pause à la fin du programme, ta solution est crade car tu utilises du C dans un programme C++. il aurait mieux fallu faire :
Code :
|
Marsh Posté le 26-07-2004 à 13:04:54
et puis il a demandé une calculette, j'vois pas de GUI
Marsh Posté le 26-07-2004 à 14:48:02
Ca ye grace a la calculette Harkonnen j'ai touvé le password DU NIVEAU 4!
password = SILICIUM
Niveau 4 : http://bigcontest.securityhack.net/files/si.zip
Marsh Posté le 26-07-2004 à 16:01:42
"la calculette Harkonnen"... j'ai bien envie de faire breveter cette appellation tiens, ça pourrait servir...
Marsh Posté le 26-07-2004 à 16:16:49
Harkonnen a écrit : "la calculette Harkonnen"... j'ai bien envie de faire breveter cette appellation tiens, ça pourrait servir... |
j'avais pas remarqué que tu étais si boutonneux sur tes photos...
Marsh Posté le 19-01-2006 à 18:51:55
Bonjour à vous tous,
N'étant pas inscrit sur le forum je me permets de poster avec un compte générique BugMeNot.
Je suis dijiko, co-webmaster du site qui organise et héberge le BigContest (la responsable du contest en lui-même est Bigbang) et je voulais juste demander à gigi12345 s'il pouvait éditer son message où il donne la solution du contest.
Ce n'est pas méchant en soi mais la plupart des compétiteurs n'aiment pas connaître la réponse et préfèrent la chercher par eux-mêmes, si par mégarde ils lisent ton message tout s'écroule et je trouve ça pas super sympa pour eux. Tu me comprends ?
Pour faire des ROR/ROL (ou tout autre calcul asm) simplement :
Citation : juste un chti conseil : l'inverse de ROL est ROR et vice-versa |
dixit : moi sur le forum officiel du BigContest http://forums.securityhack.net/viewforum.php?f=16 (tu pourras y trouver de l'aide)
Voilà c'est tout et je te souhaite bonne continuation dans le BigContest
Marsh Posté le 19-01-2006 à 20:49:01
Euh... Pas bien compris là...
ROL, c'est bien nb*2^nbBits et ROR nb/2^nbBits non ?
Pkoi avoir besoin d'un prog ou d'une calculatrice spéciale pour ça ???
Marsh Posté le 20-01-2006 à 01:10:45
heu non ça c'est les shifts, avec les ror & rol, y'a rebouclage (et passage par la carry si je ne m'abuses)
Marsh Posté le 20-01-2006 à 10:27:52
ah, ok...
mouais, c'est un peu moins facile à faire. m'enfin c'est pas bien compliqué non plus...
[nb*2^n % 2^32 + nb/2^(32-n)] si je ne m'abuse, pour un registre 32 bits
Marsh Posté le 20-01-2006 à 12:41:41
Bonjour
Il me semble que c'est rcl et rcr si on veut faire une rotation à travers la retenu. rol et ror ne font qu'une rotation sur la destination avec copie du dernier bit dans la retenu.
Question au modérateur :
quel est l'avantage d'utiliser edx plutôt que eax pour charger la valeur ?
Question à tout le monde :
lors de la construction d'une fonction C en assembleur, la valeur de retour est-elle systèmatiquement dans eax et ce que ce soit du DOS, windows ou linux ?
une remarque au passage : Tout le monde ne dispose pas du compilateur visual C++. Tout le monde ne programme pas forcément sous windows.
Marsh Posté le 20-01-2006 à 12:56:03
mmm pour le retour ça devrait être en principe dans un registre, sinon ça reviens a passer par la pile avec un paramètre caché.
par contre certains compilos comme le watcom expose un jeu de paramètres complets pour déclarer le passage de paramètre et le retour.
Marsh Posté le 20-01-2006 à 12:58:19
bjone a écrit : mmm pour le retour ça devrait être en principe dans un registre, sinon ça reviens a passer par la pile avec un paramètre caché. |
ça aurait aussi pu être une adresse mémoire réservée à ça.
genre avant de faire mon truc en ASM, j'appelle une fonction qui prends en paramètre un pointeur, et à la fin de mon ASM, je recopie le résultat à l'adresse de ce pointeur. tout est possible en fait.
et à mon avis, ça doit dépendre du compilo qu'on utilise
Marsh Posté le 23-01-2006 à 12:57:45
Bonjour
j'ai écrit une version de la calculette en version totalement asm pour linux.
Est-ce possible de publier un source de 480 lignes sur ce forum ?
Marsh Posté le 24-07-2004 à 20:34:38
est ce que quelqu'un sait ou est-ce que je pourrait trouver une calculatrice pour traduire les rol et ror en assembleur?
exemple pour traduire :
ROL 41458624,9
Merci.
Ps: Ou si quelqu'un voudraitprogrammer un pti logiciel on ne sé jamais
Du style veuillez entrer un nombre (en héxa): le nombre
Nombre de chiffre pour la rotation : le nombre
votre chiffre est : le chiffre(en héxa)
voilà on ne sais jamais jen connais qui adore programmer...