> У меня есть экзешник, мне нужно вставить дука кусок асм > кода, так чтобы сначало выполнялся он, а затем уже > прога..... > как это осуществить? и вв каком редакторе? > я использовал HIEW, дисасмил, брал адреса в свободной > области памяти, менял адресс загрузки, ложил в стек старый > адресс загрузки, вставлял асм код, дальше вынимал из стека > старый адресс загрузки и продолжал прогу..., но ничего не > работало почему??? и как надо делать?
зависит от того что ты имеешь в виду под "адрес загрузки"
если это ENTRY_POINT то все ты делаешь правильно (теоретически)
мне только не понравилось "брал адреса в свободной
области памяти" - или работай на огрызках от выравнивания секций или расширяй секции
а вот если твой "адрес загрузки" это действительно LOAD_ADDRESS т.е. фактически 400000h то конечно все надо делать не так
У меня есть экзешник, мне нужно вставить дука кусок асм кода, так чтобы сначало выполнялся он, а затем уже прога.....
как это осуществить? и вв каком редакторе?
я использовал HIEW, дисасмил, брал адреса в свободной области памяти, менял адресс загрузки, ложил в стек старый адресс загрузки, вставлял асм код, дальше вынимал из стека старый адресс загрузки и продолжал прогу..., но ничего не работало почему??? и как надо делать?
Вопрос по ассемблеру...14.11.01 16:36 Автор: z0 <z0> Статус: Member
> У меня есть экзешник, мне нужно вставить дука кусок асм > кода, так чтобы сначало выполнялся он, а затем уже > прога..... > как это осуществить? и вв каком редакторе? > я использовал HIEW, дисасмил, брал адреса в свободной > области памяти, менял адресс загрузки, ложил в стек старый > адресс загрузки, вставлял асм код, дальше вынимал из стека > старый адресс загрузки и продолжал прогу..., но ничего не > работало почему??? и как надо делать?
зависит от того что ты имеешь в виду под "адрес загрузки"
если это ENTRY_POINT то все ты делаешь правильно (теоретически)
мне только не понравилось "брал адреса в свободной
области памяти" - или работай на огрызках от выравнивания секций или расширяй секции
а вот если твой "адрес загрузки" это действительно LOAD_ADDRESS т.е. фактически 400000h то конечно все надо делать не так
Вопрос по ассемблеру...14.11.01 20:55 Автор: A.Andrew Статус: Незарегистрированный пользователь
> зависит от того что ты имеешь в виду под "адрес загрузки" > > если это ENTRY_POINT то все ты делаешь правильно > (теоретически) > мне только не понравилось "брал адреса в свободной > области памяти" - или работай на огрызках от выравнивания > секций или расширяй секции > > а вот если твой "адрес загрузки" это действительно > LOAD_ADDRESS т.е. фактически 400000h то конечно все надо > делать не так
-------
Да именно ENTRY_POINT а адрес в свободной области - есть ни что иное, как огрызок от выравнивания по параграфу ( привет Биллу Гейтсу) ......
Вроде тоже всё правильно , но не работает......
Может просто HIEW плохо вставляет???
так кусок кода , виде
mov ah,..h
in .......
out .....
и т.д
Короче код, для того чтобы AVP встал, он анализатором в конце концов предскажет 1, где реально получается 0 и для него вечный цикл :)))) тут тоже всё теоретически, а вот не работает :(((
Вопрос по ассемблеру...15.11.01 10:50 Автор: z0 <z0> Статус: Member
> Короче код, для того чтобы AVP встал, он анализатором в > конце концов предскажет 1, где реально получается 0 и для > него вечный цикл :)))) тут тоже всё теоретически, а вот не > работает :(((
давай проще: если заменить ENTRY_POINT_ADDRESS в PE-headere на какой-нить адрес в огрызке и там воткнуть что-нибудь типа
db 0cch
push dword OLD_ENTRY_POINT_ADDRESS
retn
то такое у тебя работает (вываливается в софт-айс с I3HERE ON)?
Вопрос по ассемблеру...16.11.01 06:54 Автор: A.Andrew Статус: Незарегистрированный пользователь
> db 0cch > push dword OLD_ENTRY_POINT_ADDRESS > retn > то такое у тебя работает (вываливается в софт-айс с I3HERE > ON)? идиотский HIEW хоти ни db ни push dword ...(на dword рунается) ....не хочет вписывать,....... черт надо какой нить другой редактор какой посоветуншь???
Ты всё таки думаешь, что код выполняется, просто AVP не реагирует???
неужели додумались.......
еще вопрос......тот же AVP монитор грузит свои базы в памть......
с помощь каких прог можно проследить куда он их засовывает???
Вопрос по ассемблеру...16.11.01 16:51 Автор: z0 <z0> Статус: Member
> идиотский HIEW хоти ни db ни push dword ...(на dword > рунается) ....не хочет вписывать,....... черт надо какой > нить другой редактор какой посоветуншь???
смотри:
hiew test.exe
F4 -> decode
F8 -> F5
запоминаешь адрес - верхний правый угол - что-то типа .00401000
листаешь до конца секции или до блока 90/cc
там запоминаешь адрес на котором курсор (допустим .00401014) и пишешь (F3):
cc
68 00104000
c3
жмешь F9
т.е:
прерывание int3 - это для тебя чтоб ты видел что доходит сюда ну и поотлаживать смог
push dword ORIGINAL_ENTRY_POINT
retn
F4 -> hex
Ctrl+home
т.е возвращаешься в начало файла находишь PE и по смещению 28h от этих буковок пишешь новый адрес (.00401014 - .00400000) = .00001014
F3
14 10 00 00
F9
ESC
в софтайсе ставишь I3HERE ON
теперь при запуске этого екзешника ты проваливаешься в софтайс отлаживаешь все что нужно проверяешь и когда все готово меняешь cc на 90
я упростил ситуацию в том смысле что модуль имеет LOAD_ADDRESS = 00400000h и по нему же грузится фактически
вообще говоря это частный но для екзешников частый случай
Редактор pe16.11.01 08:40 Автор: ggg <ggg> Статус: Elderman