Created
March 23, 2021 16:04
-
-
Save lab313ru/10156645ba3ab28b9d71b8364f06e570 to your computer and use it in GitHub Desktop.
Mark all imp! archives in IDA
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
names = ''' | |
Exploded at: 0144A8 (005C -> 021C bytes) | |
Exploded at: 015DFC (085E -> 1196 bytes) | |
Exploded at: 01665A (05AE -> 08E6 bytes) | |
Exploded at: 0191D8 (0D72 -> 1D00 bytes) | |
Exploded at: 01B204 (1000 -> 2322 bytes) | |
Exploded at: 01C204 (0F4A -> 22E2 bytes) | |
Exploded at: 01D1F6 (0246 -> 05FA bytes) | |
Exploded at: 01D45C (02A6 -> 057C bytes) | |
Exploded at: 01D722 (0238 -> 04DA bytes) | |
Exploded at: 01D97A (0204 -> 045C bytes) | |
Exploded at: 01DB9E (01FA -> 03BA bytes) | |
Exploded at: 01DDB8 (0196 -> 032A bytes) | |
Exploded at: 01DF6E (0116 -> 029A bytes) | |
Exploded at: 01E0A4 (00BE -> 020A bytes) | |
Exploded at: 01E182 (0A0E -> 1260 bytes) | |
Exploded at: 0201F4 (0A1E -> 2002 bytes) | |
Exploded at: 020CBC (017C -> 03F0 bytes) | |
Exploded at: 020E58 (016E -> 0360 bytes) | |
Exploded at: 020FE6 (01E0 -> 0480 bytes) | |
Exploded at: 0211E6 (06C4 -> 0BA0 bytes) | |
Exploded at: 022CD0 (0798 -> 2062 bytes) | |
Exploded at: 023510 (0218 -> 06C0 bytes) | |
Exploded at: 0239E0 (01E6 -> 0480 bytes) | |
Exploded at: 023BC6 (022A -> 0480 bytes) | |
Exploded at: 023DF0 (00E6 -> 0120 bytes) | |
Exploded at: 023ED6 (06FC -> 0C40 bytes) | |
Exploded at: 0256FA (019A -> 0B62 bytes) | |
Exploded at: 025894 (098C -> 1842 bytes) | |
Exploded at: 026240 (01BA -> 05A0 bytes) | |
Exploded at: 0263FA (01F0 -> 05A0 bytes) | |
Exploded at: 0265EA (0226 -> 06C0 bytes) | |
Exploded at: 026810 (0C54 -> 1B80 bytes) | |
Exploded at: 028CEE (0570 -> 1362 bytes) | |
Exploded at: 029306 (024A -> 0438 bytes) | |
Exploded at: 029550 (0208 -> 0438 bytes) | |
Exploded at: 029758 (026C -> 0438 bytes) | |
Exploded at: 0299C4 (00FA -> 0168 bytes) | |
Exploded at: 029ABE (0650 -> 1900 bytes) | |
Exploded at: 02A10E (09E6 -> 2000 bytes) | |
Exploded at: 02D480 (0424 -> 0FA2 bytes) | |
Exploded at: 02D8E4 (07E6 -> 0F00 bytes) | |
Exploded at: 02EF06 (00B6 -> 010E bytes) | |
Exploded at: 02EFBC (00A6 -> 00D8 bytes) | |
Exploded at: 02F062 (0094 -> 00B4 bytes) | |
Exploded at: 02F0F6 (00AA -> 0120 bytes) | |
Exploded at: 02F1A0 (00A6 -> 00FC bytes) | |
Exploded at: 02F246 (00CC -> 018C bytes) | |
Exploded at: 02F312 (00C4 -> 0144 bytes) | |
Exploded at: 02F3D6 (00B6 -> 00FC bytes) | |
Exploded at: 02F48C (01EE -> 0480 bytes) | |
Exploded at: 02F67A (06BE -> 0D80 bytes) | |
Exploded at: 031054 (0870 -> 1922 bytes) | |
Exploded at: 03196C (006C -> 00B4 bytes) | |
Exploded at: 0319D8 (0076 -> 0120 bytes) | |
Exploded at: 031A4E (02F6 -> 0480 bytes) | |
Exploded at: 0323B2 (1096 -> 2782 bytes) | |
Exploded at: 033468 (00F0 -> 02D0 bytes) | |
Exploded at: 033558 (017C -> 02D0 bytes) | |
Exploded at: 0336D4 (018A -> 02D0 bytes) | |
Exploded at: 03385E (013C -> 02D0 bytes) | |
Exploded at: 03399A (06C8 -> 12C0 bytes) | |
Exploded at: 034C30 (0180 -> 0B62 bytes) | |
Exploded at: 034DB0 (01D8 -> 0BE2 bytes) | |
Exploded at: 034F88 (017A -> 0B62 bytes) | |
Exploded at: 035232 (00F2 -> 0240 bytes) | |
Exploded at: 035324 (00F0 -> 0240 bytes) | |
Exploded at: 035414 (0136 -> 02D0 bytes) | |
Exploded at: 03554A (013E -> 02D0 bytes) | |
Exploded at: 035688 (0104 -> 02D0 bytes) | |
Exploded at: 03578C (06E8 -> 0DC0 bytes) | |
Exploded at: 03715A (08A4 -> 1B22 bytes) | |
Exploded at: 037B4E (0102 -> 0288 bytes) | |
Exploded at: 037C50 (00EE -> 0288 bytes) | |
Exploded at: 037D3E (035A -> 05C0 bytes) | |
Exploded at: 038C1E (0722 -> 1C02 bytes) | |
Exploded at: 040EC4 (1BBE -> 3836 bytes) | |
Exploded at: 042A82 (22AA -> 4CA6 bytes) | |
Exploded at: 044D2C (08FC -> 0F64 bytes) | |
Exploded at: 045628 (10D0 -> 20F6 bytes) | |
Exploded at: 0466F8 (140E -> 2876 bytes) | |
Exploded at: 047B06 (112E -> 1FC6 bytes) | |
Exploded at: 048C34 (141E -> 2AB6 bytes) | |
Exploded at: 04A052 (14A8 -> 319E bytes) | |
Exploded at: 04B4FA (07AA -> 0F96 bytes) | |
Exploded at: 04BCA4 (1B0E -> 37A6 bytes) | |
Exploded at: 04D7B2 (04C8 -> 07AA bytes) | |
Exploded at: 04DC7A (158E -> 2E98 bytes) | |
Exploded at: 04F208 (10EE -> 2226 bytes) | |
Exploded at: 0502F6 (2DD8 -> 5246 bytes) | |
Exploded at: 0530CE (0266 -> 02CE bytes) | |
Exploded at: 053CF8 (019E -> 01FA bytes) | |
Exploded at: 0544CA (01EE -> 0266 bytes) | |
Exploded at: 054F1E (0322 -> 0402 bytes) | |
Exploded at: 056460 (01DC -> 028A bytes) | |
Exploded at: 056F48 (0212 -> 0242 bytes) | |
Exploded at: 057C46 (07F8 -> 0A26 bytes) | |
Exploded at: 05AE0E (03FC -> 08E6 bytes) | |
Exploded at: 05C17E (0812 -> 0A60 bytes) | |
Exploded at: 05ED30 (0762 -> 0A00 bytes) | |
Exploded at: 05F492 (3298 -> 6A6A bytes) | |
Exploded at: 06272A (06A0 -> 1900 bytes) | |
Exploded at: 062DCA (010E -> 0246 bytes) | |
Exploded at: 062ED8 (013C -> 0366 bytes) | |
Exploded at: 063014 (0534 -> 07A6 bytes) | |
Exploded at: 064F82 (0364 -> 0486 bytes) | |
Exploded at: 06615C (01E2 -> 05FA bytes) | |
Exploded at: 06633E (0B98 -> 1C86 bytes) | |
Exploded at: 066ED6 (02EE -> 0D26 bytes) | |
Exploded at: 0671C4 (0232 -> 0576 bytes) | |
Exploded at: 068128 (3424 -> 7070 bytes) | |
Exploded at: 06B54C (0112 -> 0162 bytes) | |
Exploded at: 0705BC (1248 -> 2A06 bytes) | |
Exploded at: 071804 (0F6A -> 2266 bytes) | |
Exploded at: 07276E (044A -> 0626 bytes) | |
Exploded at: 07967C (112E -> 1F4C bytes) | |
Exploded at: 07A7AA (0F14 -> 1E30 bytes) | |
Exploded at: 07B6BE (0FBE -> 1E3C bytes) | |
Exploded at: 07C67C (1004 -> 1DE8 bytes) | |
Exploded at: 07D680 (1022 -> 1E54 bytes) | |
''' | |
pat = re.compile(r'^Exploded at: ([0-9A-F]{6}) \(([0-9A-F]+) \-\> [0-9A-F]+ bytes\)$') | |
for name in names.split('\n'): | |
name = name.rstrip() | |
m = pat.match(name) | |
if m is not None: | |
offset = int(m.group(1), 16) | |
size = int(m.group(2), 16) | |
n = 'imp_%05X' % offset | |
print('%s -> %d' % (n, size)) | |
ida_bytes.del_items(offset, ida_bytes.DELIT_SIMPLE) | |
make_array(offset, size) | |
set_array_params(offset, AP_ARRAY, 32, -1) | |
set_name(offset, n) | |
print('Done!') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment