Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from Crypto.Cipher import AES
- from Crypto.Util import Counter
- import struct
- def aes_ctr_dec(buf, key, iv):
- ctr = Counter.new(128, initial_value=long(iv.encode('hex'), 16))
- return AES.new(key, AES.MODE_CTR, counter=ctr).encrypt(buf)
- f = open("data_80000000.bin", "rb")
- b = f.read()
- f.close()
- f = open("data_80300000.bin", "wb")
- f.write(b);
- key = "C46F64F4BEC6FC861BCF2ADFFBE76FA0".decode("hex")
- ctr = "4eee0b42904e8f29c30e8696782c0bef".decode("hex")
- off = 0x000041C0
- size = 0xEB0
- base = 0x803041C0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "60a4c99ce6a9e0226e4a0209456a9328".decode("hex")
- off = 0x00005080
- size = 0x1180
- base = 0x80305080
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "df9bfebecf655ba19f4ede67b30dee19".decode("hex")
- off = 0x00006200
- size = 0xD0
- base = 0x80306200
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "daa15a79a2855e4dfa855f8d996e9d05".decode("hex")
- off = 0x000062D0
- size = 0x1AC0
- base = 0x803062D0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "4837ad9727e434fc373805cd1a12f4ed".decode("hex")
- off = 0x00007D90
- size = 0xC0
- base = 0x80307D90
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "c262cdc0dc121d93ab74d12830d4861b".decode("hex")
- off = 0x00007E50
- size = 0x10
- base = 0x80307E50
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "d48dcefe99ee6bacc825b2965badd602".decode("hex")
- off = 0x00007E60
- size = 0x1750
- base = 0x80307E60
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "8673ba15ca2d044931895dd6072cd83f".decode("hex")
- off = 0x000095B0
- size = 0x1040
- base = 0x803095B0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "11094aae72d1acd3e3a629c607b6bec4".decode("hex")
- off = 0x0000A5F0
- size = 0x20D0
- base = 0x8030A5F0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "d1185dbfc3d0febe7c79f41ca90e684e".decode("hex")
- off = 0x0000C6C0
- size = 0x1200
- base = 0x8030C6C0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "0d62481344457432ca9bb9bf367b3625".decode("hex")
- off = 0x0000D8D0
- size = 0x910
- base = 0x8030D8D0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "19af19db73ed5b75dabb7e378e28bdc7".decode("hex")
- off = 0x0000E1E0
- size = 0x10
- base = 0x8030E1E0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "b0ca69543d782eef2a0c74dcd0bdf627".decode("hex")
- off = 0x0000E1F0
- size = 0xF20
- base = 0x8030E1F0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "620d1ef950ffa26215ad5f8dc5abf4fc".decode("hex")
- off = 0x0000F110
- size = 0x2610
- base = 0x8030F110
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "efbe1eba3f52b106ccf72f711f6cb4cd".decode("hex")
- off = 0x00011720
- size = 0x1AD0
- base = 0x80311720
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "f73df8b089bfa4ef793ba8f9e1640cc2".decode("hex")
- off = 0x000133E0
- size = 0x550
- base = 0x803133E0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "6fb50ce1b52a9382746b89f0eb7346fd".decode("hex")
- off = 0x00013930
- size = 0x74080
- base = 0x80313930
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "e5dc1d1386b010b6aaf30b012d8590de".decode("hex")
- off = 0x000879B0
- size = 0x1750
- base = 0x803879B0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "d0cf7b4d2de23f99d814919fa7aaa415".decode("hex")
- off = 0x00089100
- size = 0xF10
- base = 0x80389100
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "997e1f35d91e46153871716100c22a3b".decode("hex")
- off = 0x0008A170
- size = 0x390
- base = 0x8038A170
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "cb602ed97bcce90037ff9775f2531797".decode("hex")
- off = 0x0008A570
- size = 0xC10
- base = 0x8038A570
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "b4c070685bc38dfc9d36e03e1791a571".decode("hex")
- off = 0x0008B180
- size = 0x2EA0
- base = 0x8038B180
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "4fbd6897ef42d7d226c188e8188ceef2".decode("hex")
- off = 0x0008E020
- size = 0x1260
- base = 0x8038E020
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "f849113d88223533ebd8161637897bdc".decode("hex")
- off = 0x0008F280
- size = 0x1F0
- base = 0x8038F280
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "2014efbb5ae7603a03f6fcfcf63a2a79".decode("hex")
- off = 0x0008F470
- size = 0xCA0
- base = 0x8038F470
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "fd89008534f58104d3ed2940d5a4723e".decode("hex")
- off = 0x00090110
- size = 0xEA0
- base = 0x80390110
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "e789690bf5b9f4bb14ad17dc2722ac5b".decode("hex")
- off = 0x00091F40
- size = 0xF0
- base = 0x80391F40
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "c966f2d49111175783eb90d5d90dac1f".decode("hex")
- off = 0x00092030
- size = 0x10
- base = 0x80392030
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "ab3c0dc07bfa4f9bfcd2fa7892a1bab1".decode("hex")
- off = 0x00092040
- size = 0x4B0
- base = 0x80392040
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "b34c9baca093d3cae6442a5ff0e9ef11".decode("hex")
- off = 0x000924F0
- size = 0x4C0
- base = 0x803924F0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "e7574a5e0376370c8fb4d1337d4c0299".decode("hex")
- off = 0x00092CD0
- size = 0x8C0
- base = 0x80392CD0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "2d9ae5a5f45a5a06d20949464b7780a5".decode("hex")
- off = 0x00093590
- size = 0x60
- base = 0x80393590
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "f88041a47bcdf83c9cbaf880a52b8eb9".decode("hex")
- off = 0x000935F0
- size = 0x1E0
- base = 0x803935F0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "d4b526ff77c298676bb4d3400a969a71".decode("hex")
- off = 0x00094C90
- size = 0x4430
- base = 0x80394C90
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "34d3b24fdd8138e725d629bd6af09a04".decode("hex")
- off = 0x00099150
- size = 0x1A60
- base = 0x80399150
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "70540efc53f2238659f5aa681325d1b2".decode("hex")
- off = 0x0009ABB0
- size = 0x6D0
- base = 0x8039ABB0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "2dc9e997160f4bc3dfe59aeff6fdd756".decode("hex")
- off = 0x0009B280
- size = 0x14A0
- base = 0x8039B280
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "a1e338da7b1988a8eeb35bb9b5629398".decode("hex")
- off = 0x0009C720
- size = 0x10
- base = 0x8039C720
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "031d04c9e9e3a6058d01d4c97190751a".decode("hex")
- off = 0x0009C730
- size = 0x798C0
- base = 0x8039C730
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "68ff2e7767085f60eae528b2d42934d7".decode("hex")
- off = 0x001161E0
- size = 0x11D0
- base = 0x804161E0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "809976e2aefdcbd8fa7aca85b1431eb5".decode("hex")
- off = 0x001173B0
- size = 0x3830
- base = 0x804173B0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "efaf4c358eba733dbc986d4310b07280".decode("hex")
- off = 0x0011ABE0
- size = 0x2A0
- base = 0x8041ABE0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "27351d53e945cfda7a1fb9232c2ff6e6".decode("hex")
- off = 0x0011AE80
- size = 0x150
- base = 0x8041AE80
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "109dff223360801f322033ea1d1b70ef".decode("hex")
- off = 0x0011CD80
- size = 0x4C0
- base = 0x8041CD80
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "82f41ac0a99cf5be766d2dde5008d517".decode("hex")
- off = 0x0011D240
- size = 0x20
- base = 0x8041D240
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "c6b3cff51f01b497abce68b5b6fddb29".decode("hex")
- off = 0x0011D260
- size = 0x36A0
- base = 0x8041D260
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "f7f5e2c70043db7d67b4f4c30bf68f41".decode("hex")
- off = 0x00120900
- size = 0x560
- base = 0x80420900
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "7cdcee2f726368a34a221500d9721ff1".decode("hex")
- off = 0x00120E60
- size = 0x2790
- base = 0x80420E60
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "ee1950a051938696818a25593381cb00".decode("hex")
- off = 0x00123610
- size = 0x1120
- base = 0x80423610
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "f82493ea721a68e59d4d5361ad1137c7".decode("hex")
- off = 0x00124730
- size = 0xC20
- base = 0x80424730
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "5e7184cd286156e5e06d654ce12924d7".decode("hex")
- off = 0x00125350
- size = 0x1280
- base = 0x80425350
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "d03c35cdfe6e0b109c4c8f230926dc0c".decode("hex")
- off = 0x001265D0
- size = 0x1A0
- base = 0x804265D0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "c35d5de8839ad195cc89dc4eecd2744a".decode("hex")
- off = 0x00126770
- size = 0x1B20
- base = 0x80426770
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "9047ee016ca5a05ba5a44e945911d1d2".decode("hex")
- off = 0x00128290
- size = 0x110
- base = 0x80428290
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "b51b538fc3f18d7d076ca42b8925a28c".decode("hex")
- off = 0x001283A0
- size = 0x10
- base = 0x804283A0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "2cba6526dad9b809c12671c59521c531".decode("hex")
- off = 0x001283B0
- size = 0x47F0
- base = 0x804283B0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "dcaa3b88e2a23aa7a871bdde040325bf".decode("hex")
- off = 0x0012CBB0
- size = 0x2FD0
- base = 0x8042CBB0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "a4e2d28b4900f732a8a33a1b15e1c289".decode("hex")
- off = 0x0012FB80
- size = 0x8C0
- base = 0x8042FB80
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "c5f60b049dfba15773f3879c8ba36aae".decode("hex")
- off = 0x001307E0
- size = 0x1CC0
- base = 0x804307E0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "0a810e7cb229c2d5c2b5dc94e0c034b8".decode("hex")
- off = 0x001324A0
- size = 0x1030
- base = 0x804324A0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "6795c793e18652a0c23003d85ec38f66".decode("hex")
- off = 0x001334D0
- size = 0xF30
- base = 0x804334D0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "3cb5909a61e126ac5a97361f64a70f6d".decode("hex")
- off = 0x00134400
- size = 0x1AB0
- base = 0x80434400
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "5793559de55bc447a2a621c99e5ac33a".decode("hex")
- off = 0x00136130
- size = 0x540
- base = 0x80436130
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "ca82a08d9cf418b28047aab85e323290".decode("hex")
- off = 0x00136750
- size = 0x10
- base = 0x80436750
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "8dd026863438c5501969b8c175827d2d".decode("hex")
- off = 0x00136760
- size = 0x10
- base = 0x80436760
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "6d90648d7f0d6b68e24d1d37d22ee379".decode("hex")
- off = 0x00136770
- size = 0x10
- base = 0x80436770
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "4557911c9f1682ca656f26c0ce9cdf7e".decode("hex")
- off = 0x00136840
- size = 0x1120
- base = 0x80436840
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "4cfb5899cbe32e3d0a58ee7db89190fb".decode("hex")
- off = 0x00137BE0
- size = 0x820
- base = 0x80437BE0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "9bccfbbcec3624cc7255f59a59d16636".decode("hex")
- off = 0x00138400
- size = 0x190
- base = 0x80438400
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "cbae5af8a956efdeaf7e4b513c1cb14f".decode("hex")
- off = 0x00138590
- size = 0xEB0
- base = 0x80438590
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "005192eea7ad85810d56c33e070aaf44".decode("hex")
- off = 0x00139440
- size = 0x10
- base = 0x80439440
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "ad276a1735f8c0a889110be59e8b6f67".decode("hex")
- off = 0x00139450
- size = 0x10
- base = 0x80439450
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "dbeb7217b54af2c4624fc86f6e050e4d".decode("hex")
- off = 0x00139460
- size = 0x1720
- base = 0x80439460
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "f1e428b09d900cf07a0802000449f389".decode("hex")
- off = 0x0013ABA0
- size = 0x970
- base = 0x8043ABA0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "570546c33fdd2db43329c70e016289b7".decode("hex")
- off = 0x0013B510
- size = 0x2280
- base = 0x8043B510
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "ca62a2fb470ed21d7fd71f14b05eff03".decode("hex")
- off = 0x0013D790
- size = 0x910
- base = 0x8043D790
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "42a60072a701d45128913715f468edf5".decode("hex")
- off = 0x0013E0A0
- size = 0x2150
- base = 0x8043E0A0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "0eb85ca97b4ba0bf92f4badb8a6c8056".decode("hex")
- off = 0x001401F0
- size = 0x870
- base = 0x804401F0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "0c2fb5048a4665ad9618fe79b21a9f1f".decode("hex")
- off = 0x00141720
- size = 0x1F0
- base = 0x80441720
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "04504a1b324dbcdbecec4e3279f69972".decode("hex")
- off = 0x00141910
- size = 0xF20
- base = 0x80441910
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "6b0f5e6cadec7253c168ea1cb2ef7a84".decode("hex")
- off = 0x00142830
- size = 0x11E0
- base = 0x80442830
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "1349fd7e59634d36e9c8ae3cef006382".decode("hex")
- off = 0x00143A10
- size = 0x260
- base = 0x80443A10
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "80d001979fdb50448203fac68e75775f".decode("hex")
- off = 0x00143C70
- size = 0xB80
- base = 0x80443C70
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "b920f9e8ce18c7c084a0ddf9bd5a71e1".decode("hex")
- off = 0x001447F0
- size = 0x1C0
- base = 0x804447F0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "a4c44d541d76467404ea89c4fa7140d8".decode("hex")
- off = 0x001449B0
- size = 0x10
- base = 0x804449B0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "ee584d31e48f6bfcd6d3271044dc8355".decode("hex")
- off = 0x001449C0
- size = 0x7D0
- base = 0x804449C0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "cc94d61f5da2967caeefbdef50071a3e".decode("hex")
- off = 0x00145190
- size = 0xD0
- base = 0x80445190
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "53be020996839dcf23596688d12050cc".decode("hex")
- off = 0x00145260
- size = 0x30A0
- base = 0x80445260
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "c9fff23c710689480356bfde8c972716".decode("hex")
- off = 0x00148300
- size = 0x4B0
- base = 0x80448300
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- ctr = "29d9425b63ec734e08d14acc55c6d2d1".decode("hex")
- off = 0x001487D0
- size = 0x8B0
- base = 0x804487D0
- f.seek(off);
- f.write(aes_ctr_dec(b[off:off+size], key, ctr))
- f.close()
Add Comment
Please, Sign In to add comment