Вопрос № 56532: Здравствуйте ! Например я знаю что где-то в памяти выполняутся такая команда :4b1affa1h. Как просканировать память и вычислить адрес, по которому выполняется эта команда ?...Вопрос № 56560: Здравствуйте ! А возможно на асме установить фон для рабочего стола ? (В ХР)...Вопрос № 56565: Здравствуйте ув. эксперты.
Поразмыслив на своей задачей, я понел что мне необходимо вручную скомпилировать exe файл. Для этого требуется выдернуть некоторые функции из dll файла и вставить их в программу. Но я не знаю с какой стороны к этому подо...
Вопрос № 56.532
Здравствуйте ! Например я знаю что где-то в памяти выполняутся такая команда :4b1affa1h. Как просканировать память и вычислить адрес, по которому выполняется эта команда ?
Отправлен: 24.09.2006, 14:16
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: ENS
Здравствуйте, Whiteman!
Смотри кусок, только сначала разьерись с ним. si укажет на начало кода.
Сравниваем каждый байт ,а если неподходит то начинаем сначала.
Надеюсь я тебе помог.
Приложение:
--------- Учение - свет!
Ответ отправил: ENS (статус: 2-ой класс)
Ответ отправлен: 24.09.2006, 16:09
Отвечает: mix_mix
Здравствуйте, Whiteman!
Так как Вы пишете под Win XP, а она работает в защищенном режиме и со страничной адресацией памяти, то есть два пути:
1) Недокументированной функцией ntdll!NtOpenSection открыть объект DevicePhysicalMemory, затем найти во всей RAM компьютера эти байты, преобразовать физический адрес в линейный, определить какой процесс спроецирован на этот участок памяти.
Но это адски трудоемко и долго, если сделаете таким образом - похвала Вам и почет.
2) Гораздо проще инжектировать во все процессы код Вашей функции, которая и определит наличие и адрес этих байт. Это не так уж и сложно, здесь нету тех многих минусов первого способа, да и быстрее это может оказаться, чем в первом случае.
Почитать про инжект кода в процессы можно здесь:
http://www.wasm.ru/article.php?article=apihook_1
http://www.wasm.ru/article.php?article=apihook_2
http://www.wasm.ru/article.php?article=apihook_3
Удачи!
Приложение:
Ответ отправил: mix_mix (статус: 7-ой класс)
Ответ отправлен: 24.09.2006, 23:10 Оценка за ответ: 5
Вопрос № 56.560
Здравствуйте ! А возможно на асме установить фон для рабочего стола ? (В ХР)
Отправлен: 24.09.2006, 19:34
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: n0name
Здравствуйте, Whiteman!
Да возможно.
Ответ отправил: n0name (статус: 6-ой класс)
Ответ отправлен: 25.09.2006, 10:09 Оценка за ответ: 5
Вопрос № 56.565
Здравствуйте ув. эксперты.
Поразмыслив на своей задачей, я понел что мне необходимо вручную скомпилировать exe файл. Для этого требуется выдернуть некоторые функции из dll файла и вставить их в программу. Но я не знаю с какой стороны к этому подойти, т.к. dll откомпилированая (без исходного кода). Как мне вытащить функцию из библеотеке? Для этого требуется загружать библеотеку в память или нет? и вообще можно ли это сделать(в памяти выдернуть функцию)?
Отправлен: 24.09.2006, 20:46
Вопрос задал: 007Makc (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: ADSota
Здравствуйте, 007Makc!
Один из вариантов подгрузки DLL:
libName db "yourdllname.dll",0
FuncName db 'YourFunction4Call',0
hLib dd ?
...
invoke LoadLibrary,libName;//загрузить длл
mov [hLib], eax
invoke GetProcAddress,[hLib],FuncName;//получить адрес функции в памяти
;//в EAX теперь адрес функции
; push param1 - тут в стек передаются параметры функции
; push param2
; ... etc
call eax;//запустить функцию
; invoke dword[eax],buff,16
invoke FreeLibrary,[hLib];//даль ДЛЛ команду выгрузиться
--------- Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 25.09.2006, 08:43
Отвечает: Волков Павел Юрьевич
Здравствуйте, 007Makc!
Для рипа функции из dll:
дизассемблируем секцию кода, точку входа, на необходимую функцию,
берем из таблицы экспорта.
Обычно функция начинается с последовательности -
push ebp
mov ebp,esp
Для определения конца функции надо смотреть близлежащие функции и цепочки инструкций
leave
ret X
или
pop ebp
ret X
--------- Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 7-ой класс)
Ответ отправлен: 25.09.2006, 14:09