Skip to content

Instantly share code, notes, and snippets.

@lab313ru
Created March 23, 2021 16:04
Show Gist options
  • Save lab313ru/10156645ba3ab28b9d71b8364f06e570 to your computer and use it in GitHub Desktop.
Save lab313ru/10156645ba3ab28b9d71b8364f06e570 to your computer and use it in GitHub Desktop.
Mark all imp! archives in IDA
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