Воспроизводится эта беда на IDA 6.8 + Hex-Rays.
В комплекте два плагина: HexRaysCodeXplorer, HexRaysPyTools
В результате "я ничего не делал, оно само", ряд функций сменили сигнатуры.
Было:
int __cdecl sub_403B80(unsigned __int16 a1, unsigned __int16 a2, int a3)
Стало:
int __usercall sub_403B80@<eax>(int a1@<ebp>, unsigned __int16 a2, unsigned __int16 a3, int a4)
1. Откуда такие изменения?
2. Насколько они опасны?
3. Как откатить всё взад?
Дальше больше, начали съезжать сегменты.
Было:
.text, start: 0x401000
Стало:
.text, start: 0x501000
Потом:
.text, start: 0x301000
Потом:
.text, start: 0x2E1000
Откатывал вручную возвращая сегменты на место. Все сегменты смещаются в большую или меньшую сторону на одинаковую величину.
1. В результате чего это может происходить?
2. Как заморозить адреса сегментов, чтобы никакими путями их было не сдвинуть, особенно горячими кнопками, которые я, видимо, неудачно нажимаю.
Спасибо за внимание!
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт