Accueil > Forum > > > > traduit pascal code en c code aide
traduit pascal code en c code aide
samedi 22 août 2009 à 14:55:41 |
traduit pascal code en c code aide

zilot2
|
Bonjour,et pardonnez mon francais
j'ai un code source en pascal et j'ai pas reusii a le traduire en c si quelq'un peut m'aide
Program patch; //juste pour indiquer le nom du prog
Uses CRT, DOS; //indique quelle bibliothèque on va utiliser des
//routines graphiques DOS
Const //indique que l' on va charger des constantes
//en mémoire pour les réutiliser par la suite
FileN : String = 'progde~1.exe'; //FileN va donc indiquer
//le fichier 'progde~1.exe'
//dès que l' en aurat besion
BytesToChange : Integer = 2; //2 indique le nombre d' octects à
//patcher
FileS : LongInt = 564132; //564132 indique la taille du fichier.
//Elle s' éxprime en octects
A : Array[1..2] of Record //indique que l' on va donner
//de modification allant de
//1 à 2, ici en octects
A : Longint;
B : Byte;
End =
(
(A:$303e6;B:$90), //adresses héxadécimales à modifier et leurs octects
(A:$47274;B:$90) //attention !! sur la derniere ligne=> pas de virgule !!!!
);
Var
F : File;
Ch : Char;
Attr : Word;
I : LongInt;
If (FSearch(FileN,FExpand(FileN))='') then //cherche le fichier FileN,
//S'il est non présent,
//alors => Message d'erreur...
Begin
Writeln('oOOPS!: File ',FileN,' not found !!!');
Writeln('-Current bad size has: ', FileSize (F),' bytes.');
Writeln('-Good size should be : ', FileS ,' bytes.');
Halt(1);
end;
Assign(F,FileN);
Reset(F,1); //pour ouvrir un fichier
TextColor(8);
Write('Checking FileSize...');
If FileSize(F)<>FileS then //FileSize verifie la taille du fichier...
begin //début du mesage d' erreur
//(si le fichier cible n'a pas la bonne taille..)
Writeln('ERROR!');
Writeln('');
Writeln('File ',FileN,' has an invalid Size !!!');
Writeln('Crack aborted...');
Close(F); //on ferme le fichier
Halt(1); //on arrete le prog
end //fin du passage affichant une erreur...
Else
begin //ce qui suit est le "patchage" des octets...
end; //fin de la reconnaissance le la taille du fichier
TextColor(8);
Write('pat ',FileN,'...'); //Et hop!, on réutilise encore ',FileN,'
For I := 1 to BytesToChange do //change les octect de 1 à...'x'
begin
Seek(F,A[I].A); //repere l'offset a patcher
Ch:=Char(A[I].B); //on identifie la nouvelle valeur de l'offset
//et on la stock dans 'Ch'
Blockwrite(F,Ch,1); //ouf! Après toutes les conditions remplis, le prog va
//enfin pouvoir modifier le fichier cible en inscrivant
//des octects par blocs de 1, tels qu'ils sont indiqués
//par (A:$303e6;B:$00) et (A:$47274;B:$00) dans l'exemple.
end;
Close(F)
end.
|
|
lundi 24 août 2009 à 18:02:51 |
Re : traduit pascal code en c code aide

rt15
|
Réponse acceptée !
Salut,
Mais dis moi, mais c'est un crack pour patcher un .exe ça !
Bon, au moins, c'est pour cracker un crackme d'un cours de hacking...
Il met deux nop (Opcode 0x90), l'un à 0x303e6 et l'autre à 0x47274.
Et le code est écrit pour être facilement réutilisable pour un autre crack : il suffit de modifier A pour indiquer où et quels octets à mettre en place, de changer BytesToChange, de changer la taille, fileN... Bref pour près pour du travail à la chaîne. Les infos de A sont finalement exploitées dans une boucle.
Il n'y a pas de difficulté dans la traduction. Faut juste remplacer BlockWrite par un petit coup de pointeur.
Pour le reste...
Write/WriteLn -> printf
Assign -> fopen
Seek -> fseek
Close -> fclose
FileSize -> un fseek pour aller au bout, un ftell pour avoir la taille.
Halt -> Fonction déconseillée. Mieux vaut architecturer le programme autrement (if, goto...)
FSearch -> Remplacé par un test sur le fopen.
TextColor -> On oublie
|
|
lundi 24 août 2009 à 18:05:32 |
Re : traduit pascal code en c code aide
|
mercredi 26 août 2009 à 19:11:06 |
Re : traduit pascal code en c code aide

zilot2
|
Réponse acceptée !
merci rt15 je pense que tu as vu les cours de pifoman en faite pas seulement fwrite(&shellcode,sizeof(shellcode),1,f);
il faut ouvrir aussi comme ca fopen("prog.exe","r+");
il faut r+ pas w ou a
These constants specify the access type ("a", "r", or "w") requested for the file. Both the translation mode ("b" or "t") and the commit-to-disk mode ("c" or "n") can be specified with the type of access.
The access types are described below.
"a"
Opens for writing at the end of the file (appending); creates the file first if it does not exist. All write operations occur at the end of the file. Although the file pointer can be repositioned using fseek or rewind, it is always moved back to the end of the file before any write operation is carried out.
"a+"
Same as above, but also allows reading.
"r"
Opens for reading. If the file does not exist or cannot be found, the call to open the file will fail.
"r+"
Opens for both reading and writing. If the file does not exist or cannot be found, the call to open the file will fail.
"w"
Opens an empty file for writing. If the given file exists, its contents are destroyed.
"w+"
Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.
When the "r+", "w+", or "a+" type is specified, both reading and writing are allowed (the file is said to be open for "update"). However, when you switch between reading and writing, there must be an intervening fflush, fsetpos, fseek, or rewind operation. The current position can be specified for the fsetpos or fseek operation.
svp rt15 c'est quoi l'equivalent de FSearch et fexpand en c?pour trouver le path d'un fichier et merci
|
|
vendredi 28 août 2009 à 18:55:34 |
Re : traduit pascal code en c code aide

rt15
|
FSearch et fexpand -> teste simplement le retour de fopen. S'il est null, le fichier existe pas (Ou ne peut être ouvert), s'il est différent de null, le fichier existe.
Code C/C++ : FILE* lpToto;
lpToto = fopen("lefichierquisertarien.txt", "Un mode d'ouverture");
if (! lpToto)
printf("Impossible d'ouvrir le fichier lefichierquisertarien.txt\n");
else
fclose(lpToto);
Si tu veux vraiment tester proprement l'existence d'un fichier, utilise FindFirst.
|
|
Cette discussion est classée dans : fichier, end, code, writeln, filen
Répondre à ce message
Sujets en rapport avec ce message
extraction text [ par fatenIM ]
salut à tous Mon projet consiste à écrire un programme en langage c permettant d'offrir à l'utilisateur la possibilité de faire une recherche en utili
C++ Lire Fichier Dat File [ par tren13 ]
Bonjour, j'aurais une question sur la lecture de fichier en C++ a partir d'un code matlab effectué. Voici le code matlab tout dabord [CODE]function
un programme bizarre [ par mervat ]
bonjour, ce programme permet d'éliminer quelques caractères d'un fichier texte et metle résultat dans un autre fichier texte; il est exécutable mais i
Remplir un vecteur à partir d'un fichier texte [ par PetiteAnge ]
Bonjour, Je vous explique mon problème: j'ai un fichier texte contenant trois colonnes séparées par des espaces: une pour les inndices des villes, u
fopen ne marche pas! [ par tekthomasdu96 ]
Bonjour, Lorsque je fait [code=cpp]fichier=fopen("SchoolMoyenne\\materiel.inf","w");[/code] fichier=NULLL. [^^sad1] Le repertoire SchoolMoyenne ex
Problème bizarre lecture fichier ini [ par OrbLux ]
Bonjour à tous !!! Bon mon problème est vraiment très étrange... J'ai un code censé lire un fichier Test.ini situé dans le même dossier que mon exécu
numéroter les phrases d'un fichier texte et les réécrire dans un autre fichier [ par mervat ]
bonjour, les instructions ci dessous me permettent en principe de copier un fichier texte dans un autre fichier en numérotant ses phrases, [code=cpp]
Cryptage d'un ficher/Décryptage dans un buffer RAM [ par yannou2 ]
Bonjour, J'aurais aimé avoir quelques infos sur un problème que je rencontre. Dans une appli, je dois crypter un fichier qui représente une output (n
charger fichier.glade sur code bloks [ par luchermannguehi ]
J'essaye de developper avec glade, j'ai installé glade et libglade. et lorsque j'essaye avec un petit projet gtk+ dans code blocks, j'ai un problème a
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|