Que faire quand il n'y a pas de SDR ? Réponse ici !

Vous avez un problème pour cracker ou vous souhaitez parler de reversing en général...

Que faire quand il n'y a pas de SDR ? Réponse ici !

Messagepar Neitsa » 14 Juillet 2005, 16:01

En complément du post à Lise :

- Que faire quand il n'y a pas de SDR ?

Question qui revient souvent sur le forum...

SDR = String data references, les chaînes de caractères contenant le message "Good boy" ou "Bad boy".

1) Vérifiez si le programme est packé (protégé par un packer / compresseur / crytpeur) avec PEID ou STUDPE :

(EDIT: PEiD et StudPE étant un peu "anciens" et plus maintenus à jour, vous pouvez également utiliser ProtectionID et RDG packer detector:
ProtectionID: _http://protectionid.owns.it/
RDG Packer detector: _http://www.rdgsoft.8k.com/ )


StuPE détecte ici Neolite 2.0 :

Image

PEID détecte un UPX :

Image

1-1) Deux possibilités s'offre à vous :

A) Le programme n'est pas packé :

les strings sont peut être encryptées dans le programme ou contruites à l'éxecution du programme. Elles sont peut être présentes dans une DLL ou encore dans un fichier externe mais pas forcément dans l'exécutable principal (les possibilités sont multiples...). Allez au paragraphe 2.

B) Le programme est packé :

Il faut bien sur l'unpacker, soit avec un outil spécialement fait pour LA version du packer que PEID ou StudPE vous auront donnés, ou bien faire un unpack manuel (pour lequel vous trouverez des tutoriaux sur le web, cherchez bien AVEC le numéro du packer précisément ! par exemple PE compact 1.0 est très différent de PE compact 2.3).

Une fois unpacké, reconstruisez les imports, ici point de salut en dehors d'Imprec (import reconstructor ) et PEVirgin sauf si vous savez le faire manuellement...

Vous verrez alors peut être des SDR une fois le prog unpacké si ce n'est pas le cas lisez 1-1-A)


2) Programme unpacké ou non packé mais pas de SDR...

2-A ) Méthode des APIs :

Breaker sur les APIs devrait être la première chose à faire. Si c'est une MessageBox qui vous annonce l'erreur, on peut poser un breakpoint sur l'API MessageBox et ce sur tous ses CALLs.

Olly : CTRL + N pour faire apparaitre la fenêtre des noms :

Image

Choisissez l'API qui convient (ici MessageBox, on click gauche dessus) puis faites un click droit sur cette ligne et "View Call Tree" :

Image

Clic droit dans cette fenêtre et "Set Breakpoint on every call" : vous vennez de poser un BP sur toutes les CALL MessageBox du programme.

Image

Parfois les compilateurs (ou les programmeurs) font des sauts vers les APIs ou les procédures plutôt que des CALLs.

Faites CTRL + N, et au lieu de "view call tree" faites "Find references to import" puis "Set breakpoint on every command" : cela pose un BP sur les CALLs mais aussi sur les JMPs qui pointe vers l'APIs ou la procédure.


Image


Ensuite vous n'avez plus qu'a faire ce qu'il faut pour trouvez ce qui vous amène à cette API (dans notre cas MessageBox mais ca peut être toute autre API)

2-B) Méthode de la pile

Il se passe bien quelque chose (apparition d'une MessagBox, ouverture d'un fichier,apparition d'un nag, etc.) mais je ne vois pas l'API en question...

C'est surement que l'API est utilisé au travers d'une redirection ou d'une indirection (pointeur sur pointeur), ou extraite à l'exécution.

Le mieux est encore ici d'utiliser la "méthode de la pile"

Dans ce cas là exécuter le programme, attendez que la messagebox (toujours un exemple cela peut être n'importe quoi d'autres) et mettez en pause le débuggeur (Olly: F12).

Allez sur la fenêtre des registres, click gauche sur ESP, et click droit > "follow in stack".

Regardez la fenêtre de pile : A ce moment là vous êtes qque part dans NTDLL...

Image

N'oubliez pas que chaque procédure sur la pile est entourée à gauche d'une ligne noire qui la délimite (entourée en bleu ici). Ne vous intéressez qu'aux "RETURN TO" qui se trouve en haut des procédures (entourés en vert foncé ici, car il arrive qu'on en voit plusieurs à l'intérieur des limites) !

Image

Descendez jusqu'a retrouver le nom de l'API sur la pile (nécessite de descendre beaucoup la plupart du temps).

Ici je viens de trouver l'appel à MessageBox :

Image


Faites un clik gauche sur la ligne (voir ci dessus) et puis un click droit et "Follow in dissasembler". Vous atterissez sur la ligne située sous le CALL de l'API dans le fenêtre de code !

Posez un BP sur cette ligne (notez bien sur la concordance des adresses sur la pile et dans le désassembleur) et faites F9 pour exécuter.

Image

D'ici vous devrez trouver ce qui vous à amené à cette messagebox....


Si (et si seulement) vous voulez ajouter des compléments merci de les poster à la suite de ce message, je les intégrerais dans ce post, avec le crédit qui va bien :D

Mici !
Dernière édition par lautheking le 06 Septembre 2013, 10:18, édité 2 fois.
Raison: ajout des scanneurs protectionID et RDG
Neitsa
 

Messagepar LuvKiller » 24 Août 2005, 12:26

joli boulo merci pour ces infos
Image
Avatar de l’utilisateur
LuvKiller
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 124
Inscription: 04 Juin 2005, 23:47
Localisation: sur la terre

Messagepar ElKasser » 10 Décembre 2005, 01:44

Bravoooooooooooo Neitsa...good job!.
Seulement pour e mots ke t'utilise "la pile", moi je préfère le mots "mémoire".. :D
Vive l'Underground,...
Avatar de l’utilisateur
ElKasser
Elève
Elève
 
Messages: 54
Inscription: 01 Octobre 2005, 02:41

Messagepar ++Meat » 10 Décembre 2005, 09:51

Comment sait-on qu'il s'agit d'une pile si on l'appelle "mémoire" ? ;)
Astral UNiVERSAL HQ
http://astral.tuxfamily.org/
Avatar de l’utilisateur
++Meat
King of Cracking
King of Cracking
 
Messages: 765
Inscription: 05 Juillet 2005, 19:54
Localisation: Hyperspace

Messagepar Arch Enemy » 10 Décembre 2005, 10:21

joli jolo :D
je te felicite :D
SUB Maison Blanche , BUSH
CMP BUSH , President Etats Unis
MOV POUBELLE, BUSH
XOR POUBELLE , POUBELLE
CMP (nouveau president), President Etats Unis
MOV Maison Blanche , nouveau president
Avatar de l’utilisateur
Arch Enemy
Crackeur confirmé
Crackeur confirmé
 
Messages: 190
Inscription: 20 Octobre 2005, 21:15
Localisation: Belgique

Messagepar ElKasser » 10 Décembre 2005, 23:20

la pile c "the stack" en english, en français en l'appel aussi condensateur, car il se charge et acumule les données (sous forme electrique). La mémoire c le mm concept!, c seulement les mots qui parfois diverge et voile la compréhension!.. :wink:
Vive l'Underground,...
Avatar de l’utilisateur
ElKasser
Elève
Elève
 
Messages: 54
Inscription: 01 Octobre 2005, 02:41

Messagepar ++Meat » 10 Décembre 2005, 23:33

Ca revient à dire qu'il ne faut pas utiliser le mot "frigo" mais "objet electrique blanc refrigirant son contenu" (à peu près hein :P). Bref on va pas flooder pour rien, mais quand même :)
Astral UNiVERSAL HQ
http://astral.tuxfamily.org/
Avatar de l’utilisateur
++Meat
King of Cracking
King of Cracking
 
Messages: 765
Inscription: 05 Juillet 2005, 19:54
Localisation: Hyperspace

Messagepar Invité » 06 Juin 2006, 20:43

la pile c "the stack" en english, en français en l'appel aussi condensateur, car il se charge et acumule les données (sous forme electrique). La mémoire c le mm concept!, c seulement les mots qui parfois diverge et voile la compréhension!..


En fait, on appelle "pile" la mémoire surtout parce qu'il est plus simple après de comprendre ce que désignent les termes FIFO (First In First Out) et LIFO (Last In Last Out) qui sont les deux méthodes principales d'empilage quand on veut utiliser l'allocation de mémoire dynamique.
De plus la pile est réservée aux données, elle ne contiendra pas de code, l'appellation mémoire est donc également moins précise.
Invité
 

Messagepar Silkut » 06 Juin 2006, 22:01

Anonymous a écrit:
la pile c "the stack" en english, en français en l'appel aussi condensateur, car il se charge et acumule les données (sous forme electrique). La mémoire c le mm concept!, c seulement les mots qui parfois diverge et voile la compréhension!..


En fait, on appelle "pile" la mémoire surtout parce qu'il est plus simple après de comprendre ce que désignent les termes FIFO (First In First Out) et LIFO (Last In Last Out) qui sont les deux méthodes principales d'empilage quand on veut utiliser l'allocation de mémoire dynamique.
De plus la pile est réservée aux données, elle ne contiendra pas de code, l'appellation mémoire est donc également moins précise.


petit grain de sel: LIFO ou LILO ?
LIFO donne Last In First Out :?:
Silkut
 

Messagepar sb2401 » 08 Octobre 2007, 22:50

salut;

Après avoir effectuer la procedure de neitsa;je bloque au niveau :

-Ensuite vous n'avez plus qu'a faire ce qu'il faut pour trouvez ce qui vous amène à cette API (dans notre cas MessageBox mais ca peut être toute autre API) .

j'ai effectivement du mal a comprendre!!

aider moi.
sb2401
Visiteur
Visiteur
 
Messages: 12
Inscription: 08 Octobre 2007, 20:15
Localisation: MARSEILLE

Messagepar Deamon » 09 Octobre 2007, 12:21

il faut que tu regardes ce qui a fait qu'on arrive sur cette API donc voir d'où viennent les éventuels sauts ou CALL qui pointent vers ce bout de code.
Deamon

Les connaissances qu'on a cherchées restent, celles qu'on n'a pas cherchées se perdent. [Baden-Powell]
En un mot : cherche sur Google avant de demander !
Avatar de l’utilisateur
Deamon
Triumvirat
Triumvirat
 
Messages: 4374
Inscription: 25 Janvier 2004, 12:46
Localisation: Devant mon PC

Messagepar sb2401 » 10 Octobre 2007, 21:12

salut DAEMON?;

J'ai regardé donc comme tu me l'as indiquer se qu'effectue le prog juste avant d'afficher la messagebox d'erreur et voila ce que j'obtient :

-le premier jump et le suivant:

0049DFE3 . 73 06 JNB SHORT avgsetup.0049DFEB

donc a partir de la il faut que je vois se qui se passe à cette adresse si j'ai bien compris??

a+
sb2401
Visiteur
Visiteur
 
Messages: 12
Inscription: 08 Octobre 2007, 20:15
Localisation: MARSEILLE

Messagepar ben » 10 Octobre 2007, 21:18

essaye ca : http://www.deamoncrack.host.sk/ :wink:
et stp évite de poster dans les post-it.
ta déja ouvert 2 autres post dessus :...: :evil:
amicalement, ben
ben
Membre Anti-Shareware
Membre Anti-Shareware
 
Messages: 90
Inscription: 30 Mai 2007, 16:13

Messagepar sb2401 » 10 Octobre 2007, 21:25

salut ben et merci de répondre!

Le lein que tu m'as fournis n'est pas valide error 403 forbiden!!

Peut m'en donner un autre?

a+
sb2401
Visiteur
Visiteur
 
Messages: 12
Inscription: 08 Octobre 2007, 20:15
Localisation: MARSEILLE

Messagepar daniel2206 » 04 Mars 2008, 17:21

j'ai eu le meme pbleme avec hdd life thank you
daniel2206
Visiteur
Visiteur
 
Messages: 23
Inscription: 18 Février 2008, 17:11

Suivante

Retourner vers Reversing

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités