Page 5 sur 8
Publié : dim. 21/août/2005 15:27
par Dr. Dri
c'est ce f qui m'a gêné quand j'ai cherché de la doc sur ces instructions, à chaque fois il correspondait au f de float... en tout cas tes codes sont tres instructifs... maintenant j'essaye de comprendre le deuxième...
[edit]
si j'ai bien compris tu t'autorises à modifier le code et tu touches au xor eax, eax (eax = 0 ?) pour le modifier en RDTSC (donc les deux instructions font la même taille) à l'aide des variables var1 à 3 et les deux pointeurs qui pointent sur les eax.

(j'ai pas trouvé mieux pour dire ke tu m'as grillé tous mes neuronnes lol)
dans la même optique ont peut crypter certains bouts de code ou fonctions, yzen pensent koi les crackers ?
Dri
Publié : dim. 21/août/2005 16:30
par erix14
C'est bien ça, j'écrase l'instruction XOR eax,eax par l'instruction RDTSC en plusieurs étapes ni vues ni connues que je t'embrouille

Les deux instructions ont la même taille.
On peut aussi en autorisant l'écriture sur tout l'exécutable, faire comme les fichiers ZIP, mais sans compression.
- Crypter une partie du code qui sera utilisé après une demande de clé.
- Enregistrer ce nouveau exécutable.
- Et quand on l'exécute, il demande la clef qui permet de décrypter le code précédemment crypter.
À aucun moment la clef et dans l'exécutable, comme pour les fichiers ZIP ( merci Dobro

)
Et quand le Haker se retrouve devant l'algorithme de décryptage, que veux-tu qu'il fasse il y a des milliards de milliards de milliards... de possibilités, et en plus, les zones cryptés peuvent être inclus dans la clef comme information.
Je n'ai malheureusement pas le temps de faire un exemple aujourd'hui...
Publié : dim. 21/août/2005 18:32
par AYBABTU
erix14 a écrit :Et maintenant voici le même programme, mais avec les instructions RDTSC complètement camouflées
Comme cela, plus moyen de trouver le code $0F31 de l'instruction RDTSC.
Je n'ai pas été trop vicieux, c'est un exemple
Yeah bravo ! Ca c'est bien fait

Perdu dans une grosse masse de code ca le fait bien

Pour trouver ça fait bien tracer je pense quand meme

Donc, bien joué !
Publié : dim. 21/août/2005 18:36
par AYBABTU
erix14 a écrit :
On peut aussi en autorisant l'écriture sur tout l'exécutable, faire comme les fichiers ZIP, mais sans compression.
- Crypter une partie du code qui sera utilisé après une demande de clé.
- Enregistrer ce nouveau exécutable.
- Et quand on l'exécute, il demande la clef qui permet de décrypter le code précédemment crypter.
À aucun moment la clef et dans l'exécutable, comme pour les fichiers ZIP ( merci Dobro

)
En effet

D'ailleurs Julien nous avait fait un crackme de la sorte :p Mais attention à une chose, il faut bien choisir le code que vous allez crypter avec la clé entrée, Par exemple ne pas crypté des zones avec plein de 00, ou des zones de code devinables. C'est comme ça qu'on avait eu Julien

Mais c'est une très bonne idée.
Et autre chose, si la clé est mauvaise, le programme va crashé, il faut tenir compte de ça, voir faire en sorte de "gérer" le crash. (avec un gestionnaire d'exceptions sans doute)
erix14, tu nous fais un crackme un de ces 4 ? (sans mettre le code de ta protection avant, mais apres plutot

)
Julien, je mate ton crackme dès que je retourne sous windows, mais j'ai peur avec toi maintenant

Et je transmets a Zorglub.
Publié : dim. 21/août/2005 18:41
par djes
Ce qui est sympa aussi, ce sont les mnémoniques non documentés... J'avais un pote qui s'était spécialisé là dedans.

Publié : dim. 21/août/2005 18:46
par Dr. Dri
en francais ca veut dire quoi ?? ^^
Dri
Publié : dim. 21/août/2005 18:52
par erix14
erix14, tu nous fais un crackme un de ces 4 ?
Il est déjà commencé

Publié : dim. 21/août/2005 19:08
par djes
Dr. Dri a écrit :en francais ca veut dire quoi ?? ^^
Dri
Ben les mnémoniques, ce sont les instructions du langage machine défini par le fondeur du microprocesseur (en assembleur ce sont les MOV, ADD, CMP, etc.). Le fondeur donne toujours une documentation de son microprocesseur, mais quelques-unes de ces instructions ne sont pas documentées. Il est donc possible d'utiliser ces instructions "inconnues" pour faire faire certaines choses à l'ordinateur; et comme le debugger n'est pas censé les connaître, il n'est pas capable de les désassembler correctement. Cela pose évidemment quelques soucis au cracker

Publié : lun. 22/août/2005 8:37
par lionel_om
@AYBABTU, tu nous conseille quoi comme debugger ?
Moi j'ai tenté d'utilser SoftIce, mais sans succès...
J'ai pourtant utilisé un tut, ms sans succès...
J'essaye pourtant juste de debugger le prog suivant :
Code : Tout sélectionner
; Shows possible flags of StringGadget in action...
If OpenWindow(0,0,0,322,275,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"StringGadget Flags") And CreateGadgetList(WindowID(0))
StringGadget(0,8, 10,306,20,"Lionel")
StringGadget(1,8, 35,306,20,"MyPass")
ButtonGadget(2,8, 60,306,20,"Valider")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
If EventGadgetID() = 2
a$ = GetGadgetText(0)
b$ = GetGadgetText(1)
If a$ = "lio" And b$ = "lio"
MessageRequester("", "Yes", 0)
End
Else
MessageRequester("", "No", 0)
EndIf
EndIf
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
Publié : lun. 22/août/2005 9:29
par gilbert2
Bonjour,
Je voulais juste preciser une chose d'importance qd on utilise le rdtsc, il est judicieux de le faire preceder d'une instruction cpuid sinon gare au effets de bord indesirables.
Lionel_om si tu souhaites debogguer avec les memes privileges que softice, il faut utiliser windbg. Ce debug est disponible en libre telechargement sur le site de microsoft.
Bye
Publié : lun. 22/août/2005 9:33
par lionel_om
Merci, mais je n'y connais rien, donc qd tu me parle de "même privilèges", je ne sais pas de quoi tu parle
C'est dans le mag l'Ordi Indiv que j'ai entendu parlé de SoftIce pour un reportage sur les crackeurs (ya 2 mois).
Donc c'est le seul que je "connais", ms je connais juste le nom, pas le potentiel

Publié : lun. 22/août/2005 9:51
par gilbert2
lionel_om a écrit :Merci, mais je n'y connais rien, donc qd tu me parle de "même privilèges", je ne sais pas de quoi tu parle
C'est dans le mag l'Ordi Indiv que j'ai entendu parlé de SoftIce pour un reportage sur les crackeurs (ya 2 mois).
Donc c'est le seul que je "connais", ms je connais juste le nom, pas le potentiel

Hmm, je me suis permi de voir ton site. Ca va me permettre de te repondre plus aisement.
Les privileges comme leurs noms l'indiques des modes d'acces du processeur. Intel schematise les privileges processeurs sous formes d'anneaux (ring). Il en dispose de 5 du plus au moins critiques. Concretement a quoi ca sert ? Autoriser un acces speciaux "a la ram", au(x) cache(s) du processeur, a des instructions specifiques, des registres "caches".
Qd tu utilises windows, sans le savoir tu utilises le privileges 3

(ou ring 3).
Les developpeurs de drivers en tout genre utilisent couramment le niveau 0 autrement dit le mode le plus critique du processeur afin d'avoir une liberté d'agir totale.
Pour en revenir aux deboggueurs : certains sont capables d'acceder qu'au privileges de niveau 3 et d'autres comme softice ou windbg (le debug mis a notre disposition par microsoft) permettent d'avoir acces du ring 0 au ring 5.
Publié : lun. 22/août/2005 10:10
par Ed lincoln
Code : Tout sélectionner
C'est dans le mag l'Ordi Indiv que j'ai entendu parlé de SoftIce pour un reportage sur les crackeurs
tu pourrais nous filer cet article ?

Publié : lun. 22/août/2005 10:29
par lionel_om
J'ai scanné les 4 pages (la partie sur SoftIce étant sur la page 4)
L'adresse :
http://luchezl.free.fr/Temp/Piratage/ (total 1.5 Mo)
@gilbert2 :
Hmm, je me suis permi de voir ton site. Ca va me permettre de te repondre plus aisement. Smile
No pb

Par contre, dsl, je ne vois pas le rapport

Publié : lun. 22/août/2005 10:36
par gilbert2
lionel_om a écrit :
No pb

Par contre, dsl, je ne vois pas le rapport

En fait, je souhaitais parler d'exception cpu (mais je me suis raviser car en parler succintement, c'est pas genial) .et voyant que tu as fait du c++ tu connais la notion d'exception....