У меня есть исходник добавления кода в ехе. Но как мне записать сам код: push 0 push 0 push offset bufer ;!!!!!!!!!!!!!!!! push 0 mov eax,77d7050bh; MessageBox call eax как надо ето записать у cуществующий eхе , веть переменной bufer там не существует.
поищи программку topo v1.2, с помощью неё можно добавить секцию в файл или найти неиспользуемое место в файле, далее с помощью олли или hiew (или ещё как-нибудь) пишешь свой код, а потом перенаправляешь
Нужно найти секцию данных и там в место которое образовалось за счёт выравнивания секций вбить эти данные. Или добавить в последнюю секцию. Далее просто вычеслить аддресс.
masm_the_best Вот тебе здесь понадобяться техники программирования в шел код стиле. Если у тебя код такой, Код (Text): push 0 push 0 push offset bufer ;!!!!!!!!!!!!!!!! push 0 mov eax,77d7050bh; MessageBox call eax делай так Код (Text): jmp x: bufer db "The Passion Of Code Laboratory",0 x: push 0 push 0 lea eax,[ebp+bufer] push eax ;!!!!!!!!!!!!!!!! push 0 mov eax,77d7050bh; MessageBox call eax В EBP - дельта смещение. Как его вычислять узнаешь из моей статьи. Если всеравно чего-нибудь не понятно мыль bill_tpoc@mail.ru
masm_the_best Код (Text): mov eax,77d7050bh; MessageBox надеюсь, у тебя этот адрес не прошит намертво? т.к. на разных машинах адреса будут разные дельту можно вычислить, например, так: Код (Text): call Delta ; здесь могут быть данные Delta: pop ebp sub ebp, offset Delta
а можно и так: push 0 push 0 call x: bufer db "Message",0 x: push 0 mov eax,77d7050bh; MessageBox call eax
нужно всего лишь полазить по импорту программы, она наверняка использует MessageBox, и оттуда прыгать
Bill_Prisoner Честно говоря никогда не пробовал так делать ... в SectionAdd от Freddy K видно, что написано так: Код (Text): lea eax, [ebp+OFFSET szExitProcess] CALL GetProcAddr, [ebp+dwKernelBase], eax OR EAX, EAX JZ QUIT MOV [ebp+_ExitProcess], EAX Вот я и списал все на опечатку.
в MASM'е писать можно и так и так Код (Text): mov eax, [ecx + tx_1] mov eax, [ecx + OFFSET tx_1] и наглядней с OFFSET'ом, но MASM иногда глючит, поэтому рекомендую OFFSET не писать.