home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Tools / XPecrypt / xpecrypt.txt < prev   
Encoding:
Text File  |  2000-05-25  |  6.7 KB  |  159 lines

  1. Bye PE-Crypt v1.02
  2. by Iczelion & Plushmm [Phrozen Crew]
  3.  
  4.  
  5. Introduction
  6. ------------
  7. It has long been rumoured that PE-Crypt is by far the most secure of 
  8. all PE-encrytors.  The current version of PE-Crypt is v1.02 and has 
  9. been authored by Random, Killa and Acp.
  10.  
  11. This c0ding project by Iczelion & Plushmm shows that with sound
  12. reverse-engineering practices and a little patience ;)  even the
  13. "uncrackable" is fallable.
  14.  
  15. More importantly, we wish to show the people in "the scene" that using
  16. a third-party "protector" is no substitute for *your own* protection
  17. scheme.  Hopefully lame KG stealers and crackme authors that use 
  18. PE-Crypt (or a similar product) to hide their dirty work will wake up 
  19. and smell the coffee.
  20.  
  21.  
  22. Usage
  23. -----
  24. Run XPecrypt and select your PE-Crypted [v1.02] file.  A dialogbox will
  25. then appear, asking you to name the decrypted file.  Simply enter the
  26. name you wish to give to your fully de-crypted file.
  27. The PE-Crypted file has been fully decrypted and unpacked for your
  28. inspection ;)
  29.  
  30. NOTE: XPecrypt will overwrite the output file if it already exists!
  31.  
  32. You can also use XPecrypt via the command line.
  33. The syntax is:  XPecrypt [-i] <pecrypted filename>
  34.  
  35. -i option is optional. It's for the extreme cases when XPecrypt cannot 
  36. reconstruct the names of DLLs in the import section correctly. This 
  37. option tells XPecrypt to show ALL DLL names it is processing and asks 
  38. the user for confirmation. This way, you can control the DLL name 
  39. decryption process yourself.
  40.  
  41. For example,
  42. XPecrypt -i   
  43. Tell XPecrypt to be in DLL name confirmation mode.
  44.  
  45. XPecrypt -i crackme.exe
  46. Tell XPecrypt to be in DLL name confirmation mode and also decrypt
  47. crackme.exe
  48.  
  49.  
  50. Technical Notes
  51. ---------------
  52. This decrypter/unpacker attempts to performs a *total reversal* of the 
  53. PE-Cryption process.  No dumping is involved.  
  54. In fact, Xpecrypt performs so well that when we encrypted netscape.exe
  55. with pecrypt, the encrypted file could not run. But when we used 
  56. Xpecrypt on it, the restored file worked fine :)
  57.  
  58. XPecrypt works on files encrypted with PE-Crypt v1.02 only.
  59.  
  60. Several issues should be mentioned here about how PE-crypt performs 
  61. decryption because they are directly related to the quality of the 
  62. output files.
  63.  
  64. PE-crypt destroys the high 4 bits of every relocation entry if it is 
  65. instructed to use 12-bit encryption or relocation packing. So in this 
  66. case, XPecrypt cannot guarantee that it will be able to obtain the 
  67. original relocation section back. However, this issue has little 
  68. importance for EXEcutable files because they are always loaded at the 
  69. preferred load addresses so relocation fixups are not needed. 
  70. However, DLLs are a different stories entirely.  DLLs will quite 
  71. possibly be forced to load at different load addresses because the 
  72. preferred addresses may be already taken up by some modules.
  73. In that case, relocation fixups are necessary.
  74. This is one of the reasons why PE-Crypt doesn't work very well with 
  75. DLLs.
  76.  
  77. PE-Crypt merges the section that contains import table with the 
  78. previous section if import hiding option is turned on. In this case, 
  79. the total number of sections will be decreased by one.  However, the 
  80. decrypted files will still work ok even if the file sizes differ from 
  81. the original files.
  82.  
  83. PE-Crypt changes the characteristics/attributes of all sections to
  84. readable and writable for its own conveniece in decryption/decompression.
  85. XPecrypt has no way to know the original values of those sections.
  86. However, the decrypted files work ok with those attributes.
  87.  
  88. PE-Crypt encrypts the names of the DLLs in the import section. Most of 
  89. the time, the decrypter will be able to decrypt them. However, there 
  90. may be some instances when it's not sure whether the names are correct.
  91. The current method used by XPecrypt is to use 0 as the end of the DLL 
  92. name marker. However, the encrypted bytes may possibly be 0s. In those 
  93. instances, it will display a messagebox showing the currently decrypted
  94. name of the DLL and ask you if this name is correct. If you reply yes, 
  95. it will go on to the next DLL. If the answer is no, it will interpret
  96. the current 0 as an encrypted byte and will continue with the 
  97. decryption of the current DLL name.
  98. Don't be overly concerned about this issue. If you answer incorrectly,
  99. you can always run XPecrypt again and again, or you can use DLL name 
  100. confirmation mode by specifying -i in the commandline.
  101. In this mode, XPecrypt will show the name of every dll it is decrypting
  102. and ask you if the current DLL name is correct.
  103.  
  104. We have encountered situations when all the sections in a PE-Crypted 
  105. file has been changed to .ficken
  106. XPecrypt has no way to know the original names so it doesn't do
  107. anything with them.  But don't be worried. The files run fine whatever
  108. the section names are.
  109.  
  110.  
  111. Greetings
  112. ---------
  113. Iczelion greets:
  114. CRowmAN    :For info on manually unpacking PE-Crypted files
  115. Plushmm    :You learn ASM so FAST! Be back soon!
  116. NetWalker:Quite knowledgable about packers/unpackers
  117. Iceman    :You're a fountain of low-level knowledge and a dear friend.
  118. Rudeboy, virogen, and hayras: My fellow c0ders. Happy discussing topics
  119.                               with you all.
  120. KaNoBi    :My friend in #Cracking4newbies. 
  121. _masta_    :My mentor. His win32asm tutorials inspire me to win32asm coding.
  122. And personal greets to: All in #cracking4newbies 
  123.                           All in #win32asm
  124.                           All Phrozen Crew members
  125.  
  126.  
  127. Plushmm greets:
  128. NICA:      My gf for being so sweet & kind to me ;)
  129. Iczelion:  You 0000WNEZZZ & you RUUULEZZZ *wink wink* ;)
  130. The+Q:     Thanks for getting me started ;)
  131. Crowman:   Da first person I know who can manually unpack this beast
  132.            Thanks for the infos ;)
  133. Virogen:   Continue your great work at PC<g>
  134. Hayras:    Keep those releases coming bro ;)
  135. tHATdUDE:  Thanks for supporting for the PC C0ding section ;)
  136. Iceman:    Great knowledge-base
  137. Stone:     Great Website
  138. All in PC:       dA bEST ;)
  139. All in OR&L:     Yes this release still mean that I'm in ;)
  140. All in C4N:      Alot of potential here
  141. All in Win32Asm: This is da channel to be!
  142. All in HCU:      Great resource-base
  143.  
  144. Also shouts fly to: DaVinci, Tinhead, Riz|a, NetWalker, RudeBoy, XLogic, MrNop,
  145. JosephCo, Ghiri, dbCooper, SupergH0d,  NatZ, madmax!, STaRDoGG, Klink,
  146. + special greetings to all Phrozen Crackers, Testers & Phrozen C0ders!
  147.  
  148.  
  149.  
  150. Important Notice
  151. ----------------
  152.  
  153. Plushmm says:
  154.  
  155. Phrozen Crew's c0ding section is headed by yours truly ;)  However, I
  156. will be sent for my big OE soon.  As such, I would not be able to 
  157. contribute very actively for at least 3 months.  I hereby officially 
  158. appoint Iczelion to take over all my duties and decision-making during 
  159. my absence [in short, his da man]. Happy c0ding ;)