Advertisement
Guest User

tx_pack_data.py

a guest
Jun 21st, 2018
461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 21.05 KB | None | 0 0
  1. from Crypto.Cipher import AES
  2. from Crypto.Util import Counter
  3. import struct
  4.  
  5. def aes_ctr_enc(buf, key, iv):
  6.     ctr = Counter.new(128, initial_value=long(iv.encode('hex'), 16))
  7.     return AES.new(key, AES.MODE_CTR, counter=ctr).encrypt(buf)
  8.  
  9. f = open("data_unpacked_80000000.bin", "rb")
  10. b = f.read()
  11. f.close()
  12.  
  13. f = open("data_repacked_80000000.bin", "wb")
  14. f.write(b);
  15.  
  16. f.seek(0x600000 - 1)
  17. f.write(bytearray(1))
  18.  
  19. key = "C46F64F4BEC6FC861BCF2ADFFBE76FA0".decode("hex")
  20. dram_base = 0x80000000
  21.  
  22. ctr = "4eee0b42904e8f29c30e8696782c0bef".decode("hex")
  23. off = 0x000041C0
  24. size = 0xEB0
  25. base = 0x803041C0
  26. f.seek(base - dram_base)
  27. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  28.  
  29. ctr = "0b43d9af6957a406dc5254bd739fdbca".decode("hex")
  30. off = 0x00005070
  31. size = 0x10
  32. base = 0x80305070
  33. f.seek(base - dram_base)
  34. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  35.  
  36. ctr = "60a4c99ce6a9e0226e4a0209456a9328".decode("hex")
  37. off = 0x00005080
  38. size = 0x1180
  39. base = 0x80305080
  40. f.seek(base - dram_base)
  41. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  42.  
  43. ctr = "df9bfebecf655ba19f4ede67b30dee19".decode("hex")
  44. off = 0x00006200
  45. size = 0xD0
  46. base = 0x80306200
  47. f.seek(base - dram_base)
  48. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  49.  
  50. ctr = "daa15a79a2855e4dfa855f8d996e9d05".decode("hex")
  51. off = 0x000062D0
  52. size = 0x1AC0
  53. base = 0x803062D0
  54. f.seek(base - dram_base)
  55. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  56.  
  57. ctr = "4837ad9727e434fc373805cd1a12f4ed".decode("hex")
  58. off = 0x00007D90
  59. size = 0xC0
  60. base = 0x80307D90
  61. f.seek(base - dram_base)
  62. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  63.  
  64. ctr = "c262cdc0dc121d93ab74d12830d4861b".decode("hex")
  65. off = 0x00007E50
  66. size = 0x10
  67. base = 0x80307E50
  68. f.seek(base - dram_base)
  69. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  70.  
  71. ctr = "d48dcefe99ee6bacc825b2965badd602".decode("hex")
  72. off = 0x00007E60
  73. size = 0x1750
  74. base = 0x80307E60
  75. f.seek(base - dram_base)
  76. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  77.  
  78. ctr = "8673ba15ca2d044931895dd6072cd83f".decode("hex")
  79. off = 0x000095B0
  80. size = 0x1040
  81. base = 0x803095B0
  82. f.seek(base - dram_base)
  83. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  84.  
  85. ctr = "11094aae72d1acd3e3a629c607b6bec4".decode("hex")
  86. off = 0x0000A5F0
  87. size = 0x20D0
  88. base = 0x8030A5F0
  89. f.seek(base - dram_base)
  90. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  91.  
  92. ctr = "d1185dbfc3d0febe7c79f41ca90e684e".decode("hex")
  93. off = 0x0000C6C0
  94. size = 0x1200
  95. base = 0x8030C6C0
  96. f.seek(base - dram_base)
  97. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  98.  
  99. ctr = "c8d35a1276e95c3e6da3d12e59e48560".decode("hex")
  100. off = 0x0000D8C0
  101. size = 0x10
  102. base = 0x8030D8C0
  103. f.seek(base - dram_base)
  104. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  105.  
  106. ctr = "0d62481344457432ca9bb9bf367b3625".decode("hex")
  107. off = 0x0000D8D0
  108. size = 0x910
  109. base = 0x8030D8D0
  110. f.seek(base - dram_base)
  111. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  112.  
  113. ctr = "19af19db73ed5b75dabb7e378e28bdc7".decode("hex")
  114. off = 0x0000E1E0
  115. size = 0x10
  116. base = 0x8030E1E0
  117. f.seek(base - dram_base)
  118. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  119.  
  120. ctr = "b0ca69543d782eef2a0c74dcd0bdf627".decode("hex")
  121. off = 0x0000E1F0
  122. size = 0xF20
  123. base = 0x8030E1F0
  124. f.seek(base - dram_base)
  125. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  126.  
  127. ctr = "620d1ef950ffa26215ad5f8dc5abf4fc".decode("hex")
  128. off = 0x0000F110
  129. size = 0x2610
  130. base = 0x8030F110
  131. f.seek(base - dram_base)
  132. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  133.  
  134. ctr = "efbe1eba3f52b106ccf72f711f6cb4cd".decode("hex")
  135. off = 0x00011720
  136. size = 0x1AD0
  137. base = 0x80311720
  138. f.seek(base - dram_base)
  139. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  140.  
  141. ctr = "a6456f60ddc22a62215b1786d0f09515".decode("hex")
  142. off = 0x000131F0
  143. size = 0x1F0
  144. base = 0x803131F0
  145. f.seek(base - dram_base)
  146. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  147.  
  148. ctr = "f73df8b089bfa4ef793ba8f9e1640cc2".decode("hex")
  149. off = 0x000133E0
  150. size = 0x550
  151. base = 0x803133E0
  152. f.seek(base - dram_base)
  153. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  154.  
  155. ctr = "6fb50ce1b52a9382746b89f0eb7346fd".decode("hex")
  156. off = 0x00013930
  157. size = 0x74080
  158. base = 0x80313930
  159. f.seek(base - dram_base)
  160. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  161.  
  162. ctr = "e5dc1d1386b010b6aaf30b012d8590de".decode("hex")
  163. off = 0x000879B0
  164. size = 0x1750
  165. base = 0x803879B0
  166. f.seek(base - dram_base)
  167. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  168.  
  169. ctr = "d0cf7b4d2de23f99d814919fa7aaa415".decode("hex")
  170. off = 0x00089100
  171. size = 0xF10
  172. base = 0x80389100
  173. f.seek(base - dram_base)
  174. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  175.  
  176. ctr = "cebe4993ef9ab446c1fa8df7eb1a3e6c".decode("hex")
  177. off = 0x0008A010
  178. size = 0x160
  179. base = 0x8038A010
  180. f.seek(base - dram_base)
  181. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  182.  
  183. ctr = "997e1f35d91e46153871716100c22a3b".decode("hex")
  184. off = 0x0008A170
  185. size = 0x390
  186. base = 0x8038A170
  187. f.seek(base - dram_base)
  188. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  189.  
  190. ctr = "a8ec620f1cdd52eff974d13a3de88eee".decode("hex")
  191. off = 0x0008A500
  192. size = 0x50
  193. base = 0x8038A500
  194. f.seek(base - dram_base)
  195. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  196.  
  197. ctr = "3240907d8f1bc480ec502af70c228072".decode("hex")
  198. off = 0x0008A550
  199. size = 0x20
  200. base = 0x8038A550
  201. f.seek(base - dram_base)
  202. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  203.  
  204. ctr = "cb602ed97bcce90037ff9775f2531797".decode("hex")
  205. off = 0x0008A570
  206. size = 0xC10
  207. base = 0x8038A570
  208. f.seek(base - dram_base)
  209. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  210.  
  211. ctr = "b4c070685bc38dfc9d36e03e1791a571".decode("hex")
  212. off = 0x0008B180
  213. size = 0x2EA0
  214. base = 0x8038B180
  215. f.seek(base - dram_base)
  216. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  217.  
  218. ctr = "4fbd6897ef42d7d226c188e8188ceef2".decode("hex")
  219. off = 0x0008E020
  220. size = 0x1260
  221. base = 0x8038E020
  222. f.seek(base - dram_base)
  223. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  224.  
  225. ctr = "f849113d88223533ebd8161637897bdc".decode("hex")
  226. off = 0x0008F280
  227. size = 0x1F0
  228. base = 0x8038F280
  229. f.seek(base - dram_base)
  230. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  231.  
  232. ctr = "2014efbb5ae7603a03f6fcfcf63a2a79".decode("hex")
  233. off = 0x0008F470
  234. size = 0xCA0
  235. base = 0x8038F470
  236. f.seek(base - dram_base)
  237. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  238.  
  239. ctr = "fd89008534f58104d3ed2940d5a4723e".decode("hex")
  240. off = 0x00090110
  241. size = 0xEA0
  242. base = 0x80390110
  243. f.seek(base - dram_base)
  244. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  245.  
  246. ctr = "59c36a23a73e4317bcc7f7403c09eb19".decode("hex")
  247. off = 0x00090FB0
  248. size = 0xF90
  249. base = 0x80390FB0
  250. f.seek(base - dram_base)
  251. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  252.  
  253. ctr = "e789690bf5b9f4bb14ad17dc2722ac5b".decode("hex")
  254. off = 0x00091F40
  255. size = 0xF0
  256. base = 0x80391F40
  257. f.seek(base - dram_base)
  258. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  259.  
  260. ctr = "c966f2d49111175783eb90d5d90dac1f".decode("hex")
  261. off = 0x00092030
  262. size = 0x10
  263. base = 0x80392030
  264. f.seek(base - dram_base)
  265. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  266.  
  267. ctr = "ab3c0dc07bfa4f9bfcd2fa7892a1bab1".decode("hex")
  268. off = 0x00092040
  269. size = 0x4B0
  270. base = 0x80392040
  271. f.seek(base - dram_base)
  272. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  273.  
  274. ctr = "b34c9baca093d3cae6442a5ff0e9ef11".decode("hex")
  275. off = 0x000924F0
  276. size = 0x4C0
  277. base = 0x803924F0
  278. f.seek(base - dram_base)
  279. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  280.  
  281. ctr = "6cad4d27393285ca93ec271e828c0d72".decode("hex")
  282. off = 0x000929B0
  283. size = 0x310
  284. base = 0x803929B0
  285. f.seek(base - dram_base)
  286. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  287.  
  288. ctr = "993840334d82e97173e84f359e501799".decode("hex")
  289. off = 0x00092CC0
  290. size = 0x10
  291. base = 0x80392CC0
  292. f.seek(base - dram_base)
  293. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  294.  
  295. ctr = "e7574a5e0376370c8fb4d1337d4c0299".decode("hex")
  296. off = 0x00092CD0
  297. size = 0x8C0
  298. base = 0x80392CD0
  299. f.seek(base - dram_base)
  300. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  301.  
  302. ctr = "2d9ae5a5f45a5a06d20949464b7780a5".decode("hex")
  303. off = 0x00093590
  304. size = 0x60
  305. base = 0x80393590
  306. f.seek(base - dram_base)
  307. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  308.  
  309. ctr = "f88041a47bcdf83c9cbaf880a52b8eb9".decode("hex")
  310. off = 0x000935F0
  311. size = 0x1E0
  312. base = 0x803935F0
  313. f.seek(base - dram_base)
  314. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  315.  
  316. ctr = "242dbd13b4a783c55f24a7d0013ed2f2".decode("hex")
  317. off = 0x000937D0
  318. size = 0x1420
  319. base = 0x803937D0
  320. f.seek(base - dram_base)
  321. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  322.  
  323. ctr = "33b43b1b600472635ea1ed94c5498d4a".decode("hex")
  324. off = 0x00094BF0
  325. size = 0xA0
  326. base = 0x80394BF0
  327. f.seek(base - dram_base)
  328. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  329.  
  330. ctr = "d4b526ff77c298676bb4d3400a969a71".decode("hex")
  331. off = 0x00094C90
  332. size = 0x4430
  333. base = 0x80394C90
  334. f.seek(base - dram_base)
  335. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  336.  
  337. ctr = "1f86ed997a11c059be617352a1718a4f".decode("hex")
  338. off = 0x000990C0
  339. size = 0x90
  340. base = 0x803990C0
  341. f.seek(base - dram_base)
  342. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  343.  
  344. ctr = "34d3b24fdd8138e725d629bd6af09a04".decode("hex")
  345. off = 0x00099150
  346. size = 0x1A60
  347. base = 0x80399150
  348. f.seek(base - dram_base)
  349. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  350.  
  351. ctr = "70540efc53f2238659f5aa681325d1b2".decode("hex")
  352. off = 0x0009ABB0
  353. size = 0x6D0
  354. base = 0x8039ABB0
  355. f.seek(base - dram_base)
  356. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  357.  
  358. ctr = "2dc9e997160f4bc3dfe59aeff6fdd756".decode("hex")
  359. off = 0x0009B280
  360. size = 0x14A0
  361. base = 0x8039B280
  362. f.seek(base - dram_base)
  363. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  364.  
  365. ctr = "a1e338da7b1988a8eeb35bb9b5629398".decode("hex")
  366. off = 0x0009C720
  367. size = 0x10
  368. base = 0x8039C720
  369. f.seek(base - dram_base)
  370. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  371.  
  372. ctr = "031d04c9e9e3a6058d01d4c97190751a".decode("hex")
  373. off = 0x0009C730
  374. size = 0x798C0
  375. base = 0x8039C730
  376. f.seek(base - dram_base)
  377. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  378.  
  379. ctr = "f5ad17f18d97034cbe6c7bc1541d5048".decode("hex")
  380. off = 0x00115FF0
  381. size = 0x1F0
  382. base = 0x80415FF0
  383. f.seek(base - dram_base)
  384. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  385.  
  386. ctr = "68ff2e7767085f60eae528b2d42934d7".decode("hex")
  387. off = 0x001161E0
  388. size = 0x11D0
  389. base = 0x804161E0
  390. f.seek(base - dram_base)
  391. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  392.  
  393. ctr = "809976e2aefdcbd8fa7aca85b1431eb5".decode("hex")
  394. off = 0x001173B0
  395. size = 0x3830
  396. base = 0x804173B0
  397. f.seek(base - dram_base)
  398. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  399.  
  400. ctr = "efaf4c358eba733dbc986d4310b07280".decode("hex")
  401. off = 0x0011ABE0
  402. size = 0x2A0
  403. base = 0x8041ABE0
  404. f.seek(base - dram_base)
  405. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  406.  
  407. ctr = "27351d53e945cfda7a1fb9232c2ff6e6".decode("hex")
  408. off = 0x0011AE80
  409. size = 0x150
  410. base = 0x8041AE80
  411. f.seek(base - dram_base)
  412. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  413.  
  414. ctr = "0539b5a5e9668628203e03a39bae6f06".decode("hex")
  415. off = 0x0011AFD0
  416. size = 0x1DB0
  417. base = 0x8041AFD0
  418. f.seek(base - dram_base)
  419. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  420.  
  421. ctr = "109dff223360801f322033ea1d1b70ef".decode("hex")
  422. off = 0x0011CD80
  423. size = 0x4C0
  424. base = 0x8041CD80
  425. f.seek(base - dram_base)
  426. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  427.  
  428. ctr = "82f41ac0a99cf5be766d2dde5008d517".decode("hex")
  429. off = 0x0011D240
  430. size = 0x20
  431. base = 0x8041D240
  432. f.seek(base - dram_base)
  433. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  434.  
  435. ctr = "c6b3cff51f01b497abce68b5b6fddb29".decode("hex")
  436. off = 0x0011D260
  437. size = 0x36A0
  438. base = 0x8041D260
  439. f.seek(base - dram_base)
  440. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  441.  
  442. ctr = "f7f5e2c70043db7d67b4f4c30bf68f41".decode("hex")
  443. off = 0x00120900
  444. size = 0x560
  445. base = 0x80420900
  446. f.seek(base - dram_base)
  447. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  448.  
  449. ctr = "7cdcee2f726368a34a221500d9721ff1".decode("hex")
  450. off = 0x00120E60
  451. size = 0x2790
  452. base = 0x80420E60
  453. f.seek(base - dram_base)
  454. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  455.  
  456. ctr = "e959b4a76c5027286415c2348da173e3".decode("hex")
  457. off = 0x001235F0
  458. size = 0x20
  459. base = 0x804235F0
  460. f.seek(base - dram_base)
  461. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  462.  
  463. ctr = "ee1950a051938696818a25593381cb00".decode("hex")
  464. off = 0x00123610
  465. size = 0x1120
  466. base = 0x80423610
  467. f.seek(base - dram_base)
  468. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  469.  
  470. ctr = "f82493ea721a68e59d4d5361ad1137c7".decode("hex")
  471. off = 0x00124730
  472. size = 0xC20
  473. base = 0x80424730
  474. f.seek(base - dram_base)
  475. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  476.  
  477. ctr = "5e7184cd286156e5e06d654ce12924d7".decode("hex")
  478. off = 0x00125350
  479. size = 0x1280
  480. base = 0x80425350
  481. f.seek(base - dram_base)
  482. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  483.  
  484. ctr = "d03c35cdfe6e0b109c4c8f230926dc0c".decode("hex")
  485. off = 0x001265D0
  486. size = 0x1A0
  487. base = 0x804265D0
  488. f.seek(base - dram_base)
  489. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  490.  
  491. ctr = "c35d5de8839ad195cc89dc4eecd2744a".decode("hex")
  492. off = 0x00126770
  493. size = 0x1B20
  494. base = 0x80426770
  495. f.seek(base - dram_base)
  496. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  497.  
  498. ctr = "9047ee016ca5a05ba5a44e945911d1d2".decode("hex")
  499. off = 0x00128290
  500. size = 0x110
  501. base = 0x80428290
  502. f.seek(base - dram_base)
  503. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  504.  
  505. ctr = "b51b538fc3f18d7d076ca42b8925a28c".decode("hex")
  506. off = 0x001283A0
  507. size = 0x10
  508. base = 0x804283A0
  509. f.seek(base - dram_base)
  510. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  511.  
  512. ctr = "2cba6526dad9b809c12671c59521c531".decode("hex")
  513. off = 0x001283B0
  514. size = 0x47F0
  515. base = 0x804283B0
  516. f.seek(base - dram_base)
  517. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  518.  
  519. ctr = "974ea266da6f4b17daea7276aee0b301".decode("hex")
  520. off = 0x0012CBA0
  521. size = 0x10
  522. base = 0x8042CBA0
  523. f.seek(base - dram_base)
  524. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  525.  
  526. ctr = "dcaa3b88e2a23aa7a871bdde040325bf".decode("hex")
  527. off = 0x0012CBB0
  528. size = 0x2FD0
  529. base = 0x8042CBB0
  530. f.seek(base - dram_base)
  531. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  532.  
  533. ctr = "a4e2d28b4900f732a8a33a1b15e1c289".decode("hex")
  534. off = 0x0012FB80
  535. size = 0x8C0
  536. base = 0x8042FB80
  537. f.seek(base - dram_base)
  538. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  539.  
  540. """ 0x130440 """
  541.  
  542. ctr = "bee961639e4d47f3938918b5e6d2a3b5".decode("hex")
  543. off = 0x00130630
  544. size = 0x1B0
  545. base = 0x80430630
  546. f.seek(base - dram_base)
  547. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  548.  
  549. ctr = "c5f60b049dfba15773f3879c8ba36aae".decode("hex")
  550. off = 0x001307E0
  551. size = 0x1CC0
  552. base = 0x804307E0
  553. f.seek(base - dram_base)
  554. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  555.  
  556. ctr = "0a810e7cb229c2d5c2b5dc94e0c034b8".decode("hex")
  557. off = 0x001324A0
  558. size = 0x1030
  559. base = 0x804324A0
  560. f.seek(base - dram_base)
  561. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  562.  
  563. ctr = "6795c793e18652a0c23003d85ec38f66".decode("hex")
  564. off = 0x001334D0
  565. size = 0xF30
  566. base = 0x804334D0
  567. f.seek(base - dram_base)
  568. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  569.  
  570. ctr = "3cb5909a61e126ac5a97361f64a70f6d".decode("hex")
  571. off = 0x00134400
  572. size = 0x1AB0
  573. base = 0x80434400
  574. f.seek(base - dram_base)
  575. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  576.  
  577. ctr = "84e7502e8c3b5e070f6a4a6cec65a36c".decode("hex")
  578. off = 0x00135EB0
  579. size = 0x280
  580. base = 0x80435EB0
  581. f.seek(base - dram_base)
  582. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  583.  
  584. ctr = "5793559de55bc447a2a621c99e5ac33a".decode("hex")
  585. off = 0x00136130
  586. size = 0x540
  587. base = 0x80436130
  588. f.seek(base - dram_base)
  589. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  590.  
  591. ctr = "bab5d1e7bbf831f0a3c6ecc50559a7fc".decode("hex")
  592. off = 0x00136670
  593. size = 0xE0
  594. base = 0x80436670
  595. f.seek(base - dram_base)
  596. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  597.  
  598. ctr = "ca82a08d9cf418b28047aab85e323290".decode("hex")
  599. off = 0x00136750
  600. size = 0x10
  601. base = 0x80436750
  602. f.seek(base - dram_base)
  603. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  604.  
  605. ctr = "8dd026863438c5501969b8c175827d2d".decode("hex")
  606. off = 0x00136760
  607. size = 0x10
  608. base = 0x80436760
  609. f.seek(base - dram_base)
  610. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  611.  
  612. ctr = "6d90648d7f0d6b68e24d1d37d22ee379".decode("hex")
  613. off = 0x00136770
  614. size = 0x10
  615. base = 0x80436770
  616. f.seek(base - dram_base)
  617. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  618.  
  619. ctr = "81a8ebe646d093ee0c4fdeb26696df9a".decode("hex")
  620. off = 0x00136780
  621. size = 0xC0
  622. base = 0x80436780
  623. f.seek(base - dram_base)
  624. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  625.  
  626. ctr = "4557911c9f1682ca656f26c0ce9cdf7e".decode("hex")
  627. off = 0x00136840
  628. size = 0x1120
  629. base = 0x80436840
  630. f.seek(base - dram_base)
  631. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  632.  
  633. ctr = "9380b84f90cab64cf4f6c2539aec504a".decode("hex")
  634. off = 0x00137960
  635. size = 0x280
  636. base = 0x80437960
  637. f.seek(base - dram_base)
  638. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  639.  
  640. ctr = "4cfb5899cbe32e3d0a58ee7db89190fb".decode("hex")
  641. off = 0x00137BE0
  642. size = 0x820
  643. base = 0x80437BE0
  644. f.seek(base - dram_base)
  645. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  646.  
  647. ctr = "9bccfbbcec3624cc7255f59a59d16636".decode("hex")
  648. off = 0x00138400
  649. size = 0x190
  650. base = 0x80438400
  651. f.seek(base - dram_base)
  652. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  653.  
  654. ctr = "cbae5af8a956efdeaf7e4b513c1cb14f".decode("hex")
  655. off = 0x00138590
  656. size = 0xEB0
  657. base = 0x80438590
  658. f.seek(base - dram_base)
  659. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  660.  
  661. ctr = "005192eea7ad85810d56c33e070aaf44".decode("hex")
  662. off = 0x00139440
  663. size = 0x10
  664. base = 0x80439440
  665. f.seek(base - dram_base)
  666. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  667.  
  668. ctr = "ad276a1735f8c0a889110be59e8b6f67".decode("hex")
  669. off = 0x00139450
  670. size = 0x10
  671. base = 0x80439450
  672. f.seek(base - dram_base)
  673. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  674.  
  675. ctr = "dbeb7217b54af2c4624fc86f6e050e4d".decode("hex")
  676. off = 0x00139460
  677. size = 0x1720
  678. base = 0x80439460
  679. f.seek(base - dram_base)
  680. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  681.  
  682. ctr = "d85ba5b9edf4fde192d55fa9939fc2bd".decode("hex")
  683. off = 0x0013AB80
  684. size = 0x20
  685. base = 0x8043AB80
  686. f.seek(base - dram_base)
  687. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  688.  
  689. ctr = "f1e428b09d900cf07a0802000449f389".decode("hex")
  690. off = 0x0013ABA0
  691. size = 0x970
  692. base = 0x8043ABA0
  693. f.seek(base - dram_base)
  694. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  695.  
  696. ctr = "570546c33fdd2db43329c70e016289b7".decode("hex")
  697. off = 0x0013B510
  698. size = 0x2280
  699. base = 0x8043B510
  700. f.seek(base - dram_base)
  701. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  702.  
  703. ctr = "ca62a2fb470ed21d7fd71f14b05eff03".decode("hex")
  704. off = 0x0013D790
  705. size = 0x910
  706. base = 0x8043D790
  707. f.seek(base - dram_base)
  708. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  709.  
  710. ctr = "42a60072a701d45128913715f468edf5".decode("hex")
  711. off = 0x0013E0A0
  712. size = 0x2150
  713. base = 0x8043E0A0
  714. f.seek(base - dram_base)
  715. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  716.  
  717. ctr = "0eb85ca97b4ba0bf92f4badb8a6c8056".decode("hex")
  718. off = 0x001401F0
  719. size = 0x870
  720. base = 0x804401F0
  721. f.seek(base - dram_base)
  722. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  723.  
  724. ctr = "9f43a61faba57735a3d8b5078836ba39".decode("hex")
  725. off = 0x00140A60
  726. size = 0xCC0
  727. base = 0x80440A60
  728. f.seek(base - dram_base)
  729. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  730.  
  731. ctr = "0c2fb5048a4665ad9618fe79b21a9f1f".decode("hex")
  732. off = 0x00141720
  733. size = 0x1F0
  734. base = 0x80441720
  735. f.seek(base - dram_base)
  736. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  737.  
  738. ctr = "04504a1b324dbcdbecec4e3279f69972".decode("hex")
  739. off = 0x00141910
  740. size = 0xF20
  741. base = 0x80441910
  742. f.seek(base - dram_base)
  743. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  744.  
  745. ctr = "6b0f5e6cadec7253c168ea1cb2ef7a84".decode("hex")
  746. off = 0x00142830
  747. size = 0x11E0
  748. base = 0x80442830
  749. f.seek(base - dram_base)
  750. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  751.  
  752. ctr = "1349fd7e59634d36e9c8ae3cef006382".decode("hex")
  753. off = 0x00143A10
  754. size = 0x260
  755. base = 0x80443A10
  756. f.seek(base - dram_base)
  757. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  758.  
  759. ctr = "80d001979fdb50448203fac68e75775f".decode("hex")
  760. off = 0x00143C70
  761. size = 0xB80
  762. base = 0x80443C70
  763. f.seek(base - dram_base)
  764. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  765.  
  766. ctr = "b920f9e8ce18c7c084a0ddf9bd5a71e1".decode("hex")
  767. off = 0x001447F0
  768. size = 0x1C0
  769. base = 0x804447F0
  770. f.seek(base - dram_base)
  771. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  772.  
  773. ctr = "a4c44d541d76467404ea89c4fa7140d8".decode("hex")
  774. off = 0x001449B0
  775. size = 0x10
  776. base = 0x804449B0
  777. f.seek(base - dram_base)
  778. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  779.  
  780. ctr = "ee584d31e48f6bfcd6d3271044dc8355".decode("hex")
  781. off = 0x001449C0
  782. size = 0x7D0
  783. base = 0x804449C0
  784. f.seek(base - dram_base)
  785. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  786.  
  787. ctr = "cc94d61f5da2967caeefbdef50071a3e".decode("hex")
  788. off = 0x00145190
  789. size = 0xD0
  790. base = 0x80445190
  791. f.seek(base - dram_base)
  792. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  793.  
  794. ctr = "53be020996839dcf23596688d12050cc".decode("hex")
  795. off = 0x00145260
  796. size = 0x30A0
  797. base = 0x80445260
  798. f.seek(base - dram_base)
  799. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  800.  
  801. ctr = "c9fff23c710689480356bfde8c972716".decode("hex")
  802. off = 0x00148300
  803. size = 0x4B0
  804. base = 0x80448300
  805. f.seek(base - dram_base)
  806. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  807.  
  808. ctr = "5a36f6931145affb38e56cc13402d926".decode("hex")
  809. off = 0x001487B0
  810. size = 0x20
  811. base = 0x804487B0
  812. f.seek(base - dram_base)
  813. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  814.  
  815. ctr = "29d9425b63ec734e08d14acc55c6d2d1".decode("hex")
  816. off = 0x001487D0
  817. size = 0x8B0
  818. base = 0x804487D0
  819. f.seek(base - dram_base)
  820. f.write(aes_ctr_enc(b[off:off+size], key, ctr))
  821.  
  822. f.seek(0x175B90)
  823. f.truncate()
  824.  
  825. f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement