ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

03.07.2008, 03:02
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
PID (Process Identifier) - после каждого запуска менятся.
По этому вот здесь PID!=2424
Код:
invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,2424
Можешь привести полный код или программку.
|
|
|

03.07.2008, 07:09
|
|
Новичок
Регистрация: 02.07.2008
Сообщений: 1
Провел на форуме: 925
Репутация:
0
|
|
Можете дать исходник антивируса на delphi 7 ( жилатильно с каминтариями )
|
|
|

03.07.2008, 07:55
|
|
Познающий
Регистрация: 28.09.2007
Сообщений: 56
Провел на форуме: 4328058
Репутация:
86
|
|
invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,2424
invoke CreateRemoteThread,eax,0,0,mes,0,0
а VirtualAlloc/WriteProcessMemory забыл?
|
|
|

03.07.2008, 11:44
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Сообщение от GALIAFF
а VirtualAlloc/WriteProcessMemory забыл?
скорее не забыл а не знал
Вот полный код. чисто тестовая прога
PHP код:
format PE GUI 4.0
entry start
include 'INCLUDE/win32ax.inc'
section '.code' code readable executable
start:
invoke OpenProcess,PROCESS_ALL_ACCESS or PROCESS_VM_WRITE or PROCESS_CREATE_THREAD or PROCESS_CREATE_PROCESS,FALSE,1908 ;1908 - тут пид любого процесса. когда я тестил у оперы был такой пид
invoke CreateRemoteThread,eax,0,0,mes,0,0
invoke ExitProcess,0
proc mes
invoke MessageBoxA,0,'','',0
leave
retn
endp
section '.idata' import data readable writable
library kernel32,'KERNEL32.DLL',user32,'USER32.DLL'
import user32,MessageBoxA,'MessageBoxA'
import kernel32,CreateRemoteThread,'CreateRemoteThread',OpenProcess,'OpenProcess',ExitProcess,'ExitProcess'
Последний раз редактировалось ntldr; 03.07.2008 в 12:02..
|
|
|

03.07.2008, 13:50
|
|
Участник форума
Регистрация: 16.11.2006
Сообщений: 230
Провел на форуме: 599789
Репутация:
227
|
|
Помогите найти ДОКИ, чтобы подробно понять архитектуру процессора. Начинаю изучать асм - пока тяжело даётся. Ещё было бы неплохо, если бы статей подкинули интересных.
всё кто откликнется - огромное спасибо!
|
|
|

03.07.2008, 13:54
|
|
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме: 4226446
Репутация:
1564
|
|
>>Помогите найти ДОКИ, чтобы подробно понять архитектуру процессора. Начинаю изучать асм - пока тяжело даётся. Ещё было бы неплохо, если бы статей подкинули интересных.
всё кто откликнется - огромное спасибо!
http://wasm.ru/publist.php?list=11
И вообще весь васм)
|
|
|

03.07.2008, 15:11
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
1) Открываем процесс
Код:
invoke OpenProcess,PROCESS_ALL_ACCESS or PROCESS_VM_WRITE or PROCESS_CREATE_THREAD or PROCESS_CREATE_PROCESS,FALSE,PID
2) Выделяем память в чужом процессе
Код:
invoke VirtualAllocEx, Process, NULL, size, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE
mov zzz, eax
3) Копируем память в процесс
Код:
invoke WriteProcessMemory, Process, zzz, Memory, size, BytesWritten
4) Создаем удаленный поток
Код:
invoke CreateRemoteThread, hProc, NULL , 0 , pfnStatAddr, szPathtoDLL, 0, NULL
Внедряем библу DLL, в которой и находится твой
внедряемый код
Код:
proc mes
invoke MessageBoxA,0,'','',0
leave
retn
endp
Последний раз редактировалось 0verbreaK; 03.07.2008 в 16:10..
|
|
|

03.07.2008, 15:53
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
спасибо, а без dll нельзя так?
|
|
|

03.07.2008, 16:07
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
// Ошибся здесь
Код:
; -=-=-=-=-=-=-=-=-=-=-=-=-=-
; Code injection in FASM
; Created by Ct757
; -=-=-=-=-=-=-=-=-=-=-=-=-=-
;
; Use FASM to compile this shit
format PE GUI 4.0
entry start
include '%fasminc%\win32a.inc'
section '.code' code readable writeable executable
target_name db 'explorer.exe',0
;...............[INJECT CODE]..................;
remote_thread:
call .delta
.delta:
pop ebp
sub ebp,.delta
xor esi,esi
lea eax,[ebp+_user32]
push eax
call [ebp+pLoadLibrary]
push esi
lea eax,[ebp+_title]
push eax
lea eax,[ebp+_message]
push eax
push esi
call [ebp+pMessageBox]
ret
.data:
pMessageBox dd 0
pLoadLibrary dd 0
_user32 db 'USER32.DLL',0
_message db 'Hello world!',0
_title db 'Injected',0
thread_end:
;...............[END INJECT CODE]..............;
p_ent PROCESSENTRY32
find_target:
xor esi,esi
.shot:
mov [p_ent.dwSize],sizeof.PROCESSENTRY32
invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,esi
inc eax
je .not_found
dec eax
xchg eax,edi
invoke Process32First,edi,p_ent
.next_prc:
xchg eax,ecx
jecxz .not_found
invoke lstrcmpi,p_ent.szExeFile,target_name
xchg eax,ecx
jecxz .found
invoke Process32Next,edi,p_ent
jmp .next_prc
.found:
invoke CloseHandle,edi
mov eax,[p_ent.th32ProcessID]
ret
.not_found:
xor eax,eax
ret
inject_code:
xor esi,esi
invoke OpenProcess,PROCESS_VM_OPERATION + PROCESS_VM_WRITE + PROCESS_CREATE_THREAD,esi,eax
xchg eax,ecx
jecxz .exit
xchg ecx,edi
invoke VirtualAllocEx,edi,esi,thread_end-remote_thread,MEM_COMMIT,PAGE_READWRITE
xchg eax,ecx
jecxz .close_h
xchg ecx,ebp
invoke WriteProcessMemory,edi,ebp,remote_thread,thread_end-remote_thread,esi
dec eax
test eax,eax
jnz .close_h
inc eax
invoke CreateRemoteThread,edi,esi,esi,ebp,ebp,esi,esi
.close_h:
invoke CloseHandle,edi
.exit:
ret
get_apis:
mov edi,[LoadLibrary]
mov [pLoadLibrary],edi
mov edi,[MessageBox]
mov [pMessageBox],edi
ret
start:
call find_target
test eax,eax
je .exit
call get_apis
call inject_code
.exit:
push 0
call [ExitProcess]
section '.idata' data import readable
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL'
include '%fasminc%\APIA\kernel32.inc'
include '%fasminc%\APIA\user32.inc'
Последний раз редактировалось 0verbreaK; 05.07.2008 в 18:20..
|
|
|

08.07.2008, 01:38
|
|
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме: 3371897
Репутация:
1462
|
|
и снова я с косяками:
хочу вывести exe имя процесса(любого) в консоль
process32First и Next
в упор не заполняет структуру
возвращяет что записал,а в odbg видит- пусто
fasm
Код:
push 0
push 0x00000002
call dword [CreateToolhelp32Snapshot]
mov [SnapHandle],Eax
mov [ProcBuffer.size],4*9+255
push ProcBuffer
push [SnapHandle]
call dword [Process32First]
push ProcBuffer
push [SnapHandle]
call dword [Process32Next]
push 0
push 0
push 255
push ProcBuffer.exeFile
push [StdOutputHandle]
call dword [WriteConsoleA]
Код:
section '.data' data readable writeable
struc PROCESSENTRY32
{
.size dd 4*9+255
.usage dd ?
.processID dd ?
.defaultHeapID dd ?
.moduleID dd ?
.threads dd ?
.parentProcessID dd ?
.priClassBase dd ?
.flags dd ?
.exeFile db 255 dup(?)
}
ProcBuffer PROCESSENTRY32
полный исходник пример
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Вопросы для новичков! (faq)
|
PEPSICOLA |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
92 |
14.05.2010 17:59 |
|
ОС с нуля
|
z01b |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
36 |
03.07.2008 15:30 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|