elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 31
21  Programación / ASM / Re: Consulta sobre como crear un ListView32 en: 15 Marzo 2010, 22:31 pm
Es dificil saber sin el codigo pero en teoria esos mensajes funcionaron bien ...

te dejo el codigo completo, espero que sea una pelotudez.
Código
  1. format PE GUI 4.0
  2. entry start
  3.  
  4. include 'win32w.inc'
  5.  
  6. section '.data' data readable writeable
  7.  
  8.  _class TCHAR 'CocusUI®',0
  9.  _title TCHAR 'Window de prueba',0
  10.  _error TCHAR 'Startup failed.',0
  11.  _dlgLV TCHAR 'SysListView32',0
  12.  _cap1 TCHAR 'LV32',0
  13.  
  14.  dlglvheader dd ?
  15.  dlglvhwnd dd ?
  16.  dlghwnd dd ?
  17.  dlghdc dd ?
  18.  tmp dd ?
  19.  
  20.  wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class
  21.  
  22.  msg MSG
  23.  lvi LV_ITEM
  24.  lvc LV_COLUMN
  25.  hdi HD_ITEM
  26.  
  27. section '.text' code readable executable
  28.  
  29.  start:
  30.  
  31.        invoke  GetModuleHandle,0
  32.        mov     [wc.hInstance],eax
  33.        invoke  LoadIcon,0,IDI_APPLICATION
  34.        mov     [wc.hIcon],eax
  35.        invoke  LoadCursor,0,IDC_ARROW
  36.        mov     [wc.hCursor],eax
  37.        invoke  RegisterClass,wc
  38.        test    eax,eax
  39.        jz      error
  40.  
  41.        invoke  CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,256,192,NULL,NULL,[wc.hInstance],NULL
  42.        test    eax,eax
  43.        jz      error
  44.  
  45.        mov     [dlghwnd],eax
  46.        invoke  GetDC,eax
  47.        mov     [dlghdc],eax
  48.  
  49.        jmp     createlv
  50.  
  51.  
  52.  createlv:
  53.        invoke CreateWindowEx,0,_dlgLV,NULL,WS_CHILD + WS_TABSTOP + WS_VISIBLE + LVS_REPORT,5,5,240,155,[dlghwnd],0,[wc.hInstance],NULL
  54.        mov    [dlglvhwnd],eax
  55.        invoke SetWindowLong,[dlglvhwnd], GWL_WNDPROC, WindowProc2
  56.        invoke ShowWindow,[dlglvhwnd],SW_SHOW
  57.  
  58.        mov     [lvi.mask], LVIF_TEXT ;or LVIF_STATE
  59.        mov     [lvi.iItem], 0
  60.        mov     [lvi.iSubItem], 0
  61.        mov     [lvi.pszText], _cap1
  62.  
  63.        invoke  SendMessage,[dlglvhwnd], LVM_INSERTITEM,0,[lvi]
  64.  
  65.        cmp     eax,-1
  66.        ja      msg_loop
  67.        invoke  MessageBeep, MB_OK
  68.  
  69.  msg_loop:
  70.        invoke  GetMessage,msg,NULL,0,0
  71.        cmp     eax,1
  72.        jb      end_loop
  73.        jne     msg_loop
  74.        invoke  TranslateMessage,msg
  75.        invoke  DispatchMessage,msg
  76.        jmp     msg_loop
  77.  
  78.  error:
  79.        invoke  MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
  80.  
  81.  end_loop:
  82.        invoke  ExitProcess,[msg.wParam]
  83.  
  84. proc WindowProc2 uses ebx esi edi, hwnd,umsg,wparam,lparam
  85.     invoke  DefWindowProc,[hwnd],[umsg],[wparam],[lparam]
  86.  
  87.     cmp     [umsg], LVM_INSERTITEM
  88.     je      .beep
  89.     ret
  90.  
  91.     .beep:
  92.     invoke     MessageBeep, MB_OK
  93.     ret
  94. endp
  95.  
  96. proc WindowProc uses ebx esi edi, hwnd,wmsg,wparam,lparam
  97.        cmp     [wmsg],WM_DESTROY
  98.        je      .wmdestroy
  99.  
  100.  .defwndproc:
  101.        invoke  DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
  102.  
  103.        jmp     .finish
  104.  .wmdestroy:
  105.        invoke  DestroyWindow,[dlglvhwnd]
  106.        invoke  PostQuitMessage,0
  107.        xor     eax,eax
  108.  .finish:
  109.        ret
  110. endp
  111.  
  112.  
  113.  
  114. section '.idata' import data readable writeable
  115.  
  116.  library kernel32,'KERNEL32.DLL',\
  117.          user32,'USER32.DLL',\
  118.          shell32,'SHELL32.DLL'
  119.  
  120.  include 'api\kernel32.inc'
  121.  include 'api\user32.inc'
  122.  include 'api\shell32.inc'  
Saludos y gracias por las respuestas ;)
22  Programación / ASM / Re: Consulta sobre como crear un ListView32 en: 15 Marzo 2010, 16:47 pm
¿Ambos mensajes devuelven -1? Teniendo el codigo lo mejor que podes hacer es depurar el programa con el WinDbg.

Recien lo probe con Olly, me devuelven 0. A su vez agregue un CMP para no tener que andar debugueando. cual sera el problema?

edit, dejo foto del Olly:


saludos
23  Programación / ASM / Re: Consulta sobre como crear un ListView32 en: 15 Marzo 2010, 03:21 am
Tuyo
Código:
inc lvi.iSubItem

Iczelion
Código:
mov     [lvi.iSubItem], 0

¿ No será por eso ? (Mucho de ASM no manejo :))
Al revez, el que uso yo usa los []. Esto es porque le estoy pasando como puntero. (de todas formas sin [] no funciona :D). Estoy casi seguro que es un problema al pasar el string; aun sigo viendo que carajos pasa.

Gracias por contestar, ademas espero otras respuestas.

saludos
24  Programación / ASM / Re: Consulta sobre como crear un ListView32 en: 15 Marzo 2010, 02:57 am
Hola!

Fíjate por aqui: http://win32assembly.online.fr/tut31.html

Quizás te ayude :)

Saludos!
Che gracias por responder. Mientras tanto estvue indagando por mi cuenta. Lo que me pusiste vos
Código
  1.   LOCAL lvc:LV_COLUMN
  2.   mov lvc.imask,LVCF_TEXT+LVCF_WIDTH
  3.   mov lvc.pszText,offset Heading1
  4.   mov lvc.lx,150
  5.   invoke SendMessage,hList, LVM_INSERTCOLUMN,0,addr lvc
yo lo tengo asi:
Código
  1.        mov     [lvc.mask], LVCF_TEXT or LVCF_WIDTH
  2.        mov     [lvc.pszText], _cap1 ; aca tengo duda de que esto sea asi
  3.        mov     [lvc.cx], 50
  4.        invoke  SendMessage, [dlglvhwnd], LVM_INSERTCOLUMN, 0, [lvc]

y para el tema de agregar un item en ese codigo esta asi:
Código
  1.  mov lvi.imask,LVIF_TEXT
  2.  inc lvi.iSubItem
  3.  invoke wsprintf,addr buffer, addr template,[edi].nFileSizeLow
  4.  lea eax,buffer
  5.  mov lvi.pszText,eax
  6.  invoke SendMessage,hList, LVM_INSERTITEM,0, addr lvi
y yo por mi parte lo tengo como
Código
  1.        mov     [lvi.iItem], 0
  2.        mov     [lvi.iSubItem], 0
  3.        mov     [lvi.mask], LVIF_TEXT
  4.        mov     [lvi.pszText], _cap1
  5.        invoke  SendMessage,[dlglvhwnd], LVM_INSERTITEM,0,[lvi]

misteriosamente sigue sin funcionar. sorry que sea duro con esto, recien empiezo :D

saludos
25  Programación / ASM / Consulta sobre como crear un ListView32 (solucionado) en: 15 Marzo 2010, 01:02 am
Hola que tal, bueno me decidi a meterme en el tema de ASM. Hasta el momento va todo bien, pero me surgio una duda. Quiero crear un control ListView32, lo creo, perfecto. Ahora quiero agregar una columna, para ello me estoy basando en el codigo fuente del ucListView en VB6 de Carles P.V. Bueno, el tema es que no consigo meter el item del header, o algo asi. Aca adjunto el pedazo de codigo:
Código
  1.  createlv:
  2.         invoke CreateWindowEx,0,_dlgLV,NULL,WS_CHILD + WS_TABSTOP + LVS_REPORT + WS_VISIBLE,5,5,240,155,[dlghwnd],0,[wc.hInstance],NULL
  3.        mov    [dlglvhwnd],eax
  4.        invoke ShowWindow,eax,SW_SHOW
  5.        invoke  SetWindowLong,[dlglvhwnd], GWL_WNDPROC, WindowProc2                
  6.  
  7.        ; poner el lv en modo list
  8.        invoke GetWindowLong,[dlglvhwnd],GWL_STYLE
  9.        mov    [tmp], eax
  10.        mov    [tmp], tmp+LVS_LIST-LVS_ICON-LVS_SMALLICON-LVS_REPORT
  11.        invoke SetWindowLong,[dlglvhwnd],GWL_STYLE,[tmp]
  12.  
  13.        ; agregar columna
  14.        invoke lstrlen,_cap1           ; len del caption
  15.        mov    [hdi.cchTextMax], eax   ; len
  16.        mov    [hdi.pszText], _cap1    ; caption
  17.        mov    [hdi.cxy], 100          ; width
  18.        mov    [hdi.fmt], HDF_STRING+HDF_CENTER ; formato
  19.        mov    [hdi.mask], HDI_TEXT+HDI_WIDTH+HDI_FORMAT  ; mask
  20.  
  21.        invoke SendMessage,[dlglvhwnd],LVM_INSERTCOLUMN,0,[lvc] ;
  22.        invoke SendMessage,[dlglvhwnd],4127,0,0                 ; buscar header dentro del lview
  23.        mov    [dlglvheader], eax                               ; guardo resultado
  24.        invoke SendMessage,eax,HDM_SETITEM,0,[hdi]              ; seteo el item en el header
y tengo declarado asi:
Código
  1.  _dlgLV TCHAR 'SysListView32',0
  2.  _cap1 TCHAR 'LV32',0
  3.  
  4.  dlglvheader dd ?
  5.  dlglvhwnd dd ?
  6.  
  7.  tmp dd ?
  8.  
  9.  lvc LV_COLUMN
  10.  hdi HD_ITEM
estoy usando FASM. wc.hInstance viene de WNDCLASSEX que uso para crear la ventana. WndProc2 es un procedimiento que llama al DefProcWnd. Ah y probe con y sin [] en hdi y lvc.

PD: si quito la parte de 'cambiar el estilo' se ve el recuadro blanco del LV. Pero, con el codigo ese, queda del color de fondo de la ventana.

alguna sugerencia?

desde ya muchas gracias  ::)
26  Programación / Programación Visual Basic / Re: [FIX] Error sacar BaseAddress Kernel32 W7 {cInvoke,cRunPe...} en: 4 Marzo 2010, 22:31 pm
uf perfecto! yo no uso esos codigos, pero siempre que me pasaban alguno, no funcionaba en W7 y tenia que recurrir a la querida PC virtual.

ahora yo pregunto (para boludear), ese opcode que pusiste, si lo llamo con CallWindowProc, me devuelve el base address asi nomas no?

es un poco engañoso el tema de comparar la primera letra nomas, pero dudo que se cargue otra DLL que empieze con K antes que el k32 o el ntdll

en fin, perfecto, saludos
Si llamas a esa ShellCode con CallWindowProc este devolvera 0, tienes que pasarle el puntero a un buffer (LONG) donde recibirás el Address en [ESP+8] (2ndo parametro)... Seria algo asi:
Código:
CallWindowProc VarPtr(bvCode(0)),byval 0&, byval varptr(lBuffer),byval 0&, byval 0&

Y no solo compara que el modulo cargado empiece por 'K'/'k' sino que mida tambien 12 caracteres (UNICODE)(24bytes)... osea que sea "KERNEL32.DLL"
perfecto, todos los dias se aprende algo nuevo :D despues voy a indagar en ASM, tendria que aprenderlo de una vez por todas jajaj

saludos!
27  Programación / Programación Visual Basic / Re: [FIX] Error sacar BaseAddress Kernel32 W7 {cInvoke,cRunPe...} en: 4 Marzo 2010, 22:16 pm
Bueno, supongo que algunos se habran dado cuenta que en W7 algunos CallAPI no funcionan... Eso es porque el W7 pone primero NTDLL antes que KERNEL32 en los modules cargados (Peb->InInitOrder[0]->BaseAddress != &KERNEL32 ::) :xD)... Es por eso que he programado (Basandome en otros) este shellcode que saca el BaseAddress de K32 en cualquier W$ NT aqui tenies el codigo:
Código:
http://karcrack.pastebin.com/TWmj5G5c

Y bueno, para solucionar el problema en los codigos que utilizan un pequeño shellcode para sacar el BaseAddres basta con reemplazar la constante THUNK_KERNELBASE por estos OPCODES:
Código:
8B4C2408565531C0648B70308B760C8B761C8B6E088B7E208B3638471875F3803F6B7407803F4B7402EBE789295D5EC3

Saludos :D

Originalmente posteado (En Ingles):
Código:
http://www.advancevb.com.ar/?p=499
:)
uf perfecto! yo no uso esos codigos, pero siempre que me pasaban alguno, no funcionaba en W7 y tenia que recurrir a la querida PC virtual.

ahora yo pregunto (para boludear), ese opcode que pusiste, si lo llamo con CallWindowProc, me devuelve el base address asi nomas no?

es un poco engañoso el tema de comparar la primera letra nomas, pero dudo que se cargue otra DLL que empieze con K antes que el k32 o el ntdll

en fin, perfecto, saludos
28  Programación / Programación Visual Basic / Re: Alguien sabe como manejar los tipo de estructuras de las API de uindoou en: 23 Febrero 2010, 00:23 am
Hola me gusta programar en VB 6.0 manejo alguna Api's de uindoous pero no he podido conseguir hacer funcionar otras por que manejan declaran variables como esctructure o como mas abajo aparece en negrtita osea

pSecurityDescriptor As SECURITY_DESCRIPTOR

Public Declare Function AccessCheck Lib "advapi32.dll" Alias "AccessCheck" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal ClientToken As Long, ByVal DesiredAccess As Long, GenericMapping As GENERIC_MAPPING, PrivilegeSet As PRIVILEGE_SET, PrivilegeSetLength As Long, GrantedAccess As Long, ByVal Status As Long) As Long

El que me pueda ayudar de verdad es un capo, saludos Mixer


ApiViewer!
Código
  1. Private Type SECURITY_DESCRIPTOR
  2. Revision As Byte
  3. Sbz1 As Byte
  4. Control As Long
  5. Owner As Long
  6. Group As Long
  7. Sacl As ACL
  8. Dacl As ACL
  9. End Type
29  Programación / Programación Visual Basic / Re: capture cam web en: 22 Febrero 2010, 02:44 am
sabes lo que pasa, intenta hacer bitblt al picture donde tenes la captura y pintarlo en otro picture, fijate que te va a quedar negro o del color de fondo del picture de la captura. tenes que usar otro metodo, donde puedas obtener la imagen.

nose si me entendiste, pero con eso, por lo menos yo, no podia obtener la foto de la webcam, era imposible. habia que buscar otro metodo como el del clipobard o otro que habia hecho cobein (que no recuerdo si usaba el clipboard)

saludos
30  Programación / Programación Visual Basic / [mod] Modificacion completa al VBAccelerator MDI Tabs! en: 15 Febrero 2010, 21:01 pm
      Hacia mucho que no posteaba por aca, asi que .. lo ultimo que hice: MDI TABS mod

      Tiene unas cuantas modificaciones con respecto al original:
    • Libre de referencias al SSUBTMR6.dll
    • Ningun modulo o clase adicional
    • Imagenes de las pestañas y botones pintadas por UxTheme
      • Se mantienen las originales (OwnerThemed_XXXXX) por si el sistema no esta usando ningun theme
    • Iconos sobre las pestañas
    • WM_MOUSEWHEEL (no anda del todo bien) para scrollear las pestañas
    • Click con el boton del medio del mouse para cerrar una pestaña
    • Imagenes HOVER sobre pestañas y botones
    • Deteccion del cambio del caption de MDI Child
    • Drag & Drop funcional
    • Le removi el AlignBottom ya que el UxTheme no admite usar pestañas al revez
    En fin, tenes que probarla para ver como funca. Ya se que algunas cosas andan medias chulengas, es por eso que cualquier fix vendria de pelos.

    Bajala de ACA

    PD: Yo le envie un mail al autor de esta clase preguntandole si podia postearla; ya que no hubo respuesta la subo igual. El autor es Steve McMahon.[/list][/list]
    Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 31
    WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines