quelqu'un connait une calculatrice pour l'assembleur ? (pour les rol)

quelqu'un connait une calculatrice pour l'assembleur ? (pour les rol) - ASM - Programmation

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 :pt1cable:  
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...

Reply

Marsh Posté le 24-07-2004 à 20:34:38   

Reply

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?
 
exemple pour traduire :
ROL 41458624,9
 
Merci.
 
Ps: Ou si quelqu'un voudraitprogrammer un pti logiciel on ne sé jamais :pt1cable:  
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...


ban :o


---------------
last | ps3camp | f:mid
Reply

Marsh Posté le 24-07-2004 à 23:57:49    

tu veux faire quoi exactement, et dans quel but ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 25-07-2004 à 01:08:07    

calc.exe [:mr yvele]


---------------
Un matin je me lèverai et il fera beau.
Reply

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

Reply

Marsh Posté le 25-07-2004 à 12:10:00    

tiens, la voilà ta calculatrice !

Code :
  1. #include <iostream>
  2. using namespace std;
  3. class calc
  4. {
  5. public:
  6. calc()
  7. {
  8. }
  9. int rol(int source, int bits)
  10. {
  11.  int res;
  12.  __asm
  13.  {
  14.   mov edx, source
  15.   mov ecx, bits
  16.   rol edx, cl
  17.   mov res, edx
  18.  }
  19.  return res;
  20. }
  21. int ror(int source, int bits)
  22. {
  23.  int res;
  24.  __asm
  25.  {
  26.   mov edx, source
  27.   mov ecx, bits
  28.   ror edx, cl
  29.   mov res, edx
  30.  }
  31.  return res;
  32. }
  33. };
  34. int main (int argc, char **argv)
  35. {
  36. calc c;
  37. int source, bits, res;
  38. char op;
  39. cout << "entrez l'operation à effectuer (0=ror, 1=rol)" << endl;
  40. cin >> op;
  41. cin.setf(ios::hex, ios::basefield);
  42. cin.ignore();
  43. cout << "entrez un nombre a convertir (hexa)" << endl;
  44. cin >> source;
  45. cout << "entrez le nombre de bits a decaler" << endl;
  46. cin.setf(ios::dec, ios::basefield);
  47. cin.ignore();
  48. cin >> bits;
  49. switch (op)
  50. {
  51. case '0':
  52.  res = c.ror(source, bits);
  53.  break;
  54. case '1':
  55.  res = c.rol(source, bits);
  56.  break;
  57. }
  58. cout.setf(ios::hex, ios::basefield);
  59. cout << "valeur apres rotation (hexa) :" << res << endl;
  60. cin.ignore();
  61. }


à compiler avec Visual C++


Message édité par Harkonnen le 25-07-2004 à 12:11:27

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 25-07-2004 à 12:25:24    

quelle manque d'economie..
 
 

Code :
  1. int rol(int source, int bits)
  2. {
  3. __asm
  4. {
  5. mov eax, source
  6. mov ecx, bits
  7. rol eax, cl
  8. }
  9. }


 
[:icon7]

Reply

Marsh Posté le 25-07-2004 à 12:30:45    

merci v essayer ca de suite

Reply

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 ?

Reply

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 ?

Reply

Marsh Posté le 25-07-2004 à 13:10:32   

Reply

Marsh Posté le 25-07-2004 à 14:50:06    

je t'ai dit de le compiler avec Visual C++ :o
 
http://www.microsoft.com/downloads [...] laylang=en


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 25-07-2004 à 21:01:09    

vous êtes trop cool les mecs.  
 
mais gigi il a pas appris grand chose...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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...

Reply

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 ;)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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. [:spamafote]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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 :D), c'est pas comme si il demandait un code tout fait pour une application précise ou pire, pour un TP ;)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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 :D


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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...

Reply

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 :
  1. cin.get();


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-07-2004 à 13:04:54    

et puis il a demandé une calculette, j'vois pas de GUI [:ddr555]


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 26-07-2004 à 14:48:02    

Ca ye grace a la calculette Harkonnen j'ai touvé le password :D DU NIVEAU 4!
password = SILICIUM
Niveau 4 : http://bigcontest.securityhack.net/files/si.zip

Reply

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... [:figti]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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... [:figti]


j'avais pas remarqué que tu étais si boutonneux sur tes photos...:o


---------------
Can't buy what I want because it's free -
Reply

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
ensuite pour faire un ROL/ROR vite fait dans olly, tu ouvres ton .exe que tu fais breaker quelque part, tu mets la valeur que tu veux ROLer/RORer dans eax (double clic sur eax) et dans le dump hexa tu rajoutes (double clic sur la ligne) l'instruction ROL/ROR ... et tu fais exécuter juste cette ligne (F8 ) et tu as ton résultat dans EAX


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 ;)

Reply

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 ???

Reply

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)

Reply

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


Message édité par Arjuna le 20-01-2006 à 10:28:17
Reply

Marsh Posté le 20-01-2006 à 10:28:33    

Et l'inverse pour le ROR évidement :)

Reply

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.

Reply

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.

Reply

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é.
 
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.


ç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

Reply

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 ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed