CRACK DE MILKSHAPE (suite)

qq temp aprés la sortie du mag n°6 j'ai eu la trés desagreable surprise de voir que tout n'était pas cracké en effet aprés un certain temp, la sauvegarde ne marche plus !

alors je me suis remis au travail pour deplomber milkshape une 2éme fois !

SOUVENONS NOUS

donc souvenons nous, en 4228D9 nous avions :

mov al, byte ptr [esp+32]
mov cl, byte ptr [esp+33]
mov dl, byte ptr [esp+31]
mov byte ptr [004B94F6], cl
mov ecx, dword ptr [esp+3C]
mov byte ptr [004B94F5], al
mov eax, dword ptr [esp+38]
mov byte ptr [004B94F4], dl

et nous avions changez que les truc relatif à dl

LE PROBLEME

mais voila le test pour l'enregistrement ne porte pas sur dl mais sur cl pour preuve, en 402369 nous avons la partie qui va nous envoyez un autre message pas beau : "This version is has expired ! You cannot save your work anymore !" BARK ! c pa bo !

push 00000004

* Possible StringData Ref from Data Obj ->"MilkShape 3D 1.1.0"

push 00466050

* Possible StringData Ref from Data Obj ->"This version has expired! You "
->"cannot save your work anymore!"

push 004667A0
push 00000000
call 00437C60
(fonction qui verifie un bidule et qui affiche le msg)

et juste avant :

mov al, byte ptr [004B94F6] (met la valeur du byte contenu a l'adresse 4B94F6 dans al)
push ebx
(on sauvegarde les registres)
push ebp
(idem)
push esi
(idem)
test al, al
(al = 1 ?)
...
je 0040238A
(si oui on saute en 40238A et on passe au dessus du message d'erreur !)

donc al doit etre egal à 1 donc 4B94F6 doit etre egal à 1

4B94F6 ????? tien tien remonté un peu la page et relisez la partie "souvenons nous" ... oui voila :

mov al, byte ptr [esp+32]
mov cl, byte ptr [esp+33]
mov dl, byte ptr [esp+31]
mov byte ptr [
004B94F6], cl
mov ecx, dword ptr [esp+3C]
mov byte ptr [004B94F5], al
mov eax, dword ptr [esp+38]
mov byte ptr [004B94F4], dl

on avais deja changer ça en :

mov al, byte ptr [esp+32]
mov cl, byte ptr [esp+33]
mov dl, 01
nop
nop
mov byte ptr [004B94F6], cl
mov ecx, dword ptr [esp+3C]
mov byte ptr [004B94F5], al
mov eax, dword ptr [esp+38]
mov byte ptr [004B94F4], dl

donc j'espere que vous avez compris la solution c'est de mettre 4B94F6 à 1 et puis dans notre lancé on va mettre 4B94F5 à 1 comme ça j'espere que l'on sera tranquile !

mov al, 01
nop
nop
mov cl, 01
nop
nop
mov dl, 01
nop
nop
mov byte ptr [004B94F6], cl
mov ecx, dword ptr [esp+3C]
mov byte ptr [004B94F5], al
mov eax, dword ptr [esp+38]
mov byte ptr [004B94F4], dl

LE RETOUR DE LA VENGEANCE DE L'EDITEUR HEXADECIMAL FOU, episode VI

donc à partir de l'offset 228CD on va changer : 8A 44 24 32 8A 4C 24 33 B2 01 90 90 en B0 01 B1 01 B2 01 90 90 90 90 90 90

mais pkoi donc ?

8A 44 24 32 = mov al, byte ptr [esp+32]
8A 4C 24 33 = mov cl, byte ptr [esp+33]
B2 01 = mov dl, 01
90 = nop
90 = nop

et

B0 01 = mov al, 01
B1 01 = mov cl, 01
B2 01 = mov dl, 01
90 90 90 90 90 90 = nop nop nop nop nop nop

MEA CULPA

oui j'avoue je suis fautif, j'ai pas tout verifier je suis nul :( mais :

erratum is humanum (ou un truc dans l'genre)
mais :
perseveratus in erratus is diabolicus (putain je suis fort pour inventer du latin :))

faute avoué, faute a moitié pardonner (desoler j'ai pas eu le courage d'inventer du latin là :))

et puis c pas de ma faute c'est de la faute à ... (attendait je cherche un fautif) ... (am stram gram pic et pic et col et gram) ... BIGOOD ! voila c ça faute parce que ... (maintenant faut que je trouve une raison) ... parce que c de ça faute ! voila c tout ! point final

.<= (il est là le point final)

 

CROQMORT