Page 1 sur 1

limite de caractères data.s

Publié : ven. 18/sept./2015 10:33
par jmg49
Bonjour,

J'ai une DataSection avec du data de type string, y a t il une limite pour entrer les données ? , par exemple, concernant un tableau de bytes , cela va donner :

Code : Tout sélectionner

Data.b $fc,$e8,$82,$00,$00,$00,$60,$89,$e5,$31,$c0,$64,$8b,$50,$30
Data.b ....suite des bytes 


dans ce cas j'ai 15 entrées par ligne

si je veux faire du data.s , peut on tout mettre sur une seule ligne ? dans mon cas elle est très longue
Data.s "PPYA4444444444QATAXAZAPA3QADAZABARALAYAIAQAIAQAPA5AAAPAZ1AI1AIAIAJ11AIAIAXA58AAPAZABABQI1AIQIAIQI1111AIAJ........et ce n'est pas fini......."
j'ai pas l'impression que cela fonctionne , vaut il mieux séparer les caractères par blocs ? => "IREPTGOD","ZERTYU",

Re: limite de caractères data.s

Publié : ven. 18/sept./2015 10:39
par jmg49
ok , merci bien, le mieux est de tester, je fais un retour dès que ...

Re: limite de caractères data.s

Publié : ven. 18/sept./2015 14:12
par nico
Si ton code source n'est pas destiné a être partagé, il vaut mieux passer par un fichier et faire un includebinary, cela réduira proportionnellement le temps de compilation et ce sera plus aisé de naviguer dans ton code source.

Re: limite de caractères data.s

Publié : sam. 19/sept./2015 10:43
par microdevweb
Avec les nouvelles fonctions Json, il facile maintenant de placer les data dans des structures / list / map de les sauvegardé sur un fichier avec n'importe quel extension et de les chargés au lancement de l'exe.

Re: limite de caractères data.s

Publié : jeu. 24/sept./2015 9:16
par jmg49
microdevweb a écrit :Avec les nouvelles fonctions Json, il facile maintenant de placer les data dans des structures / list / map de les sauvegardé sur un fichier avec n'importe quel extension et de les chargés au lancement de l'exe.
oula , ça c'est pas mal du tout, aurais tu un code d'exemple pour intégrer les data depuis un fichier ? avec l'aide des fonctions json je ne m'en sort pas !

Re: limite de caractères data.s

Publié : jeu. 24/sept./2015 10:07
par falsam
jmg49 a écrit :aurais tu un code d'exemple pour intégrer les data depuis un fichier ? avec l'aide des fonctions json je ne m'en sort pas !
Bonjour jmg.
Un tuto sur ce sujet :
- La création d'une chaîne JSON avec la fonction CreateJSON()
- L'insertion d'une liste chaînée dans une chaine avec JSON avec la fonction InsertJSONList()
- La sauvegarde d'une chaîne JSON dans un fichier avec la fonction SaveJSON()
- Download d'un ficher JSON avec la fonction LoadJSON() et ExtractJSONList()

:arrow: http://www.purebasic.fr/french/viewtopi ... 21&t=14511

Re: limite de caractères data.s

Publié : ven. 25/sept./2015 10:40
par jmg49
merci pour tous ces liens, je vais jetter un oeil attentif ,

est il possible par ce moyen là de "remplir automatiquement" des data.b dans une datasection ? par exemple , importer depuis un fichier une chaine "$32,$45,$ff,$89" dans la data section ?

Re: limite de caractères data.s

Publié : ven. 25/sept./2015 13:14
par G-Rom
La datasection est par définition "juste lisible" , une solution consiste à alloué un espace dans ta datasection , récupéré l'adresse via "?label" & écrire dedans , mais je ne vois pas l’intérêt

Re: limite de caractères data.s

Publié : ven. 25/sept./2015 15:01
par jmg49
moi oui, ex : un fichier .txt qui contient des une suite de caractères Base64

dans notre code on récupère la chaine de caractères, application de la fonction b64decode et intégration dans des data.b , on mets le contenu dans le registre EAX en asm et call

résultat, une charge virale encodée en b64 dans le fichier .txt , décodée et exécutée sans détections anti virales (sous réserve ! , l'heuristique peut bloquer) ,

( ça ma semble similaire au RunPe qui couplé à une routine d'encryption/décryption va décrypter et exécuter un tableau de bytes directement en mémoire, )

j'ai déjà rencontré un cas similaire mais avec les bytes écrits sous forme de char dans le registre Windows.....récupérés par un prog tiers et exécutés, mais contrairement au RunPE pas d'appel d'API suspect (CreateProcess_ ; GetThreadContext_ ;WritePocessMemory ....etc)

Re: limite de caractères data.s

Publié : ven. 25/sept./2015 16:18
par G-Rom

Code : Tout sélectionner

; ecriture
*pointeur = ?Memory 
PokeB(*pointeur,10)
PokeB(*pointeur+1,11)
PokeB(*pointeur+2,12)
PokeB(*pointeur+3,13)

;lecture
Restore Memory 
For i = 0 To 3
  Read.b value
  Debug value 
Next 

;datasection
DataSection
  Memory:
  Data.b 0,0,0,0
  
EndDataSection
voila le principe, a toi d'agrandir la datasection, attention , c'est pas dynamique.

Re: limite de caractères data.s

Publié : ven. 25/sept./2015 19:46
par G-Rom
une datasection est un tableau à une dimension. il n'est pas read only , on peu écrire dedans.

Re: limite de caractères data.s

Publié : ven. 25/sept./2015 21:51
par G-Rom
la DataSection est une Zone , une Section , du point de vue Assembleur
je connais tout cela , ca reste une zone contigüe , donc comme un tableau 1D.
meme s'il est vrais qu'on peut écrire dedans , comme je le pense, c'est pas fait pour ...
je suis d'accord.

Code : Tout sélectionner

mais bon , puisqu'il s'agit apparemment de faire un virus , tout est permis (meme sur ce forum, alors que je pensait le sujet plutot sensible au passage ;) )
il n'y a pas de code malveillant et il y en aura pas.

Re: limite de caractères data.s

Publié : lun. 28/sept./2015 9:36
par jmg49
:) non le but n'est pas de faire un virus, ça je sais déjà très bien le faire, c'est mon travail, c'est plutôt comment mettre en place des mesures de protections pour justement bloquer ce type de nouvelles attaques par des règles à injecter dans les IDS, on ne bloque que ce que l'on connait....le PureBasic offre d'énormes possibilité pour les programmeurs d'applications normales mais aussi malheureusement pour les malwares de par sa nouveauté de syntaxe inconnue des antivirus, coder différemment avec des techniques non utilisées est un point faible des antivirus....
j'ai pu recenser à ce jour, en Purebasic : un crypteur d'exécutable, un cheval de troie, et plusieurs codes de RunPe qui sont utilisés essentiellement pour ce genre "d'activités" ,
ce pourquoi je fais ceci, une fois mon code optimisé et fonctionnel, je récuperèrerai la trame tcp générée par le malware et pourrait l'injecter dans nos ids, protégeant le réseau ,

maintenant, vous avez votre point de vue en fonction de ce que vous développez et moi aussi, je ne vous ai jamais demandé de m'aider à développer un virus, malgré tout des codes malveillants il y en a sur ce forum, par contre ce n'est pas à la portée du premier venu pour les utiliser,

je ne veux pas provoquer de tensions, je sais que le sujet est sensible, me concernant, j'ai appris la programmation essentiellement avec les malwares, VB6 ,Delphi , c++ , et on peut remonter à l'assembleur Z80, aujourd'hui j'ai la chance d'avoir pu en faire ma profession, maintenant, on peut en discuter en messages privés, mes demandes seront surtout donc orientée vers cette direction plutôt que de savoir comment afficher des gadgets.....