home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / acid_burn2000 / tutor35_fr.txt < prev    next >
Text File  |  2000-05-25  |  15KB  |  330 lines

  1.  
  2.   ·      ·    -  -- A C i D B U R N - P R O D U C T i O N S -- - ▄   ·     ·
  3.      ░    ▄  ░      ▄ ▄  ▄       ░ ▄░          ░ ▄     ▄         ▐█▄   ▄ ░
  4.   ▄██▓▀▀███▌▄▓█▀▀▀███▌▐█▌▐███▀▀▀█▓▄▐▓██▀▀███▄░▄▓█▌ ▀▄  ▐███▀▀███▄░▓██▄ ▐█▓▄
  5.   ███▌ ░▓██▌███ ░▀▀▀▀ ▀▀▀ ███ ░ ███▌███  ▐██▓░▓██ ░ ██▌▐███▌ ▐██▓ ███▀█▄███▌
  6.   ▓██▀▀▀███▌███▌░ ░▓█▌███▌███ ░ ███▌███▀▀▀██▄▐███ ░ ███▐███▀▀▓██▄ ███▌ ▀███▌
  7.  ░▓██▌░ ███ ▓██▌░ ███▌███░▓██ ░▐███▌███▌ ▄███▐███▌░░▓██░▓██▌ ▐███▌███▌░ ███▄
  8.  ▐███▌░ ███▐███▌░ ███▐██▓▐███ ░▐███░▓██▌░▐███▐███▌ ▐███▌███▌░ ███▌███▌░ ██▓▀▄
  9.  ▐███▌░ ███▐███▌░ ███▐██▓▐███ ░▐███▐███ ░▐███▐███▌ ▐███▌███▌░░▓██ ▓██▌░ ██▌
  10.  ▐██▓ ░▐██▓▀▒██▄▄▄███▒██▓▐███▄▄██▒▀▓███▄▄████▀████▄▓███▀▓█▒▄ ▐█▀ ░▓███ ▐█▀
  11.   ▀      ▀░  ▀    ▀    ▀       ▀          ▀         ▀   ░    ▀      ▀  ▀
  12.   ·      ·    -  -- A C i D B U R N - P R O D U C T i O N S --  -    ·     ·
  13.                                 SRT - CRO
  14.  
  15.  
  16.                           Protection Commercial:
  17.  
  18.         Unpacker un executable protegΘ par Armadillo v1.75a  
  19.                                  
  20.     Tutoriel par ACiD BuRN [Immortal Descendants]             
  21.                          (05 Novembre 1999)         
  22.  
  23.  
  24.  
  25. tout d'abord voici une dΘcryption d'armadillo trouve sur leur site officiel:
  26.  
  27.  
  28. -------------------------------------------------------------------------------------------
  29.  
  30. Armadillo is a powerful software protection system. It wraps around your program like an
  31. armored shell, defending your work from pirates and program crackers with state-of-the-art 
  32. encryption, data compression, and other security features. It also allows you to add a 
  33. complete software protection and registration-key system to your existing programs in five 
  34. minutes or less, with no changes to your program's code! And it works with any language
  35. that produces a 32-bit Windows EXE file.
  36.  
  37. .....
  38.  
  39.  
  40. Armadillo modifies your program's EXE file, using a key you select and state-of-the-art 
  41. compression and encryption tools to foil any attack relying on a decompiler -- all they can 
  42. decompile is the code for the Armadillo decompressor itself, not your program. Your program 
  43. is decrypted in memory when it is run, after Armadillo is satisfied that it's safe to do so 
  44. and that the user has a valid license (more on licenses below). This, along with some advanced
  45.  snoop-detection functions, prevents most patch/bypass attacks -- it would require far more 
  46. knowledge (and a great deal more work) to patch your program while it's encrypted.
  47.  
  48.  
  49. -------------------------------------------------------------------------------------------
  50.  
  51. ca a l'air cool ;P (du moin ca avait heheheh)
  52.  
  53.  
  54. 0)Introduction:
  55.  
  56.  
  57. Bon, en passant sur le site officiel ou m'on peut donwloader la version shareware
  58. d'Armadillo , j'ai vus toutes les options possibles de ce petit truc et je me suis
  59. dis que j'allais voir ca d'un peu plus pres...
  60. Donc, apres l'avoir installe , j'ai pris calc.exe et je l'ai crypter avec les options par
  61. defaults, pour voir un peut la bete ;p
  62.  
  63.  
  64.  
  65. 1)Lancer l'executable avec Soft ice charge:
  66.  
  67.  
  68. Comme vous pouvez vous en douter , les executables proteges disposent d'un anti soft-ice
  69. Il y a en fait 3 detections :
  70.  
  71. - la premiere est tres connu meltice.(Createfila \\.\SICE, \\.\NTICE and \\.\SIWDEBUG)
  72. - la seconde est connu sous le nom de:IsDebuggerPresent. on trouve l'appel a l'API
  73. getprocaddress.
  74. - et pour finir , c un petit int3h :p
  75.  
  76.  
  77. Comment bypasser toutes ce conneries ??
  78.  
  79. il va falloire lancer l'executable avec le loader de soft ice.Donc charger le fichier
  80. avec le loader , et lancer le calc.exe.
  81. Soft ice doit revenir et vous devez surement voir des petits: INVALID
  82. A ce moment la , mettez votre BPX Createfilea. pressez F5 3 fois et vous arrivez sur les
  83. checks , qui ressemblent a ca:
  84.  
  85. 025F:10003895  FF1520A00010        CALL    [KERNEL32!CreateFileA]
  86. 025F:1000389B  83F8FF              CMP     EAX,-01
  87. 025F:1000389E  7409                JZ      100038A9   <-- ici changer le en jmp 100038A9
  88. 025F:100038A0  50                  PUSH    EAX
  89. 025F:100038A1  FF1538A00010        CALL    [KERNEL32!CloseHandle]
  90. 025F:100038A7  EB0B                JMP     100038B4
  91. 025F:100038A9  FF1544A00010        CALL    [KERNEL32!GetLastError]
  92. 025F:100038AF  83F802              CMP     EAX,02
  93. 025F:100038B2  7404                JZ      100038B8
  94. 025F:100038B4  C645FF01            MOV     BYTE PTR [EBP-01],01
  95. 025F:100038B8  8B4604              MOV     EAX,[ESI+04]
  96.  
  97.  
  98.  
  99. il faut changer le JZ 100038A9 en JMP 100038A9
  100. pour cela il suffit de se position a la ligne du JZ , et ensuite tapez sous soft ice:
  101. A "presser entrer"
  102. JMP 100038A9 "presser entre"
  103. "presser echap"
  104.  
  105. et voila , la ligne est devnu un jump , maintenat on trace avec F10 , et on execute le
  106.  CALL    [KERNEL32!GetLastError] , apres l'avoir passe on voit un CMP EAX,2.
  107. En gros il faut que EAX = 2 pour que tous soit OK , sinon c pas bon..
  108. regardez dans EAX , vous verrez EAX = 2 donc c bon.
  109. Pressez F5 , on retrouve la meme chose , comparaison EAX , 2 , c'est toujours bon donc
  110. tous est OK.
  111. On presse une dernier fois F5 pour le dernier check , mais cette fois au moment du
  112. CMP EAX,2 on voit EAX = 32. Ce n'est donc pas bon , il faut mettre EAX a 2.
  113. pour cela dans soft ice , tapes: R EAX 2
  114. et voila EAX passe a 2 , la comparaison EAX a 2 est donc bonne , tous est OK.
  115.  
  116. Une fois ceci fait , on va s'occuper du  2eme check de soft ice.Il se sert de
  117. GetProcAddress , Donc mettez un breakpoint dessus , et pressez F5.
  118. il suffit de presser une fois F12 pour sortir du call , et vous devez rencontrer 
  119. quelque chose comme ca:
  120.  
  121.  
  122. 025F:XXXXXXXX  XXXXXXXXXXXX        CALL    [KERNEL32!GetProcAddress]
  123. 025F:100038ED  3BC3                CMP     EAX,EBX
  124. 025F:100038EF  740A                JZ      100038FB   <--- faites un R FL Z
  125. 025F:100038F1  FFD0                CALL    EAX
  126. 025F:100038F3  85C0                TEST    EAX,EAX
  127. 025F:100038F5  7404                JZ      100038FB
  128. 025F:100038F7  C645FF01            MOV     BYTE PTR [EBP-01],01
  129. 025F:100038FB  56                  PUSH    ESI
  130. 025F:100038FC  FF1548A00010        CALL    [KERNEL32!FreeLibrary]
  131.  
  132.  
  133. Vous voyez surement CMP EAX,EBX et le saut conditionel juste apres.Ici il faut
  134. inverser le Zero Flag et le programme va pourvoir s'executer normallement...
  135. pour inverser le zero flag , i l suffit de taper: R FL Z sous soft ice une fois
  136. que vous etes a la bonne ligne.
  137. A partir de maintenant , il suffit de tracer avec F10 , commet un fou , et nous
  138. allons voir le fameux int3h arriver ;)
  139. Mais avant , etant donner que la version que j'ai utiliser de armadillo n'est pas
  140. enregistrer (pas encore ;p ) nous allons voir une messagebox qui nous le rappel
  141. Donc cliquez sur le boutton OK , et continuez a tracer.. 
  142. Cette nag screen est tres simple a cracker , il suffit de mettre un ret dans le call 
  143. et c'est finis , mais nous allons virer tous cette merde du fichier executable, donc
  144. en s'en tape !
  145. Mais , je ne peus m'empecher de faire un petite remarque:
  146.  
  147.  
  148. -------Remarque:-----------------------------------------------------------------------------
  149.  
  150. Comme vous l'avez surement remarque, il est possbile de proteger l'exe avec un
  151. name / serial au demarage , ce qui peut etre assez chiant a virer , car nous voulons
  152. executer le programme en memoire...
  153. Je vous racontes ca , car le fichier que nous sommes en train d'etudier ne comporte
  154. pas de name/ serial , j'ai packe le fichier avec les options de bases, mais en voulant
  155. cracker le nag screen, je me suis tromper de call , je suis entre dans le mauvais 
  156. et j'ai mis un RET , sur un push EDI , il me semble, bref la premiere instruction.
  157. ensuite , je suis sortis automatiquement du call (RET) et j'ai trace avec F10.
  158. Tous a coup, une dialog box est apparu me demandant un name / serial !!
  159. what the fuck ? c quoi ce bordel, cet armadillo me semble bizzare , mais vraiment!!
  160. il semblerait que quoi que l'on fasse , l'exe contient la verification nom et code.
  161. Il me semble bizzare , mais j'en conclus que ca doit hyper simple a virer , juste un call
  162. a modifier , pour ne pas afficher ca , et on se retrouverais avec un exe crypter de
  163. base...
  164. Je n'ai pas eu le temps de bien regarder , mais ca peut etre inressant.
  165. Tous me pousse a dire que ces protections dites commerciales sont vraiment stupid...
  166.  
  167. -------Fin des Remarques:---------------------------------------------------------------------
  168.  
  169.  
  170. Bref, revenons a nos moutons , hehe
  171. on continue donc de tracer avec F10 s'en reflechir , il faut juste controler le code
  172. on cherche un "int3".
  173. Apres avoir tracer, on trouve ceci:
  174.  
  175.  
  176.  
  177. 025F:00402241  2401                AND     AL,01
  178. 025F:00402243  8885B8FEFFFF        MOV     [EBP-0148],AL
  179. 025F:00402249  BA6D447546          MOV     EDX,4675446D
  180. 025F:0040224E  8995B0FEFFFF        MOV     [EBP-0150],EDX
  181. 025F:00402254  C785C4FEFFFF260C3604MOV     DWORD PTR [EBP-013C],04360C26
  182. 025F:0040225E  895DFC              MOV     [EBP-04],EBX
  183. 025F:00402261  8B85C4FEFFFF        MOV     EAX,[EBP-013C]
  184. 025F:00402267  3385B0FEFFFF        XOR     EAX,[EBP-0150]
  185. 025F:0040226D  8BE8                MOV     EBP,EAX
  186. 025F:0040226F  B804000000          MOV     EAX,00000004
  187. 025F:00402274  CC                  INT     3                 <----- le chti
  188. 025F:00402275  3115148D4000        XOR     [00408D14],EDX
  189. 025F:0040227B  A180804000          MOV     EAX,[00408080]
  190. 025F:00402280  310584804000        XOR     [00408084],EAX
  191. 025F:00402286  834DFCFF            OR      DWORD PTR [EBP-04],-01
  192. 025F:0040228A  EB18                JMP     004022A4
  193.  
  194.  
  195.  
  196. La protection est vraiment semblable a la 1.73. les Gas de chez armadillo se sont
  197. pas trop fouler pour une protection sois disant Tres fiables.
  198. Bref, vous avez surement remarque le "MOV EAX, 00000004"
  199. Pour passer ce control , il suffit de se mettre a la ligne du MOV.
  200. dans soft ice , tapez:
  201. A "entrer"
  202. JMP 0 "entrer"
  203. "echap"
  204.  
  205. voila , nous venons de remplacer le mov eax,4  en un jmp 0.
  206. Ceci va provoquer une exception et le programme va croire que le debugger (soft ice)
  207. n'est pas charge , donc ce qui va s'occuper de l'execption et le programme se lance!!
  208. Nous avons donc calc.exe charge , on peut s'en serire normalement.
  209.  
  210.  
  211. 2)Virer completement Armadillo de l'executable proteger:
  212.  
  213.  
  214. A) recuperer et dumper ce que nous avons besoin:
  215.  
  216.    C'est cette partie qui m'a poser le plus de prob , car j'avais une erreur au moment
  217. de reconstruire un executable valide ;(
  218. J'ai recommence plusieurs fois , et voila comment je me suis pris.
  219.  
  220. (Ayant demander de l'aider sur le forum de l'ATP team , j'ai donc lus leur cour , ma
  221. methode semble etre celle qu'utilise Alsindor, mais Artex utilise une approche
  222. different , donc je vous recommande de lire leur superbe cour sur MP3Wizard V1.2 par
  223. PsychΘ, Artex et Alsindor... J'ai trouver mon erreur de toute facon , je n'utilisais
  224. pas la bonne taille de section ".text". Leur cour est base sur armadillo 1.0 je crois)
  225.  
  226. Donc, vous avez votre programme qui est lance, si vous regardez dans le repertoire
  227. courant (ou a etre lance le fichier exe , on trouve un fichier temporaire)
  228. Copier ce fichier , il va nous servir.
  229. Ensuite , lancez Procdump et regarder dans la liste des process , vous devez voir
  230. le fichier calc.exe , mais aussi le temporaire.
  231. Faites un click droit dessus (on veut dumper le fichier TEMP !! pas l'exe) et faites
  232. un dump full.
  233. Nous avons donc une fichier executable sur le disque , c'est le dump , et nous
  234. avons encore le fichier temp recuperΘ dans le repertoire ou a ete lance le programme
  235. crypte.
  236.  
  237.  
  238. B)Faire un executable qui marche , et qui n'a plus de armadillo ;)
  239.  
  240. si vous renommer le fichier temporaire en executable et que vous l'executer il va crasher!
  241. C normal car dans la premiere Section , on se rend compte qu'elle est pleine de "XX"
  242. hmm , si on lance le fichier dumper, il ne marche pas non plus et crash comme un goret ;)
  243.  
  244. GogogadgetauProcdump lol , vous l'avez compris lancez procdump et servez vous du PE editor
  245. pour editer le fichier dump, vous devez voir les sections du fichier.il faut regarder
  246. la premiere !
  247.  
  248. Pour ma part , j'avais ceci:
  249.  
  250.  
  251. - pour la section ".text" :
  252.  
  253.  
  254.    Virtual Offset: 00001000 
  255.          Raw Size: 11A0E
  256.        Raw Offset: 1000
  257.  
  258.  
  259. ok , gardez ces chiffres en tete nous allons y revenir!!
  260. avec procdump , click droit sur la section "text" et faites saves to file pour dumper
  261. le fichier dur le disque ! (exemple: text.bin).Car cette section est completement decrypter 
  262. tandis que le fichier temporaire contient des XX.En effet armadillo re "ecris" la section
  263. a la vollΘe ..
  264. Une fois le fichier dumpΘ sur le disque, ouvrez votre fichier exe (le fichier Temp renomΘ)
  265. avec un editeur hexadecimal , j'utilise hexworkshop pour cela.ouvez egalement la section
  266. que vous avez dumper
  267.  
  268.  
  269. Maintenant dans hexworkshop , pressez alt+f5 , entrez le Raw offset de la section 
  270. que vous voulez importer. ici : 1000 et cliquer sur ok. Allez dans le menu Edit, et cliquer
  271. sur "select block" entrez la longeur (size) de la section , ici : 11A0E...
  272. Regardez le fichier ouvert (text.bin) et pressez 'ctrl+a' pour tout selectioner..
  273. copiez tout ca avec 'ctrl+c'.
  274. Retournez dans la fenetre principal de l'executable dans hexworkshop (celui que vous avez 
  275. renomme l'ex fichier temporaire donc), et coller ce que vous venez de copier dans le 
  276. press papier , faites: 'ctrl+v' ou menu Edit et paste.
  277. Enregistrez votre fichier, et vous avez maintenant une section '.text' valable qui ne
  278. contient donc plus de "XX" hehe...
  279. Lancez votre executable et oh !! miracle cela marche !! 
  280.  
  281. Mais pour etre sur que le fichier marche bien , on peut reconstruire le pe avec Procdump
  282. cela ne coute rien de toutes maniers :
  283.  
  284. -Lancez Procdump (Merci G-RoM :)
  285. allez dans les Options et selecttioner:
  286.  
  287. [X]Recompute Object Size
  288. [X]Optmize PE Structure
  289.  
  290. [X] Use actual import infos
  291. et cliquer sur OK
  292.  
  293. Cliquer sur Rebuild PE , et cherchez notre nouveau fichier (calc_finis.exe pour nous)
  294.  
  295. Procdump nous fais une valide import table et notre executable est desorme plus sure ;o)
  296.  
  297.  
  298. Voila !! Le cour est termine , mais si vous avez une quesion ou un commentaire mailez moi!!
  299. Acid2600@hotmail.com ou ACiD_BuRN@nema.com
  300.  
  301. Tout mes tuts sont ici : http://acidburn2000.cjb.net/
  302.  
  303.  
  304. 3)les mots de la fin:
  305.  
  306.  
  307. Greetings: 
  308. group greetings: ID - ECLiPSE - CiA - ODT - EXEC - TiTaNe - PWA - PC - UCF- CORE - CC
  309.  
  310. Also greetingz to: (no specific order)
  311.  
  312. R!SC, ^INFeRNo^, AB4DS, Cyber Blade, Klefz, , Volatility, TORN@DO, T4D
  313. Jeff, [Virus], JaNe , Appbusta , Duelist , tKC , BuLLeT , Lucifer48 , 
  314. MiZ , DnNuke , Bjanes , Skymarshall , afkayas , elmopio , SiFLyiNG , 
  315. Fire Worx , CrackZ , neural_en  , WarezPup , _y , SiONIDE , SKORPIEN
  316. Lazarus , Eternal_Bliss , Magic Raphoun , DEZM , Bisoux , Carpathia ,
  317. K17 , theMc , noos , Xmen , TeeJi , JB007 , Arobas , T0AD ,ytc , Kwai_lo ,
  318. Killer_3K, TaMaMBoLo , gizmo , Gota , ExtaBrain , Alpine , WarezPup, 
  319. zoltan , [yAtes], TarGon , Icecream , Punkguy2 , Sortof, TRDdonjuan,
  320. Lord Soth, Judged, G-Rom, Quantico, Christal, psike, Leo0n, Albator,
  321. +Spath, +Frog's Print, toutim ...
  322.  
  323. et tous ceux que je connais mais que j'ai oublie les nicks , desole ;p
  324.  
  325.  
  326. Copyright (c) ACiD BuRN and the Immortal Descendants.
  327.  
  328.         
  329.                 http://www.immortaldescendants.com/
  330.