Доброго всем времени суток! Помогите разобраться с утилитой osnbtool.exe. Данная программа предназначена для работы с прошивками коммуникаторов на базе Windows Mobile (WM). Один из ключей утилиты (-ар) позволяет изменять размер Page Pool (в общих словах это буфер, куда попадает код для выполнения) в XIP.BIN (ядро системы). Из help'а: Т.е. osnbtool.exe -ap xip.bin 4 -y установит размер РР равный 4 Mb. У меня вопрос: каким образом osnbtool находит смещение, по которому находится значение РР? В процессе работы osnbtool выводит: Find "NKKD8" signature at offset: 0x00****** Это понятно, сигнатура NKKD8 одна на весь XIP.BIN Find instruction at offset: 0x00****** Эта инструкция выглядит что-то 9B 4F FF FF 64 B0 00 00 (а может и как-то по другому ищется) Find PagePool Value at offset: 0x00****** Вот тут и интересно: смещение, по которому размещается значение РР в разных XIP'ах, находится на разных удалениях и от NKKD8, и от инструкции. Помогите дизассемблировать и выяснить алгоритм поиска РР. В архиве osnbtool.exe и два XIP'а для примера. Заранее спасибо!
вот так Код (Text): for ( i56 = 0; i56 < v424 - 4; ++i56 ) { if ( *(_DWORD *)((char *)v432 + i56) == 0x444B4B4E && *(_DWORD *)(v432 + i56 + 4) == 56 ) { v148 = i56; sub_410BB5("Find \"NKKD8\" signature at offset: 0x%08X\n", i56); break; } } вообще разленились все hexrays в зубы и вперед... UPX думаю труда не составить снять ))) И вообще можно было бы и у автора спросить, не думаю что он пожалел бы поделится столь __не ценной__ информацией (если бы она была ценна, на ехе висло бы что-то другое нежели UPX) P.S стиль коденга впечталил, ида даже граф нариовать не смогла все в 1 процедуре