ET ALLEZ HOP ! *.INI, *.DAT, *.BIN, ETC... TOUS DANS LE *.EXE

cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 - 22 avril 2010 à 12:24
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 - 7 mai 2010 à 22:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51662-et-allez-hop-ini-dat-bin-etc-tous-dans-le-exe

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
7 mai 2010 à 22:36
ATTENTION !

Méfiez-vous de ExeMod (le lien fourni par kachwahed).
Ce programme contiend une porte dérobée (fournit un accès à distance à l'ordinateur sur lequel il est installé) dans ExeMod\DEMOS\extractor\EXTRACTOR.EXE

Backdoor: Win32/Trenk!rts

http://www.sunbeltsecurity.com/threatdisplay.aspx?name=Backdoor.Win32.Trenk!rts&tid=4337928&cs=D9F584FE71FEF87F3B162583E31C2815
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
6 mai 2010 à 15:59
Bonjour kachwahed,

Je ne connaissais pas mais il semble en effet que ça exploite beaucoup des possibilités offertes par cette technique.

Merci pour ce lien très intéressant. :)
kachwahed Messages postés 18 Date d'inscription samedi 6 décembre 2008 Statut Membre Dernière intervention 5 décembre 2009
6 mai 2010 à 15:34
Bonjour Caribensila,
Très intéressant, c'est prèsque comme EXEMod ici:
http://www.torry.net/pages.php?id=268
Mai avec le support des paramètres (Params), sa n'a pas marcher avec Delphi 2010 :(
jihelb Messages postés 49 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 24 mars 2017
5 mai 2010 à 12:06
Salut Caribensila,
Ton EXE marche impec !!! Il fait 401ko. Chez moi la compil fait seulement 323ko(D5 ???)La seule différence est la propriété "form1.DesignSize" qui est inexistante en D5. Peut-être est-ce cela qui l'empêche de fonctionner !?

Par contre, en testant ton exe, je suis arrivé à mettre plus de 300k de données (copier/coller de texte dans le mémo). Ce qui m'a permis de me rendre compte que le problème de Cluster de mon post plus haut n'en est pas un. Effectivement, ce n'est pas un exe qui se sauve (donc taille imposée) mais le STREAM qui écris le fichier, donc réserve bien la place (données finales comprises). Tu peux donc écrire ainsi autant de données que tu veux.

Cordialement,
JiHelB
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
4 mai 2010 à 20:35
Salut cirec,
effectivement sous D5 inutile ...
par contre je viens de faire le test sous 2010 pour être sûr, le code de caribensila ne marche pas.
Avec les modifications c'est OK.
Le commentaire ne sera peut-être pas inutile.
@+yanb
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
4 mai 2010 à 19:54
rien à voir ...
L'unicode n'est disponible que depuis Delphi 2009 et jihelb est sous D5.
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
4 mai 2010 à 19:44
Salut Caribensila,
je pense que le problème de jihelb peut venir de la version de delphi ...
@jilheb essaye ceci
- dans ExeEnclosure.pas ajoute :
type

{$IFDEF UNICODE}

TypeString = AnsiString;

{$ELSE}

TypeString = String;

{$ENDIF UNICODE}
- modifie la fonction :
function EndSignOff: TypeString;
- modifie dans les variables des fonctions InitializeEnclosure et FinalizeEnclosure :
Sign : TypeString;
- et dans Main.pas modifie dans les variables des procedure FormCreate et FormCloseQuery :
MemText : TypeString;
En espérant que tu n'est plus de problème ensuite.

Désolé caribensila et jihelb d'avoir mélangé vos sources.
@+ yanb
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
4 mai 2010 à 16:55
@JiHelB J'ai ajouté au ZIP un ExeWithEnclosureDemo.ex à renommer en .exe pour que tu puisses tester.
Si ça fonctionne, c'est que c'est la compilation qui a foiré chez toi.
Il faudrait peut-être que tu revois tes options de compilation (valeurs par défaut ?)

Chez moi, je peux lancer dans l'IDE sans problème (F9)...
jihelb Messages postés 49 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 24 mars 2017
4 mai 2010 à 11:38
Je l'ai bien entendu lancé hors du IDE.
Qd je ferme, j'obtiens toujours la fenètre initiale(à la place initiale, sans les modif du memo) elle à l'air d'être celle du dernier copyofcopyofcopyof...... puisque c'est le seul que je ne puisse effacé du DD. Obligé d'aller dans le "Gestionnaire de taches" et de "Terminer l'arborescence du Processus". ???

Cordialement.
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
4 mai 2010 à 10:13
@jihelb:
je ne sais pas comment tu testes la chose mais un point important !!!

Il ne faut pas lancer l'application depuis l'IDE mais de "l'extérieur' ... ceci devrait, théoriquement, résoudre ton problème. Essayes et dis nous si ça fonctionne.

Cordialement.
jihelb Messages postés 49 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 24 mars 2017
4 mai 2010 à 09:17
Tiens...mes 2 dernières lignes sont remontées ??? distraction ???
jihelb Messages postés 49 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 24 mars 2017
4 mai 2010 à 09:15
Salut Caribensila,
Pourquoi ais-je ce problème(voir mess. précédents) je n'ai pas touché à ton code ??? :(
J'aimerais pourtant le voir fonctionner.
Pour la taille des données, Attention. Je crois que ton procédé ne modifie pas la place réservée à l'exe sur le DD.
Hors, en NTFS, un cluster est de 4096 octets. Il ne te reste donc que 4095 octets dans le meilleur des cas pour tes écritures à la fin de cet exe.
Mais suivant la taille initiale de l'exe, il se pourrait que tu ais moins de place que nécessaire.
Cordialement.
JiHelB
Tes données sont donc limitées à 4095 octets.
Celà peut-être acceptable...mais avec toutes les précautions et vérifications initiales.
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
27 avril 2010 à 10:09
ouai c'est vicelard .. je sais mais j'utilise souvent la clef USB en dépannage ... et c'est le genre chose que si t'es pas prévenu c'est rageant.

sinon tout système de protection digne de ce nom détectera cette action.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
27 avril 2010 à 10:08
Bonjour Cari,

il est vrai que je suis plus passif (je jette un oeil mais je commente rarement) mais je poste régulièrement des mises à jour de mon pack de compo:
Je prépare actuellement la sortie de la version 3.0 ^^

Pour ce qui est de poster des sources, je vais sûrement proposer une démo de ma nouvelle DBGrid qui sera dispo dans le pack 3.0 ...

A+
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
27 avril 2010 à 02:20
Bonjour jjnouiphp
Ben... j'ai pas de système de protection. Mais ça moufte pas plus que pour l'EDI de Delphi, je pense.

Salut Maurício
- Pour la manip' des constantes, t'as raison. C'était une impasse.
- J'avais pas fait gaffe au nombre des visites, mais je crois que c'est seulement dû au titre... un brin racoleur. ;)
- Et je te ferai remarquer que j'suis moins rare que toi. :p
Il serait temps que tu viennes plus souvent siroter un p'tit bon vieux Porto avec nous de temps en temps, je trouve...
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
26 avril 2010 à 12:12
Salut Cari,

pour ce qui est de la manip' pour initialiser des constantes, je ne pense pas que se soit judicieux question sécurité/gain de temps ...
La source reste du moins très interessante (même si un fichier exterieur crypté me parait une solution bien meilleure).

D' ailleurs, ce n' est pas la 1ère fois que je vois une source de ce genre, ce qui veut dire qu' il y a bien des amateurs, il suffit de voir le nombre de visites de ce source.

En espérant te voir plus souvent sur le devant de la scène ^^

Maurício
jjnouiphp Messages postés 33 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 21 janvier 2020 1
26 avril 2010 à 11:20
Bonjour

Très bonne idée mais juste une ch'tite question : comment réagissent les divers systèmes de protection quand on tente de modifier un exe ?

Cordialement
jjnoui
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
25 avril 2010 à 16:58
C'est vicelard, le coup de la clef USB. Mais 'faut reconnaître que ta méthode est plus avenante, Cirec.
Je ne peux donc plus encore une fois remettre à plus tard mon initiation aux scripts batch (ça aura au moins servi à ça), et je reprendrai tout ce projet. :)

En fait, il faut que je vous explique pourquoi je suis parti dans cette voie et pourquoi j'avais besoin de scanner tout le .exe.
Il y a des algos qui nécessitent beaucoup de variables (tel celui du voyageur de commerce ou celui du sac à dos, par exemple) et qui ont généralement un temps d'exécution très long. Mon idée était donc de transformer ces variables en constantes afin d'optimiser ces algos.

Pour ce faire, j'avais prévu de repérer dans l'.exe les positions de certaines constantes du programme (une fois celui-ci terminé), et d'affecter à ces constantes, prévues à cet effet, les valeurs des variables entrèes par l'utilisateur final. Puis de relancer l'exécution des calculs avec constantes plutôt qu'avec des variables...
( j'sais pas si j'explique bien, sur ce coup :)
En théorie c'est plus rapide. Mais finalement, en pratique, c'est pas forcément d'la balle.

Je ne sais donc pas si je vais continuer des recherches dans ce sens. Mais il y a peut-être d'autres techniques à explorer avec la duplication d'.exe telle que présentée ici. Le tout est de les trouver... ;)
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
25 avril 2010 à 13:26
oui c'est un deuxième Exe que tu embarques dans le premier sous forme de ressources .... il suffit ensuite de l'extraire de l'enregistrer sur le disque et de le lancer ...
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
25 avril 2010 à 13:06
Ton Writer est un Exe externe?
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
25 avril 2010 à 12:47
Surprenant !!
mais peut très vite poser problème ... prenons l'exemple suivant:
j'ai mon programme qui fait 700ko, sur ma clef USB et il me reste que 400ko de libre ...
théoriquement ça devrait largement suffire à l'enregistrement des paramètres mais avec
ce code ça ne fonctionnera pas ... pas assez d'espace de stockage disponible pour cette opération !!!

J'avais utilisé une autre méthode ... moi couteuse en mémoire :
Tu crées un "Writer" (une application qui se charge d'écrire les données à la fin de l'exe) en API, tu devrais t'en sortir avec une app de moins 100ko que tu embarques en ressource dans ton programme ...

le reste est simple ... l'application prépare les données à sauvegarder dans un fichier ... extrait le "Writer" des ressources, le lance et se termine ... le "Writer" prend le relais ... efface les anciennes données et copie les nouvelles .. il ne reste plus qu'à créer un batch qui fera le ménage (efface les données temporaires, le "Writer" et le batch lui même) et de le lancer avant de quitter le "Writer"
je sais pas si j'ai été assez clair. :D
jihelb Messages postés 49 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 24 mars 2017
25 avril 2010 à 11:21
Salut Caribensila,
Je n'ai pas touché à ton code. Ces lignes y sont. Je ne lance d'ailleurs pas plusieurs instances. C'est quand je clic sur le bouton pour fermer la fenètre, que le logiciel crée une copyof... de l'exe en cours (normal) mais ne ferme pas cet exe ensuite ????
D'autre part, je n'arrive pas à poster mon code, à l'étape 3, quoique je fasse je reste avec la bouton ""précédente" et pas de bouton "terminer" ??? Les admins ne répondent pas ! Peut-être... un jour...
Bon dimanche,
JiHelB
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
24 avril 2010 à 18:04
Salut Caribensila.
Très astucieux !

A +
Thierry
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 avril 2010 à 17:21
@ JIHELB,

N'aurais-tu pas oublié les quelques lignes de code à ajouter dans le source du projet pour ne pas pouvoir lancer plusieurs instances de l'application ?
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 avril 2010 à 16:52
Salut JIHELB,

Je vais regarder pour le CopyOf frénétique et je te contacterai par MP si j'ai besoin de précisions.

Heureux d'avoir abrégé le temps de développement de ton "Carnet de Mots de passe". :)

« Je te remercie d'avoir réveillé mon envie »
On m'a déjà dit ça. Mais quand ?.. ;)
jihelb Messages postés 49 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 24 mars 2017
24 avril 2010 à 12:28
Bonjour Caribensila,
Je ne sais pas pourquoi, mais le copyOf...ne veut pas se détruire.
J'obtiens une suite de copyodcopyofcopyof..... que je peux faire cesser que par un reset de la bécane ????? (Windows XP)
Par contre, grace à toi, en cherchant à me sortir de ce guépier, j'ai fait une remarque qui m'a permis d'obtenir le résultat recherché, par une autre approche. J'avais demandé une aide à ce sujet ici même en 2005, pour un "Carnet de Mots de passe", et tout ce que j'y avais gagné, ce sont des suspicions de malveillance. N'étant pas rancunier, je poste dans 5 mn ma contribution.
Je te remercie d'avoir réveillé mon envie...
Cordialement,
JiHelB
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
22 avril 2010 à 17:29
Salut JEAN_JEAN,
Tu n'es pas du tout parano et tu as raison. J'ai négligé la sécurité de l'opération par souci de simplification. Mais ce serait une erreur IRL.
Merci pour la note. :)
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
22 avril 2010 à 12:24
Bj Cari,
Intéressant et original!
Une alternative en effet pour des données un peu sensibles qu'on ne veut pas dévoiler dans le Ini.
Par contre ça me gêne un peu dans ce sens où tu détruis l'exe original! Risque d'altération du Bin original par copie! Mais c'est sans doute ma parano vieillissante!
Bien à toi
jean_Jean
Rejoignez-nous