Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
[Win32] О модифицировании запущенного файла... 13.03.02 02:36 Число просмотров: 832
Автор: ih8u <i hate you> Статус: Member
|
> CreateRemoteThread(...) > sdes` pro eto uzhe pisalos` i ne raz.
А оно случайно не только для выньНТ работает??
|
<programming>
|
[Win32] О модифицировании запущенного файла... 10.03.02 14:59
Автор: vh <Дмитрий> Статус: Member
|
Не подскажет ли кто нибудь как мне решить лучше всего данну траблу...
Чуствуется что здесь есть известное простое решение а изобретать лесопед заново не хочется...
вообщем ситуация:
я, вирус, загруженный из файла (прогии...)...мне надо этот файл проредактировать (точнее , вылечить) но так что бы я сам себя не удалил. Но дело в том, что я не могу редактировать свой файл пока он запущен...
В этом и проблема.
Вот возникла идея создать другой процесс (но не нить!), старый процесс закрыть, и из нового все сделать...но CreateProccess требует исполняемого файла, а держать его копию внутри вируса расточительно и как то некрасиво...а нельзя кстати создать безфайловый процесс?
Заранее большое спасибо..
|
|
[Win32] Есть еще другой вариант 13.03.02 17:19
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
> Вот возникла идея создать другой процесс (но не нить!), > старый процесс закрыть, и из нового все сделать...но > CreateProccess требует исполняемого файла, а держать его > копию внутри вируса расточительно и как то некрасиво...а > нельзя кстати создать безфайловый процесс?
CreateFile
FILE_ATTRIBUTE_TEMPORARY
The file is being used for temporary storage. File systems attempt to keep all of the data in memory for quicker access rather than flushing the data back to mass storage. A temporary file should be deleted by the application as soon as it is no longer needed.
Делай так - тот exe, в кот. ты сейчас сидишь и который занят системой копируй в такой временный файл, запускай. Дожидайся завершения главного файла.
Редактируй.
|
| |
[Win32] Есть еще другой вариант 14.03.02 18:39
Автор: vh <Дмитрий> Статус: Member
|
> > Вот возникла идея создать другой процесс (но не > нить!), > > старый процесс закрыть, и из нового все сделать...но > > CreateProccess требует исполняемого файла, а держать > его > > копию внутри вируса расточительно и как то > некрасиво...а > > нельзя кстати создать безфайловый процесс? > > CreateFile > FILE_ATTRIBUTE_TEMPORARY > > The file is being used for temporary storage. File systems > attempt to keep all of the data in memory for quicker > access rather than flushing the data back to mass storage. > A temporary file should be deleted by the application as > soon as it is no longer needed. > > Делай так - тот exe, в кот. ты сейчас сидишь и который > занят системой копируй в такой временный файл, запускай. > Дожидайся завершения главного файла. > Редактируй. не понял :(
можно еще раз?
|
| | |
[Win32] Есть еще другой вариант 15.03.02 10:16
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
> не понял :( > можно еще раз?
Если не понял то что я написал про CreateFile, смотри хелп.
А если принцип.....
Скажи конкретнее усоловия задачи.
|
| | | |
[Win32] Есть еще другой вариант 15.03.02 19:14
Автор: vh <Дмитрий> Статус: Member
|
> > не понял :( > > можно еще раз? > > Если не понял то что я написал про CreateFile, смотри хелп. > А если принцип..... > > Скажи конкретнее усоловия задачи. фича в том чтобы зараженная программа при своем запуске лечила сама себя (ну точнее чтобы вирус сам себя удалил..на диске) и запустилась бы уже излеченная..хорошая. допустим есть уже функция health(file) которая это делает. но проблема в том что открытый файл редактировать нельзя. :(
нужно сделать так чтоб пользователь ничего не заметил, не использовать выход в ринг 0.
уф...это уже третяя попытка...описал понятно как только мог
|
|
[Win32] О модифицировании запущенного файла... 13.03.02 00:03
Автор: + <Mikhail> Статус: Elderman
|
> Не подскажет ли кто нибудь как мне решить лучше всего данну > траблу... > Чуствуется что здесь есть известное простое решение а > изобретать лесопед заново не хочется... > вообщем ситуация: > я, вирус, загруженный из файла (прогии...)...мне надо этот > файл проредактировать (точнее , вылечить) но так что бы я > сам себя не удалил. Но дело в том, что я не могу > редактировать свой файл пока он запущен... > В этом и проблема. > Вот возникла идея создать другой процесс (но не нить!), > старый процесс закрыть, и из нового все сделать...но > CreateProccess требует исполняемого файла, а держать его > копию внутри вируса расточительно и как то некрасиво...а > нельзя кстати создать безфайловый процесс? > > Заранее большое спасибо.. CreateRemoteThread(...)
sdes` pro eto uzhe pisalos` i ne raz.
|
| |
[Win32] О модифицировании запущенного файла... 13.03.02 02:36
Автор: ih8u <i hate you> Статус: Member
|
> CreateRemoteThread(...) > sdes` pro eto uzhe pisalos` i ne raz.
А оно случайно не только для выньНТ работает??
|
| | |
[Win32] О модифицировании запущенного файла... 13.03.02 02:38
Автор: vh <Дмитрий> Статус: Member
|
> > CreateRemoteThread(...) > > sdes` pro eto uzhe pisalos` i ne raz. > > А оно случайно не только для выньНТ работает?? в хелпах написано:
Windows NT: The handle must have PROCESS_CREATE_THREAD access. For more information
интересно какие процессы в НТ заведомо существуют и дают делать в себе нити?
|
| | | |
[Win32] О модифицировании запущенного файла... 13.03.02 16:44
Автор: ih8u <i hate you> Статус: Member
|
НТ сакс,
вот ели бы это дело работало под 9х,
вот это было бы круто!!
|
| | | | |
[Win32] О модифицировании запущенного файла... 14.03.02 02:51
Автор: vh <Дмитрий> Статус: Member
|
> НТ сакс, > вот ели бы это дело работало под 9х, > вот это было бы круто!! сакс то сакс..дело не в этом....а в 9х работает судя по документации :)
|
| | | | | |
[Win32] О модифицировании запущенного файла... 14.03.02 05:16
Автор: ih8u <i hate you> Статус: Member
|
Тока что в хелпе по WINAPI читал:
CreateRemoteThread
Windows NT Yes
Win95 No
Win32s No
Import Library kernel32.lib
Header File winbase.h
Unicode No
Platform Notes None
|
| | | | | | |
[Win32] CreateRemoteThread в win98 есть! 14.03.02 06:30
Автор: vh <Дмитрий> Статус: Member
|
> Тока что в хелпе по WINAPI читал: видимо у тебя другой хелп...у меня по другому написано...на всякий слуяай я решил проверить, оказалось что функция в 98-ой винде (SE) есть такая..
прога:
<p>
.386p
.model flat
extrn GetModuleHandleA:PROC
extrn ExitProcess:PROC
extrn GetProcAddress:PROC
.data
NCreateRemoteThread db 'CreateRemoteThread',0
Kernel32N db "KERNEL32.dll",0
.code
start:
lea eax,Kernel32N
push eax
call GetModuleHandleA ;eax = адрес кернеля
lea edx,NCreateRemoteThread
push edx
push eax
call GetProcAddress
;eax = адрес функции CreateRemoteThread
push 0
call ExitProcess
end start
end
</p>
а можно и вообще не извращаться а написать
extrn CreateRemoteThread:PROC
и винда сама пропишет в таблицу импортов адрес на адрес функции :)
я конечно не берусь громко говорить, потому как не опытен, но помоему так оно все и есть
|
| | | | | | | |
а ты её вызвать пробовал ? ;) 14.03.02 08:04
Автор: ggg <ggg> Статус: Elderman
|
а ещё в 9х есть все функции, оканчивающиеся на W, но это не значит, что 9х понимает unicode :)
|
| | | | | | | | |
:))))))))))))))))))))))))))))))))))))))))))))) 15.03.02 12:12
Автор: ih8u <i hate you> Статус: Member
|
|
| | | | | | | | |
а ты её вызвать пробовал ? ;) 14.03.02 12:56
Автор: vh <Дмитрий> Статус: Member
|
> а ещё в 9х есть все функции, оканчивающиеся на W, но это не > значит, что 9х понимает unicode :) ну хорошо...а что тогда надо сделать чтобы полностью удостовериться что какая либо апи-функция в винде есть?
вызывать я ее пробовал, но видимо с параметрами намудил, поэтому она всегда 0 возращала
|
| | | | | | | | | |
гы гы гы :) 15.03.02 03:38
Автор: ggg <ggg> Статус: Elderman
|
> ну хорошо...а что тогда надо сделать чтобы полностью > удостовериться что какая либо апи-функция в винде есть? > вызывать я ее пробовал, но видимо с параметрами намудил, > поэтому она всегда 0 возращала
она ноль возвращает не потому что ты намудил, а потому что билл гейтс намудил :)
посмотри в отладчике или дизассемблере что внутри этой функции
там будет что то типа
xor eax, eax
ret N
в MSDN же написано, что нет этой функции в 9х, значит её там и правда нет
если уж MS пишет что что то не работает, значит оно и правда не работает :)
вот если пишет что работает, то это ещё не факт, что оно и правда работает :))
|
| | | | | | | | | | |
гы гы гы :) 15.03.02 19:08
Автор: vh <Дмитрий> Статус: Member
|
> > ну хорошо...а что тогда надо сделать чтобы полностью > > удостовериться что какая либо апи-функция в винде > есть? > > вызывать я ее пробовал, но видимо с параметрами > намудил, > > поэтому она всегда 0 возращала > > она ноль возвращает не потому что ты намудил, а потому что > билл гейтс намудил :) > посмотри в отладчике или дизассемблере что внутри этой > функции > там будет что то типа > xor eax, eax > ret N > проверил бы..да софтайс глючит :)...будь добр проверь сам и опубликуй плиз код, что находится по адресу 84f30150
|
| | | | | | | | | | | |
гы гы гы гы гы гы :))))))) 17.03.02 19:43
Автор: Biasha <Бяша> Статус: Member Отредактировано 17.03.02 19:46 Количество правок: 1
|
Точнее:
// Возможно: if (IsCurrent(hProcess)) return CreateThread(…);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
> > xor eax, eax > > ret N
> проверил бы..да софтайс глючит :)...будь добр проверь сам и > опубликуй плиз код, что находится по адресу 84f30150
У меня 9х нет, но:
Джеффри Рихтер: Programming Applications for Microsoft Windows (4th edition):
In Windows 98, the CreateRemoteThread function has no useful implementation
and simply returns NULL; calling GetLastError returns ERROR_CALL_NOT_IMPLEMENTED.
(The CreateThread function contains the complete implementation of the code
that creates a thread in the calling process.) Because CreateRemoteThread
is not implemented, you cannot use this technique to inject a DLL under
Windows 98. ---
MSDN Library - January 2002:
Requirements
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Unsupported.
---
Альтернативный способ создания потока в чужом процессе (работающего почти всегда (при наличии цикла сообщений и прав), во всех виндах) я описывал когда-то на этой доске.
|
| | | | | | | | |
Люди, а вы ваще MSDN читаете? 14.03.02 10:34
Автор: Bender Статус: Незарегистрированный пользователь
|
Короче, что бы CreateRemoteThread заюзать, нужно что бы в Remote процессе уже БЫЛА функция, которая этот самый remote thread реализует.
Т.е. для начала, вы должны в чужой поток свой код впрыснуть (как в бо2к) а потом уж о remote thread говорить...
|
|
[Win32] О модифицировании запущенного файла... 12.03.02 17:35
Автор: ih8u <i hate you> Статус: Member
|
Думаю сабж возможен в ring0
Переходи туда, и модифицируй скока влезет
|
|
|