Как можно расширить секцию, где может выполняться код? Пробовал - добавлять новую секцию, и ставил на ней флаг выполнения и чтения, но олька всеравно говорит что типа вне секции кода, хрен вам. Что я не так делаю?
2ntldr да выполняться код может везде, где проставлены соответствующие аттрибуты. Olly просто обращает внимание на тот факт, что точка входа проги находится не в пределах BaseOfCode <= EP <= BaseOfCode + SizeOfCode. Но это ниначто впринципе не влияет ))). Расширить - это смотря какую секцию по счёту. Если последнюю - то элементарно - исправляешь VirtualSize (выравнивать не нужно), SizeOfRawData (выровнить на filealignment), SizeOfImage (выровнять на sectionalignment) ну и точку входа по желанию. Ну и всё вроде. Если не последняя, то нужно сдвигать и остальные секции, править релоки, таблицу директорий и тд. Ну да и следи чтобы 1) VirtualSize => SizeOfRawData 2) PointerToRawData + SizeOfRawData не вылетало за границу файла. Ну и в общем, если файл запускается, те нет банального - это приложение не является блаблабла, то всё ты делаешь правильно. А вообще иди на wasm.ru в раздел вирусология, ну и статьи по PE формату почитай.
2ядровенды, надо еще обратить внимание на number of rva & sizes. т.к. ты канпилишь в сях, можешь взять сорцы йадокриптера 1.3 портированные с асма на ц и посмотреть, как там добавляется секция, выставляются все нужные атрибуты и подсчитываются необходимые значения
2s0l_ir0n а зачем? Если для того чтобы перейти к таблице секций есть же более лучший вариант через IMAGE_FILE_HEADER.SizeOfOptionalHeader. А в остальном для добавления-расширения секции это значение не нужно 0___o
Расскажите пожалуйста как найти функцию проверки\чтения файла в программе на VB?)) там как то всё не по человечьи =\ к тому же не видно какие окна имеются в приложении. Какие особенности трепанации софта на Visual Basic???
ок, это получилось, а вообще - как можно в ольге определить аттрибуты безопасности какого-либо байта, типа чтения, записи и выполнения? и еще вопрос про фрагментацию - один сенд на клиенте всегда равен одному рекву на сервере? Если НЕТ, то подскажите какой-нибудь несложный алгоритм шифрования по ключу, чтобы если пакет неожиданно разбился на 2 пакета, или 2 пакета слились в 1, все нормально расшифровалось - то есть шифровался по одному символу.
Вот почитай надеюсь тебе эта статья поможет разобраться с аттрибутами безопасности. _http://wasm.ru/article.php?article=1021004
2ntldr атрибуты безопасности не ставятся на отдельные байты, минимальное с чем работать можно - страница - 4Кб, посмотреть можно в окне Памяти (alt-m). но изменения там вроде не показываюцца (или я чего то туплю). А да страницы с одинаковыми аттриьутами там объединяются в единый регион -_- PS если туплю сорри, тк пьян ^________^
Возможно ли не внедряя код в процесс определить виртуальные адреса каких-либо модулей, может даже и функций?
возможно. ProcessViewer это делает. подглядел), тебе нужно копать в сторону OpenProcess PSAPI.EnumProcessModules PSAPI.GetModuleBaseNameA а вобще посмотри процесвивер определяет адреса и размер загруженных модулей, а функцию например можно потом искать по сигнатуре. -- GetProcAddressEx ещо есть)
Не подскажите линк на статью о подмене ентри поинт'а...с примером.Гугль дает кучи ссылок, но просто одна теория..
а что вы имеете ввиду под термином подмена? Просто изменить EP мало, надо же и минимально рабочий код добавить чтоб в итоге перешло на оригинальную точку входа. И еще, надо от теории переходить к практике. Советую ollydbg в силу легкости внесения изменений в код.
Как в ольке (ollydbg) посмотреть содержимое определенного регистра? SoftIce не предлогать (сам новичек... токо изучаю крякерство(асм знаю))
Подробнее... У меня цифры после eax,ecx такие же как и у вас...(почти* вот прям точь в точь но...) Значит что-то не договорил мне кажится