Показать сообщение отдельно
Старый 26.10.2010, 14:57   #15
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Помучал чуток сорцы плагина, теперь диффы почти мгновенно делаются
Код:
http://paste2.org/p/1055573
Для компила требуется IDA SDK 5.7.

Сравнение баз 12213 и 12340:
Код:
---------------------------------------------------
PatchDiff Plugin v2.0.9
Copyright (c) 2010, Nicolas Pouvesle
Copyright (C) 2007-2009, Tenable Network Security, Inc
---------------------------------------------------

Scanning for functions ...
parsing second idb...
parsing first idb...
diffing...
diff_engine_initialize(): done!
clist_init(): done!
file G:\cache_335\Wow_12340.idb
type 0, identical 26104, matched 14, unmatched 7082
type 1, identical 26295, matched 14, unmatched 6700
type 2, identical 27073, matched 14, unmatched 5144
type 3, identical 27073, matched 14, unmatched 5144
type 4, identical 27073, matched 14, unmatched 5144
type 6, identical 27073, matched 14, unmatched 5144
type 7, identical 27073, matched 14, unmatched 5144
diff_run(): done!
Identical functions:   26022
Matched functions:     14
Unmatched functions 1: 505
Unmatched functions 2: 3793
done!
Как видно типы 3,4,5,6,7 не прибавили никаких совпадений, а основная задержка при сравнении новых баз 12340 и 13164 была именно на типе 6, я решил его пропустить, что существенно увеличило скорость работы плагина.

Сравнение баз 12340 и 13164:
Код:
---------------------------------------------------
PatchDiff Plugin v2.0.9
Copyright (c) 2010, Nicolas Pouvesle
Copyright (C) 2007-2009, Tenable Network Security, Inc
---------------------------------------------------

Scanning for functions ...
parsing second idb...
parsing first idb...
diffing...
diff_engine_initialize(): done!
clist_init(): done!
file G:\cache_335\Wow_13164_clean.idb
type 0, identical 14608, matched 2201, unmatched 31960
type 1, identical 15362, matched 2214, unmatched 30426
type 2, identical 15375, matched 2214, unmatched 30400
type 3, identical 15375, matched 2214, unmatched 30400
type 4, identical 15375, matched 2214, unmatched 30400
type 5, identical 15375, matched 2214, unmatched 30400
type 7, identical 15375, matched 2214, unmatched 30400
diff_run(): done!
Identical functions:   14897
Matched functions:     2214
Unmatched functions 1: 12718
Unmatched functions 2: 15937
done!
Как видно и здесь типы 3,4,5,7 (тип 6 был пропущен) никаких новых совпадений не добавили.

Прикрепил скомпиленый плагин с выше описанными фиксами, компилился в VS2010.
Вложения
Тип файла: rar patchdiff2.rar (36.6 Кб, 79 просмотров)

Последний раз редактировалось TOM_RUS; 26.10.2010 в 16:43.
TOM_RUS вне форума   Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
abdula123 (12.11.2010), ANTOMA (26.10.2010), crAwling (25.11.2010), Konctantin (26.10.2010), LordJZ (26.10.2010)