1. #!/bin/bash
  2. function edatdecrypt {
  3. echo -n "Enter EDAT name (no extension): "
  4. read edatname
  5. if [ -f ../sdat/$edatname.edat ]; then
  6. export edatext=edat
  7. else
  8. if [ -f ../sdat/$edatname.EDAT ]; then
  9. export edatext=EDAT
  10. else
  11. echo "No such file or directory."
  12. echo "Press any key to continue ..."
  13. read -n 1
  14. clear
  15. mainmenu
  16. fi
  17. fi
  18. echo -n "Enter .rap name (no extension): "
  19. read rapfile
  20. echo -n "Enter dev_klic: "
  21. read dev_klic
  22. cp -rf ../edat/$edatname.$edatext ./
  23. cp -rf ../raps/$rapfile.rap ./
  24. java -cp ./core.jar -Xms64m -Xmx1024m DecryptLocal $edatname.$edatext $edatname.dat $rapfile.rap $dev_klic
  25. cp -rf ./$edatname.dat ../edat/
  26. rm ./$edatname.dat
  27. rm ./$edatname.$edatext
  28. rm ./$rapfile.rap
  29. echo ""
  30. echo "EDAT decrypted! $edatname.$edatext -> $edatname.dat"
  31. echo "Press any key to continue ..."
  32. read -n 1
  33. clear
  34. mainmenu
  35. }
  36.  
  37. function sdatdecrypt {
  38. echo -n "Enter SDAT name (no extension): "
  39. read sdatname
  40. if [ -f ../sdat/$sdatname.sdat ]; then
  41. export sdatext=sdat
  42. else
  43. if [ -f ../sdat/$sdatname.SDAT ]; then
  44. export sdatext=SDAT
  45. else
  46. echo "No such file or directory."
  47. echo "Press any key to continue ..."
  48. read -n 1
  49. clear
  50. mainmenu
  51. fi
  52. fi
  53. cp -rf ../sdat/$sdatname.$sdatext ./
  54. java -cp ./core.jar -Xms64m -Xmx1024m DecryptSDAT $sdatname.$sdatext $sdatname.dat
  55. cp -rf ./$sdatname.dat ../sdat/
  56. rm ./$sdatname.dat
  57. rm ./$sdatname.$sdatext
  58. echo ""
  59. echo "SDAT decrypted! $sdatname.$sdatext -> $sdatname.dat"
  60. echo "Keep the original SDAT."
  61. echo "Press any key to continue ..."
  62. read -n 1
  63. clear
  64. mainmenu
  65. }
  66.  
  67. function sdatencrypt {
  68. echo "Original SDAT file must be in sdat folder!"
  69. echo -n "Enter decrypted SDAT name (no extension): "
  70. read sdatname
  71. if [ -f ../sdat/$sdatname.sdat ]; then
  72. export sdatext=sdat
  73. else
  74. if [ -f ../sdat/$sdatname.SDAT ]; then
  75. export sdatext=SDAT
  76. else
  77. echo "No such file or directory."
  78. echo "Press any key to continue ..."
  79. read -n 1
  80. clear
  81. mainmenu
  82. fi
  83. fi
  84. cp -rf ../sdat/$sdatname.dat ./
  85. xxd -g 0 ../sdat/$sdatname.$sdatext | grep 0000050
  86. echo -n "Copy above hex string here: "
  87. read samplehash
  88. xxd -g 0 ../sdat/$sdatname.$sdatext | grep 0000060
  89. echo -n "Copy above hex string here: "
  90. read sampleklic
  91. java -cp ./core.jar -Xms64m -Xmx1024m EncryptSDAT $sdatname.dat $sdatname.$sdatext $samplehash $sampleklic
  92. mv ../sdat/$sdatname.$sdatext ../sdat/$sdatname.$sdatext.bak
  93. cp -rf ./$sdatname.$sdatext ../sdat/
  94. rm ./$sdatname.dat
  95. rm ./$sdatname.$sdatext
  96. echo ""
  97. echo "SDAT encrypted! $sdatname.dat -> $sdatname.$sdatext"
  98. echo "Press any key to continue ..."
  99. read -n 1
  100. clear
  101. mainmenu
  102. }
  103.  
  104. function edatencrypt {
  105. echo -n "Enter decrypted EDAT name (no extension): "
  106. read decedatname
  107. if [ -f ../edat/$decedatname.edat ]; then
  108. export edatext=sdat
  109. else
  110. if [ -f ../sdat/$decedatname.EDAT ]; then
  111. export edatext=EDAT
  112. else
  113. echo "No such file or directory."
  114. echo "Press any key to continue ..."
  115. read -n 1
  116. clear
  117. mainmenu
  118. fi
  119. fi
  120. echo -n "Enter Content ID: "
  121. read CID
  122. echo -n "Enter dev_klic: "
  123. read dev_klic
  124. cp -rf ../edat/$decedatname.dat ./
  125. java -cp ./core.jar -Xms64m -Xmx1024m EncryptEDAT $decedatname.dat $decedatname.$edatext $dev_klic $CID 0C 00 03
  126. mv ../edat/$edatname.$edatext ../edat/$edatname.$edatext.bak
  127. cp -rf ./$decedatname.edat ../edat/
  128. rm ./$decedatname.dat
  129. rm ./$decedatname.$edatext
  130. echo ""
  131. echo "EDAT encrypted! $decedatname.dat -> $decedatname.$edatext"
  132. echo "Press any key to continue ..."
  133. read -n 1
  134. clear
  135. mainmenu
  136. }
  137.  
  138. function mainmenu {
  139. echo "==========================="
  140. echo "TrueAncestor EDAT Rebuilder"
  141. echo " by JjKkYu"
  142. echo "(bash script by sguerrini97)"
  143. echo "==========================="
  144. echo ""
  145. echo "Options:"
  146. echo "1. Decrypt EDAT | 3. Decrypt SDAT"
  147. echo "2. Encrypt EDAT | 4. Encrypt SDAT"
  148. echo "x. Exit"
  149. echo -n "Select an option: "
  150. read option
  151. if [ $option = "1" ]; then
  152. edatdecrypt
  153. else
  154. if [ $option = "2" ]; then
  155. edatencrypt
  156. else
  157. if [ $option = "3" ]; then
  158. sdatdecrypt
  159. else
  160. if [ $option = "4" ]; then
  161. sdatencrypt
  162. else
  163. if [ $option = "x" ]; then
  164. echo "Goodbye!"
  165. else
  166. echo "Unknown option."
  167. echo "Press any key to continue ..."
  168. read -n 1
  169. clear
  170. mainmenu
  171. fi
  172. fi
  173. fi
  174. fi
  175. fi
  176. }
  177.  
  178. mainmenu