home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / acid_burn2000 / ab-cdilla_fr.txt < prev    next >
Text File  |  2000-05-25  |  15KB  |  433 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.                 CDilla Cracking:                        
  17.  
  18.       MidTown Madness version Francaise: Une autre approche sur cdilla   
  19.                                  
  20.         Cour par ACiD BuRN [Immortal Descendants]             
  21.                              (6 Octobre 1999)         
  22.  
  23.  
  24.  
  25.  
  26. Outils nescessaires:   * CD Original de Midtown madness
  27.                        * Soft ice 3.23             
  28.                        * soft ice tool pour patcher soft ice (pour dumper les sections)
  29.                        * Hexworkshop
  30.                    * Frog ice (pour cacher soft ice)
  31.                        * Procdump (comme PE Editor)
  32.                    * Exescope
  33.  
  34.  
  35.  
  36. Introduction:
  37.  
  38. salut a tous , je sais qu'il y a deja un cour sur Midtown madness par black check
  39. mais la methode que j'utilise n'est pas la meme que lui...
  40. Je vais expliquer le plus de choses possible et en plus c'est le 1er cour sur
  41. cdilla en francais !!!
  42. il serait preferable de lire le cour de black check avant , et d'avoir quelques
  43. connaissances sur le format PE...
  44.  
  45.  
  46.  
  47.  
  48. A Mort cdilla:
  49.  
  50.  
  51. Apres avoir installer le jeux , editer le PE du fichier ".icd" avec procdump.
  52. (lancez procdump , clicker sur PE Editor , allez ou se trouve votre fichier ".icd")
  53. le fichier est : Midtown.icd 
  54.  
  55. Maintenant , vous devez voir ceci:
  56.  
  57.  
  58.              - Entry Point : 00166C10
  59.              - Image Base  : 00400000
  60.  
  61. ok , nous allons avoir besoin de l'OEP (original Entry point) plus tard donc
  62. nous allons la calculer des maintenant.
  63. Pour cela on a besoin de l' Image base et de l' entry point que l'on obtient avec 
  64. procdump : 00400000 + 00166C10 = 566C10  (on les additiones)
  65.  
  66.  
  67. Maintenant, clicker sur le bouton "sections" pour voir toutes les sections du fichier.
  68.  
  69. On ne va avoir besoin que des valeurs Virtual Offset , Raw Size , et  Raw Offset !
  70.  
  71.  
  72. - pour la section ".text" :
  73.  
  74.  
  75.    Virtual Offset: 00001000 
  76.          Raw Size: 18D78F
  77.        Raw Offset: 600
  78.  
  79.  
  80. - pour la section ".Rdata" :
  81.  
  82.  
  83.    Virtual Offset: 0018F000
  84.          Raw Size: 14C99
  85.        Raw Offset: 18DE00
  86.  
  87.  
  88.  
  89. - pour la section ".data" :
  90.  
  91.  
  92.    Virtual Offset: 001A4000
  93.          Raw Size: 3D8A4
  94.        Raw Offset: 1A2C00
  95.  
  96.  
  97.  
  98. - pour la section ".data1" :
  99.  
  100.  
  101.    Virtual Offset: 00314000
  102.          Raw Size: 20
  103.        Raw Offset: 1E0600
  104.  
  105.  
  106. - pour la section ".rsrc" :
  107.  
  108.  
  109.    Virtual Offset: 00315000
  110.          Raw Size: CB3
  111.        Raw Offset: 1E0800
  112.  
  113.  
  114. Nous allons donc dumper toutes les sections du fichier ".icd" excepter la section ".Rdata" 
  115. car , c'est plus complique pour celle ci !!
  116.  
  117. il faut tout abord additioner l'image base avec le virtual Offset de toutes les sections:
  118.  
  119. .text  : 400000 + 00001000 = 00401000
  120. .rdata : 400000 + 0018F000 = 0058F000
  121. .data  : 400000 + 001A4000 = 005A4000
  122. .data1 : 400000 + 00314000 = 00714000
  123. .rsrc  : 400000 + 00315000 = 00715000
  124.  
  125.  
  126. ok , maintenant nous allons dumper les sections... 
  127. Pour cela ,  mettez un breakpoint sur EOP (566C10 pour ce jeux ).
  128. Vous avez surement remarque , que si vous lancez le jeux avec soft ice charge , il
  129. vous envois chier , car il y an de l'anti soft ice.
  130. cdilla utilise meltice (createfilea) et l'int68h pour detecter sice.
  131. Le mieux , c d'utiliser frogice , pour le cacher.J'utlise la version 0.20b , mais
  132. il faut la patcher pour qu'il cache completement soft ice de la detection par int68h.
  133. dans le cour de black check on voit qui faut rechercher dans le fichier: FrogSice. vxd
  134.  
  135. -60 80 7d 1d 43
  136. et le remplacer par :
  137. -C3 80 7d 1d 43
  138.  
  139. voila , maintenant , plus aucun problem avec la detection de soft ice , on va pouvoir
  140. s'occuper des choses serieuses !!
  141. Lancez votre frog ice (version patche) et lancer le jeux.
  142. Pendant la video , faites apparaitre soft ice (ctrl+D) et mettez votre bpx sur l'OEP:
  143. Bpx 56CC10 pour ce jeux...
  144.  
  145. presser F5 , le jeux continue de se lancer, et quitter le.
  146. Maintenant relancez le et soft ice breaks sur 56CC10. Si soft ice ce break pas , regardez
  147. si vous avez bien mis votre bpx au bon endroit!(tapez bl et vous devez obtenir qq chose
  148. comme ca #025F:56CC10)
  149.  
  150. Donc , soft ice break sur l' OEP , vous avez plus qu'a dumper les sections :)
  151.  
  152. Avant le dump desactiver tous les bpx (bd *) car on veut pas de merdes dans nos sections
  153. dumpes ehe !!
  154.  
  155. grace a sice tool , vous avez modifie la commande pagein qui vous permettra de dumper... 
  156. la commande pagein fonctionne donc comme ceci pour dumper:
  157.  
  158. pagein "l'addresse du debut du dump" "longeur du dump" "nom du fichier"
  159. Donc dans soft ice , tapez:
  160.  
  161.  
  162. pagein 401000 18D78F c:\text.bin
  163. pagein 5A4000 3D8A4 c:\data.bin
  164. pagein 714000 20 c:\data1.bin
  165. pagein 715000 CB3 c:\rsrc.bin
  166.  
  167. Voila , nous avons donc nos sections sur le disque dur !!!!
  168.  
  169.  
  170. Passons aux choses serieuses !!! : La Section Rdata :
  171.  
  172.  
  173. Bon , pour dumper cette section , c'est pas aussi simple =)
  174.  
  175.  
  176. Tout d'abord , nous devons trouver l'adresse reelle de la fonction de decryptage et pour 
  177. cela nous allons tracer dans le call qui appelle dans la section rdata...
  178. Apres que soft ice est stope sur l'OEP, on arrive ici :
  179.  
  180.  
  181.  
  182.  
  183. 00566C10   PUSH    EBP               <-- on stop ici sur l'entry point
  184. 00566C11   MOV     EBP,ESP
  185. 00566C13   PUSH    FF
  186. 00566C15   PUSH    005968D0
  187. 00566C1A   PUSH    00566724
  188. 00566C1F   MOV     EAX,FS:[00000000]
  189. 00566C25   PUSH    EAX
  190. 00566C26   MOV     FS:[00000000],ESP
  191. 00566C2D   ADD     ESP, -5C
  192. 00566C30   PUSH    EBX
  193. 00566C31   PUSH    ESI
  194. 00566C32   PUSH    EDI
  195. 00566C33   MOV     [EBP-18],ESP
  196. 00566C36   CALL    [0058F14C]        <-- voici notre call, on trace dedans (F8)
  197.  
  198.  
  199. Dans le call , on arrive ici :
  200.  
  201. 009A6485     pushad
  202. 009A6486     push 00000031              
  203. 009A6488     push 00000000       ---> 0 designe les imports kernels , pour les users ca sera 1
  204. 009A6490     call [9A64A6]       ---> l'addresse reelle de la fonction (9A64A6)
  205. 009A6496     add esp, 8
  206. 009A6499     popad
  207. .......      jmp [XXXXXXXX]
  208.  
  209.  
  210. Tracer dans le call et vous allez voir que le jmp [XXXXXXXX] devient jmp [KERNEL32!GetVersion]
  211. ok , c'est normal, on est sur le bon chemin :o)
  212. Nous allons bientot programmer le Call fixer...
  213. mais avant tout, nous devons connaitre le nombre d'import de Kernels and users qu'il y a dans
  214. le jeux que l'on crack.
  215. Pour cela , plusieurs methode , on peut desassembler le fichier ".icd" avec wdasm
  216. et les compter ou bien tracer avec soft ice , mais j'ai utiliser un programme nommΘ : EXESCOPE
  217. pour savoir le nombre d'import ...
  218. Donc dans le fichier midtown.icd j'ai :
  219.  
  220. - 127 imports pour kernel32
  221. - 42 import pour user32
  222.  
  223. Ok , nous avons besoin des ses valeurs en hexadecimal, car dans soft ice on n'utilise pas de 
  224. decimal:
  225.  
  226. 127 = 7Fh
  227.  42 = 2Ah
  228.  
  229. Ma partie preferΘe qd on crack cdilla:  Programmer le call fixer.
  230. Nous n'avons pas l'access en ecriture dans la section Rdata , donc nous allons la deplacer
  231. dans la section rdata...
  232. Pour coder le call fixer , je commence sur l'entry point , donc il faut reactiver le bpx
  233. sur l'OEP , et relancer le jeux.Attendez que le jeux stop dans soft ice.
  234.  
  235. Maintenant on va deplacer notre rdata section a la place de la data section en memoire.
  236. Pour faire ca : taper :
  237.  
  238. m "le virtual offset de la section RDATA + l'image base" l "la longeur de RDATA" "le virtual offset de la section DATA"
  239.  
  240. NOTE: Pour le virtual offset de la section data , utiliser un nombre plus grand, c'est mieux...
  241.  
  242.  
  243. 5A4000 est notre virtual offset , j'ai utilise 5B0000 (Plus grand comme je vous ai dis)
  244.  
  245. Vous avez donc a taper:
  246.  
  247. m 58F000 l 14C99 5B0000
  248.  
  249. Maintenant, Nous allons programmer le call fixer !!
  250.  
  251. Vous etes donc a la ligne: 566C10     PUSH   EBP
  252.  
  253. ce que nous allons taper va ressembler a cela:
  254.  
  255. 00 pushad
  256. 01 push ebx
  257. 02 push 0
  258. 04 call [XXXXXXXX]
  259. 0A add esp,8
  260. 0D mov edx, XXXXXX 
  261. 12 cmp eax,[edx] 
  262. 14 je 20
  263. 16 inc edx
  264. 17 cmp edx, XXXXXX + XXXXX
  265. 1D jne 12
  266. 1F int 03       
  267. 20 mov [edx],ecx
  268. 22 popad
  269. 23 inc ebx
  270. 24 cmp ebx, XX  
  271. 2A jne 00
  272. 2C int 03
  273.  
  274.  
  275. C'est partis !!!
  276.  
  277. Tapez dans soft ice: A "et la touche entrer"
  278.  
  279. et programmer :
  280.  
  281. 566C10   pushad
  282. 566C11   push ebx
  283. 566C12   push 0
  284. 566C14   call [009A64A6]            <-- addresse de la fonction trouvΘ en tracant dans le call
  285. 566C1A   add esp,8
  286. 566C1D   mov edx, 5B0000            <-- addresse ou nous avons copiΘ notre section .rdata 
  287. 566C22   cmp eax,[edx]    
  288. 566C24   je 566C40
  289. 566C26   inc edx
  290. 566C27   cmp edx, 5B0000 + 14C99   <-- addresse ou nous avons copiΘ notre section .rdata + rdata size 
  291. 566C3D   jne 566C22
  292. 566C3F   int 03                     <-- par securite, si il ne trouve rien , il stop ici
  293. 566C40   mov [edx],ecx    
  294. 566C42   popad
  295. 566C43   inc ebx
  296. 566C44   cmp ebx, 7F                <-- Nombre d'API a reparer 
  297. 566C4A   jne 566C10
  298. 566C4C   int 03
  299.  
  300.  
  301. mettez ebx α 0 (R ebx 0) , et votre eip α la ligne  0 (ligne 0 = 566C10 ici, donc: R EIP 566C10)
  302. tapez "i3here on" et pressez F5 pour executer le code, normalement on devrait stopper sur 566C4C
  303. remettez votre ebx a 0, changez la ligne 02 (56CC12 ici) en "push 1" et changer la  ligne 24 en
  304. 'cmp ebx, user_import_number' (2A for us) et remettez votre eip α la ligne 0 (R EIP 566C10). 
  305. executer ca encore (F5).Normalement tout est ok , et on doit encore avoir stoper sur 566C4C
  306. Nous pouvons maintenant dumper la section rdata sans crainte car tous est decrypter :o)
  307.  
  308. pagein 5B0000 14C99 c:\rdata.bin
  309.  
  310.  
  311. hehe !! maintenant on va reconstruire un fichier executable qui va etre le fichier final.
  312. j'ai essayer Procdump pour importer les sections , mais cette merde n'a rien changer GRR !
  313. Donc, je l'ai fais a la main comme un grand ;)
  314. voila comment faire :
  315.  
  316. En premier faites une copy du fichier ".icd" (Midtown.icd) et renomer le en ce que vous voulez
  317. mais avec l"extension ".exe" ex: fuckit.exe
  318.  
  319. Ok , lancez hexworkshop , ouvrez "Damnit.exe" ,ansi que le fichier de notre premier section
  320. dumpΘ :
  321.  
  322. c'etais: c:\text.bin
  323.  
  324. On va avoir besoin du Raw offset de chaque section , on les trouves au debut du cour mais
  325. je vais vous les remettres pour une meilleur comprehension:
  326.  
  327.  for the ".text" section : Raw Offset: 600         size : 18D78F 
  328. for the ".Rdata" section : Raw Offset: 18DE00      size : 14C99
  329.  for the ".data" section : Raw Offset: 1A2C00      size : 3D8A4
  330. for the ".data1" section : Raw Offset: 1E0600      size : 20
  331.  for the ".rsrc" section : Raw Offset: 1E0800      size : CB3
  332.  
  333. ok , you got all shits here !! we want to do the 1st section ".text" so :
  334.  
  335. Dans hexworkshop , pressez alt+f5 , entrez le Raw offset de la section que vous voulez importer
  336. ici : 600 et cliquer sur ok. Allez dans le menu Edit, et cliquer sur "select block"
  337. entrez la longeur (size) de la section , ici : 18D78F...
  338. Regardez le fichier ouvert (text.bin) et pressez 'ctrl+a' pour tout selectioner..
  339. copiez tout ca avec 'ctrl+c'.
  340. Retournez dans la fenetre principal de l'executable dans hexworkshop (damnit.exe), et coller 
  341. ce que vous venez de copier dans le press papier , faites: 'ctrl+v' ou menu Edit et paste.
  342. Enregistrez votre fichier , cool !! voila , c finis pour la section '.text' elle est maintenant
  343. decrypter!!
  344.  
  345.  
  346. ok , je vais vous montrer l'import d'une autre section et vous ferez les autres de la meme facon!
  347.  
  348.  
  349. 2eme section : Rdata!
  350.  
  351. Vous pouvez fermer la fenetre 'text.bin' , et ouvrez le fichier: 'rdata.bin' avec hexworkshop 
  352. Retournez dans la fenetre de l'executable et pressez 'alt+f5' , entrez le Raw offset de la
  353. section rdata: 18DE00.
  354. Cliquer sur le menu Edit , et cliquer sur "select block" entrez la longeur (size) de la
  355. section , ici : 14C99
  356.  
  357. regardez la fenetre de rdata.bin , pressez 'ctrl+a' pour selectioner tout et copier les bytes 
  358. avec 'ctrl+c'... 
  359. retournez dans la fenetre de l'executable (damnit.exe) dans hexworkshop et coller avec 
  360. 'ctrl+v' ou avec le menu Edit..
  361.  
  362. ok , je pensse que vous avez compris maintenant , faites de memes avec toutes les sections 
  363. et enregistrez les modifications dans l'executable..
  364.  
  365. Vous puvez quitter frog ice car l'anti sice n'est plus dans notre nouvel executable !!
  366. Virez le cd original de midtown madness et lancez 'damnit.exe'.
  367.  
  368. WOW , le jeux marche  se lance tres rapidement et sans cette merde de fenetre qui nous dis
  369. d'attendre durant la verification du CD.
  370. Le jeux marche superbement bien :o)
  371.  
  372. Mais pour faire une executable parfait, il faut reconstruire le PE en utilistant Procdump
  373. afin qu'il marche avec tous les OS.
  374.  
  375. Si vous lancez le jeux sur une autre version de Windows ca va planter :(
  376. Allez , on va reparer ca !!
  377.  
  378.  
  379. -Lancez Procdump (Merci G-RoM :)
  380. allez dans les Options et selectioner:
  381.  
  382. [X]Recompute Object Size
  383. [X]Optmize PE Structure
  384.  
  385. [X] Use actual import infos
  386. et cliquer sur OK
  387.  
  388. Cliquer sur Rebuild PE , et cherchez notre nouveau fichier (Damnit.exe for us)
  389.  
  390. Procdump nous fais une valide import table et notre executable est PARFAIT :o)
  391. du moins , j'espere hehe !!
  392.  
  393. Voila !! Le cour est termine , mais si vous avez une quesion ou un commentaire mailez moi!!
  394. Acid2600@hotmail.com or ACiD_BuRN@nema.com
  395. NOTES: Les mails ayant pour but une request seront effacer directement!!!
  396.  
  397. Tout mes tuts sont ici : http://acidburn2000.cjb.net/
  398.  
  399.  
  400. Remerciment pour l'aidre sur cdilla :
  401.  
  402. - BIG FAT THX goes to R!SC for all the help , and answers to my questions...
  403. this dude rox !! he just cracked the new cdilla , PHEAR :p
  404.  
  405. - thx to noos , for some help too :)
  406. - Killer_3K : 'lo ;)
  407. - G-RoM , for procdump and some nice chat ;p
  408.  
  409. and now , my usual greetings for all my friends :
  410.  
  411.  
  412. Greetings: 
  413. group greetings : ID - ECLiPSE - CiA - ODT - EXEC - TiTaNe - PWA - PC - UCF- CORE- +HCU
  414.  
  415. Also greetingz to: (no specific order)
  416.  
  417. Cyber Blade, ^Inferno^, AB4DS,  Klefz, , Volatility, TORN@DO, T4D
  418. Jeff, [Virus], JaNe , Appbusta , Duelist , tKC , BuLLeT , Lucifer48 , 
  419. MiZ , DnNuke , Bjanes , Skymarshall , afkayas , elmopio , SiFLyiNG , 
  420. Fire Worx , Crackz , neural_en  , WarezPup , _y , SiONIDE , SKORPIEN
  421. Lazarus , Eternal_Bliss , Magic Raphoun , DEZM , Bisoux , Carpathia ,
  422. K17 , theMc , Xmen , TeeJi , JB007 , Arobas , T0AD ,ytc , Kwai_lo , 
  423. TaMaMBoLo , gizmo , Gota , ExtaBrain , Alpine , WarezPup , zoltan ...
  424.  
  425. J'ai oublie du monde j'en suis , mais je suis desole :-/
  426.  
  427.  
  428. copyright (c) ACiD BuRN and the Immortal Descendants.
  429.  
  430.             
  431.                 http://www.immortaldescendants.com/
  432.  
  433.