logo Homepage
+  NewbieContest
Username:
Password:
  Voir les messages
Pages: 1 [2] 3 4 ... 7
16  Programmation / Langages compilés / Re : Pourquoi le programme fonctionne ? le: 13 Décembre 2016 à 18:40:35
Salut,

En fait tes deux extraits de code sont strictement équivalents.
Le type de la variable 'user' c'est (char*) et non pas (char).

C'est probablement plus clair comme ça :

Code:
void foo()
{
    typedef char* pChar

    pChar user;
    user = "toto";
    puts(user);
}

Donc tu vois bien que le faire sur une ligne ou sur deux revient au même.

Quant au fait que tu puisses utiliser ce genre d'égalité, c'est simplement une facilité offerte par le compilateur.
Ce qu'il se passe derrière c'est ça :

Citation
void foo()
{
    static char _totoString[4+1] = "toto";   // 8 en réalité pour alignement, dans le tas (section datas initialisées du binaire loadé), donc scope local mais lifetime global, et initialisé au loadtime et non pas au runtime

    char *user;
    user = &_totoString[0];
    puts(user);
}

Ca sera sûrement plus parlant comme ça.

++

Ps: Je ne vois pas la réponse de pixis dont tu parles ?!
17  Divers / Cracking / Re : Analyse de binaire codé en Visual C++ 6 le: 05 Décembre 2016 à 00:29:04
Salut,

Citation de: Pech
Je le confirme et je suis désolé de m'être contenté d'un simple "Merci" !
Ouh bah non t'inquiète pas, c'est très largement suffisant.
Je suis déjà bien content si ça peut servir à quelqu'un.

Et gg au passage, je vois que tu en es venu à bout entre temps.

++

18  Divers / Cracking / Re : Analyse de binaire codé en Visual C++ 6 le: 25 Novembre 2016 à 01:06:04
Salut,

Les unknown sont propres à la runtime justement parce qu'Ida détecte qu'elles ne sont employées que par des fonctions reconnues de la runtime, ou bien parce qu'elles ont été marquées comme appartenant à la runtime sans pour autant n’avoir été nommées (et non pas forcément identifiées).
Elles sont donc à distinguer des sub_qqchose (je ne dis pas ça pour toi mais éventuellement pour d'autres lecteurs moins familiarisés avec l’outil).

Pour vulgariser, sauf runtime full custom (que tu peux voir dans les démos ou dans de nombreux keygens), il y a toujours une partie de la runtime qui est embarquée, et ce même lorsque tu linkes en dynamique.
C'est la runtime C qui te permet par exemple d'utiliser les args de ton main directement lorsque tu linkes en sous-système console.
C’est aussi ce qui fait qu’un simple hello word pèse plusieurs kilos.
Celles-là ne portent pas de nom tout simplement parce qu'elles ne sont pas publiques et évoluent régulièrement au fil des mises à jour.
Tu n'as presque jamais à t’en soucier puisque ce qui t'intéresse se trouve presque toujours en aval.
Plusieurs d’entre elles sont d’ailleurs présentes sans pour autant n’être employées.

Ensuite lorsque tu linkes en statiques il y a toutes les fonctions non exportées utilisées par justement les fonctions exportées de la runtime (et embarquées dans ce cas de figure).
Celles là il faut tout simplement t’intéresser aux fonctions exportées qui les emploient plutôt qu'au détail.
La plupart du temps qui se soucie de savoir ce que fait un malloc de la runtime en interne ?

Enfin il y a les sous fonctions non nommées utilisées par le compilateur pour traduire certaines parties de ton code de façon invisible (la multiplication sur les long long dans un binaire 32 bits par exemple).
Celles là il faut les voir comme des petits snippets, elles sont souvent très simples à comprendre.

Ca c'est pour visual ou même le -C- de façon plus générale.
En delphi (par exemple) tu rencontreras parfois des unknown qui correspondent à des méthodes de classes.
Dans ce cas il te faudra soit les identifier manuellement, soit utiliser un tool spécifique si vraiment tu n'y arrives pas (idr par exemple dans le cas du delphi).

Ce qu'il faut retenir c'est que si ces fonctions ne sont pas identifiées par l'éditeur ou la communauté, c'est tout simplement parce que très très souvent on s'en fout.
En reverse l'important c'est de savoir aller à l'essentiel afin de s'économiser, sinon c’est l’épuisement qui t’attend.
Si tu en es à te demander ce que font plusieurs unknown, c'est bien souvent que tu ne regardes pas d'assez loin.

J'imagine que ta question concerne les crackme vc6 que tu n'as pas encore réussi et qui comporte justement un peu plus de 250 unknowns...
Eh bien mon conseil précédent s'y applique pleinement (deux fois plutôt qu’une même …).

Bon courage.

++
19  News / News du site / Re : Newbiecontest 5.0.5 le: 01 Novembre 2016 à 16:39:00
Salut,

Bonne nouvelle
Merci à tous ceux qui se donnent du mal pour entretenir ce site.

Et puis y'a trois nouveaux challs en prime
Je m'en vais de ce pas regarder à quoi ça ressemble.

++
20  News / News du site / Re : Et ben... IL ETAIT TEMPS ! le: 29 Septembre 2016 à 23:03:21
Vla le honeypot à fayots !

gg !
21  Divers / Cracking / Re : Executable linké statiquement le: 12 Mai 2016 à 12:14:12
Salut,

Citation de: pixis
Il me semble qu'il y a une petite coquille
Yep, tu as raison. J'ai posté ça un peu vite avant d'aller dormir.
Je corrige.

++
22  Divers / Cracking / Re : Executable linké statiquement le: 12 Mai 2016 à 01:52:50
Salut,

Il y a tout un tas de fonctions dont tu n'écris pas directement le code mais ne fais que les appeler depuis le tiens.

Lorsque tu emploies la fonction malloc() par exemple, voilà ce qu'il se passe :
 - soit tu lies statiquement, auquel cas le corps de la méthode sera copié directement dans le binaire produit
 - soit tu lies dynamiquement, auquel cas le code n'existera pas dans le binaire produit mais l'os l'importera au loadtime (msvcrX.dll sous windows)

Lier dynamiquement produira un binaire plus petit et si un bug dans la fonction malloc est découvert puis corrigé, celui-ci sera corrigé avec une mise à jour de la runtime sans que tu n'ais à reproduire et livrer ton binaire.
En revanche ça implique que la runtime correpondante soit présente sur la machine exécutant le binaire, sans quoi celui-ci ne pourra pas fonctionner correctement (message d'erreur au chargement).

Lier statiquement produira un binaire plus lourd et si un bug dans la fonction malloc est découvert puis corrigé, il te faudra mettre à jour tes outils de dev puis reproduire et livrer ton binaire pour profiter de la correction.
En revanche ton binaire sera autonome et pourra s'exécuter sur une machine ne possédant pas la runtime correspondante.

Passser de l'un à l'autre ne changera rien pour l'utilisateur final pour peu qu'il possède la runtime correspondante commme expliqué ci-dessus.
Dans la majorité des cas, passer de l'un à l'autre se fait en un clic dans ton outils de dev mais impliquera forcément de reproduire et livrer ton binaire.

Edit:
Ca c'est s'il s'agit de la runtime 'système' comme dans mon exemple.
S'il s'agit d'une ou plusieurs autres dll propriétaire(s), passer de l'un à l'autre se fait en incluant la librairie correspondant au mode de liaison souhaité (extension '.lib' généralement).


++
23  Challenges / Aide Crackme / Re : Crackme - Dezippez, dezippez, il en restera toujours quelque chose le: 03 Mai 2016 à 11:57:01
Salut,

Citation de: SuperCarotte
Je voulais donc savoir si je suis parti sur la bonne piste en voulant désassembler le SFX ou si je devais m'orienter différemment.
Tu n'arriveras à rien comme ça.
Malgré la catégorie dans laquelle elle se trouve, il ne s'agit pas ici d'une épreuve de rce.

++
24  Général / Sondage pour le site / Re : Épreuves de prog qui font découvrir des notions nouvelles de mathématiques le: 05 Mars 2016 à 16:58:01
Salut,

Choix 3 pour moi aussi.

J'aime découvrir de nouveaux outils au fil des épreuves, à condition bien sûr que l'on soit un minimum aiguillés dans notre recherche.

++
25  Challenges / Aide Crackme / Re : Crackme - KeygenMe le: 23 Novembre 2015 à 13:56:54
Salut,

Citation de: S0410N3
Parce que ça semble vraiment très très très long...
Même pas le temps de regarder en entier un épisode de ta série préférée de nos jours si tu t'y es bien pris et que tu ne tournes pas sur une brouette.

++
26  Challenges / Aide Crackme / Re : Crackme - ChillyMe le: 19 Novembre 2015 à 14:11:40
Salut M. Drake,

D'après ce que j'arrive à décoder de ton message je dirais qu'à priori tu te trouves au bon endroit si ma mémoire est bonne, et que soit ta liste n'est pas exhaustive, soit tu as mal regardé.

++
27  Challenges / Aide Crackme / Re : Crackme - Mangez des pommes le: 12 Novembre 2015 à 12:53:16
Salut,

Alors je viens de regarder dans les backups à quelle version d'os je faisais référence dans le post https://www.newbiecontest.org/forums/index.php?topic=4264.msg56838#msg56838,
et la VM initiale était une Mavericks, peut-être mise à jour en Yosemite entre temps, mais pas en dessous c'est certain.
Je l'avais fait en live debug donc ça tournait.

++
28  Challenges / Aide Crackme / Re : Crackme - Visuel et basique le: 12 Octobre 2015 à 19:32:22
Salut Mavax,

Citation de: Mavax
Un petit coup de pouce ? Autre qu'une installl windows en dual boot, je me donnerai pas tout ce mal pour une misérable crackme ....
Ta formulation, bien que sujette à interprétation, ne donne pas vraiment envie de t'aider ; mais je vais quand même répondre au cas ou ça servirait à un autre débutant :

Pour ce crackme spécifiquement, tu imagines bien que s'il y a autant de validations c'est qu'il n'y a pas besoin de sortir l'artillerie lourde. En fait il n'y a même pas besoin de le runner ...
Cependant si tu décides de poursuivre dans cette catégorie, il te faudra rapidement être en mesure de debugger tes cibles et donc de les executer.
Pour ça un bon compromis est de passer par l'utilisation d'une machine virtuelle, et à titre personnel je te conseille vmware qui propose vmware workstation ou player en fonction de ce que ta bourse te permet.
http://doc.ubuntu-fr.org/vmware_workstation

++
29  Challenges / Aide Crackme / Re : Crackme - KeygenMe le: 01 Août 2015 à 19:32:53
Re,

Citation de: Ge0
Merci captain obvious.
J'entends par là que si on n'est pas déjà codeur pascal alors on a plus vite fait de comprendre ce qui n'est pas standard plutôt que de s'y mettre pour l'occasion.
Je voulais pas que ton message décourage justement cette catégorie de challengers.

++
30  Challenges / Aide Crackme / Re : Crackme - KeygenMe le: 01 Août 2015 à 16:58:08
Salut,

Citation de: Taron
J'arrive à avoir un serial valide pour l'utilisateur 'NC', cependant le flag qu'il me donne ne ressemble à rien.
Pour qu'il soit valide il faut qu'il valide dans son contexte original hein .. 

Citation de: Ge0
pour me dépatouiller j'ai dû coder mon générateur en Pascal pour ainsi obtenir le bon flag ; ceci au lieu de faire mon calcul à la main...
Ca se fait très bien à la main, il suffit de reproduire les particularités.

++
Pages: 1 [2] 3 4 ... 7