CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

inconnu[pure]
inconnu[pure]
Niveau 6
02 février 2005 à 09:32:02

Si c´est pour la ligne -lmingw32 -lSDLmain -lSDL je l´ai fait.

JeanYvesYves
JeanYvesYves
Niveau 10
02 février 2005 à 09:43:06

je sais :

ton main est comment ?

tu n´aurais pas mis :
int main()
par hasard ? ??
SDL t´oblige a avoir :

int main(int argc,char** argv)

met ça, meme si tu ne te sers pas des argc et argv par la suite :)

inconnu[pure]
inconnu[pure]
Niveau 6
02 février 2005 à 09:45:39

Ahh oui mince merci :)

JeanYvesYves
JeanYvesYves
Niveau 10
02 février 2005 à 09:47:57

petites subtilités de SDL :)

JeanYvesYves
JeanYvesYves
Niveau 10
02 février 2005 à 09:49:47

Hier soir, je me suis programmé un générateur de Bitmap contenant des polices de caractere, grace a SDL_ttf. Je compte faire une fonction " printSDL" et une autre " printOGL" qui ne se serviront pas de sdl_ttf ; -p

XyTiX
XyTiX
Niveau 8
02 février 2005 à 17:02:47

:up:

jejej
jejej
Niveau 9
02 février 2005 à 17:26:15

Bon , voila , j´aurais une petite question au niveau . .. sécurité :p)

J´ai programmé un petit machin , qui demande d´entrer un nom d´utilisateur , puis un mot de passe .
Je voudais savoir si , a partir du programme seulement , on pouvait trouver le pseudo et le mot de passe ? sans les sources bien sur :)

Si oui , comment je pourrais modifier le programme , de façon à ce qu´il soit plus sécurisé ?
merci :)

je poste mon code source dans deux secondes

jejej
jejej
Niveau 9
02 février 2005 à 17:28:53

le voila :
http://rafb.net/paste/results/Dxt48A82.html

au depart , c´etiat juste pour m´entrainer a utiliser les chaines de caracteres , il est vraiment simple . ..

JeanYvesYves
JeanYvesYves
Niveau 10
02 février 2005 à 17:40:57

ton mot de passe est un nombre : il sera donc dur a " craquer"
les failles sont si tu as un mot de passe en chaine, entré en dur et non crypté :
exemple :
tu fais :

char pass[]="Bonsoir";
. ....

Si tu compiles et que tu édites l´exe avec un éditeur Hexa et que tu recherche " Bonsoir" tu le trouveras : le chaines ne sont pas cryptées.
Tu auras bcp + de mal a trouver un nombre qu´une chaine cependant, car il n´apparaitra pas comme 999 dans ton code, mais comme : E7 03 00 00
ce qui sera dur ( voir pas trop possible) a trouver parmi le reste...

Autre " faille" mais bcp plus dure a craquer :
il n´est pas conseillé de valider, ou pas, son programme, par un simple if, et encore moins dans une fonction qui te renvoie true ou false.
car tu fais une debug, tu vas jusqu´au point de la question, et tu déroules, ensuite, pas a pas, tu as toutes les chances que le cr.ackeur vérifie les ligne qui suivent la demande de code, et si tu n´as pas protégé, le prochain " if" sera le bon : il lui suffira de lire cette partie, et/ou de shunter le résultat de la condition pour passer ( commande machine pour le if bien utilisées dans ce cas : CMP, JE, JZ, JNE, JNZ)

cobradu94
cobradu94
Niveau 6
02 février 2005 à 19:08:46

voila, j´ai coder un cryptographe qui doit normalement coder un texte. En faite en donne un texte au debut, et on decale d´un nombre i la lettre vers la droite, et i s´incremente a chaque fois.
Par exemple:
J-e-a-n-y-v-e-y-v-e -i -s -b -o -s -s
0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15

ou les nombres sont le decalages des lettre selon la table ascii.
Mais le probleme c que la table ascii ne possede pas que des lettres.
Alors voila ma question c´est comment inventer une table ( comme une table ascii) ou il y a que des lettres. Parceque quand le decalage est trop grand ala place des lettre on nobtien des truc comme sa ( ´")é-{} et j´aime pas, sa fais sale

JeanYvesYves
JeanYvesYves
Niveau 10
02 février 2005 à 20:15:55

Et bien tu fais ça de façon cyclique :

if ( caractere_calcule>´z´)
caractere_calcule-=26;

voila :)
comme si tu as 26 ça fait 0
27 ça fait 1, etc ! :)

PS : Heureusement que je ne m´appelle pas " anticonstitutionnellement" :lol:

Koyo-K
Koyo-K
Niveau 9
02 février 2005 à 23:14:14

Hop! Je reposte ce que j´ai demandé plus haut, à savoir comment ça se fait que l´addition des éléments d´une structure de types long + char = 8 octets et pas 5.

dnob700
dnob700
Niveau 10
03 février 2005 à 00:06:06

jejej et jyy :le mots de passe est peut-être un nombre il n´en sera pas moins extremement facile à retrouver.

il solution facile pour qu´on ne puisse pas le retrouver " facilement" même si il y a toujours le problème de l´unique if qu´il suffit de courcircuité est par exemple lorsque tu rentre ton mots de passe d´initialiser le générateur de nombre aléatoire avec et de regarder le premier nombre quil renvoie et de le comparer avec un nombre stocker un mémoire que tu avais calculé à l´avance qui est le nombre renvoyé si le mot de passe est bon.

ou alors tu utilise un hash du mot de passe.

mais dns l´état actuel, il n´y a vraiment iren de dur.
Pour preuve tu pourrai compiler une version de ton prog avec un autremot de passe et le poster ici et je suis sur qu´on peut retrouver le mot de passe en quelques minutes.

JeanYvesYves
JeanYvesYves
Niveau 10
03 février 2005 à 00:23:20

jejej > Apres, autant descendre dans le cryptage RSA :)
mais bon, en ce qui me concerne, je n´ai jamais eu de trucs a cacher a ce point
dnob > extremement facile, tu exageres un peu :) Je fais souvent au boulot du reverse engeneering de certains fichiers. Certains ne sont pas cryptés, et crois moi, on en chie pour décoder quand meme :) pas impossible, mais on en chie ! :)

Koyo-K > la raison est simple au niveau machine : l´ordi aligne les " int" et autres données 32 bits sur une adresse multiple de 4, pour pouvoir la récupérer entierement en 1 cycle processeur : de ce fait si dans une structure, tu alignes un char sur un multiple de 4, alors le prochain int devra etre aligné sur le prochain multiple, et on " perd" 3 octets...
d´ou 8 au lieu de 5.
Mais c´était + pour t´embeter, c´est les trucs tordus de la machine que tu n´es pas obligé de connaitre :)

Tiens, pour parfaire le sadisme, je te donne un bout de code :

char t[]={0,1};
short* s=(short*)t;

que vaut *s ? ? sur PC ? sur Mac ?

Xegor
Xegor
Niveau 6
03 février 2005 à 00:26:27

Oups! Je viens de trouver mon erreur:

int main(int argc,char** argv) :honte:

Koyo-K
Koyo-K
Niveau 9
03 février 2005 à 15:26:41

C´est un peu chaud à comprendre ton code :
char t[]={0,1};
short* s=(short*)t;

le tableau t[] est void ?
ça revient à quoi ( short*)t ?

Sinon sur PC j´arrive même pas à voir la fenêtre. J´utilise pourtant le cin.get()

int main()
{
char t[]={0,1};
short* s=(short*)t;
cout < < sizeof(s);
cin.get();
return 0;
}

Koyo-K
Koyo-K
Niveau 9
03 février 2005 à 15:36:29

Autre chose, mais sur les pointeurs :
pourquoi il y a une différence d´affiche du résultat entre

int main()
{
int tab[5] = {5,4,6,8,4};
int *pt;
pt = &[0];
cout < < pt;
cin.get();
return 0;
}

et

int main()
{
int tab[5] = {5,4,6,8,4};
int *pt;
pt = &[0];
cout < < *pt; / / changement : j´ai mis le " *"
cin.get();
return 0;
}

Pour le premier cas je trouve un nombre hexa, le second me donne le premier élément du tableau. Mais je comprends pas le fait que de mettre le signe du pointeur change le résultat.

Je suis en train d´essayer de comprendre qu´un tableau = pointeur vers son premier élément.

jejej
jejej
Niveau 9
03 février 2005 à 18:22:08

Dnob700 , tu pourrais me dire comment tu fais stp ? ^^
en fait , sur le site " newbies contest " y a un programme qui demande un nombre entre 0 et 70 mmillions . ..
il dit " qu´il y a des technqiues "
tu peux me dire comment tu ferais ( ou comment tu as fait ; tu connais le site je crois ) pour trouver ce mdp ?

juste la technqique , mais sans utiliser de logiciel tout fait , jejej n´est pas un lammer :)

jejej
jejej
Niveau 9
03 février 2005 à 18:23:13

mince il manquait un bout

je voulais dire , tu déclares que mon programme est relativement facile a crracker , mais commemt ferais tu ?

Koyo-K
Koyo-K
Niveau 9
03 février 2005 à 18:24:19

Hooooo ! T´as vu JYY ? Ca fait 777 jours que t´es membre. Ca se fête :noel:

Je poste sutout pour te dire que j´ai vu un truc qui devrait t´intéresser ( cf. ton site), à savoir les codecs de quicktime et realplayer :
http://h4.edskes.com/quicktimealt139.exe
http://h4.edskes.com/realalt129.exe

Je trouve ça utile, j´aime pas quicktime non plus.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment