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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Temas
Páginas: 1 2 [3]
21  Seguridad Informática / Seguridad / Log... en: 24 Junio 2010, 02:30 am
Hola que tal ^^

Ya cansado de los virus y que el Nod32 no me elimine el Recycler... , que en unos dias pasados se desaparescan la mitad de iconos, ademas que se desconfigure a cada rato mi router <.<,  y que nisiquiera me deje entrar a los grupos de google ¬¬

entoncs lo primero que hacer es la eliminacion de todos los virus en mi pc, empezando por el recycler y luego ver sobre mi router...

asi que les dejo el log del

HijackThis

Logfile of Trend Micro HijackThis v2.0.2
Scan saved at 19:32:42, on 23/06/2010
Platform: Windows XP SP3 (WinNT 5.01.2600)
MSIE: Internet Explorer v8.00 (8.00.6001.18702)
Boot mode: Normal

Running processes:
C:\WINDOWS\System32\smss.exe
C:\WINDOWS\system32\winlogon.exe
C:\WINDOWS\system32\services.exe
C:\WINDOWS\system32\lsass.exe
C:\WINDOWS\system32\nvsvc32.exe
C:\WINDOWS\system32\svchost.exe
C:\WINDOWS\System32\svchost.exe
C:\WINDOWS\system32\spoolsv.exe
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\RTHDCPL.EXE
C:\WINDOWS\system32\RUNDLL32.EXE
C:\Archivos de programa\ESET\ESET NOD32 Antivirus\egui.exe
C:\WINDOWS\system32\ctfmon.exe
C:\Archivos de programa\Windows Live\Messenger\MsnMsgr.Exe
C:\Archivos de programa\ESET\ESET NOD32 Antivirus\ekrn.exe
C:\Archivos de programa\Intel\Intel(R) Management Engine Components\LMS\LMS.exe
C:\Archivos de programa\Microsoft SQL Server\90\Shared\sqlwriter.exe
C:\WINDOWS\system32\svchost.exe
C:\Archivos de programa\Intel\Intel(R) Management Engine Components\UNS\UNS.exe
C:\WINDOWS\System32\svchost.exe
C:\WINDOWS\system32\wscntfy.exe
C:\WINDOWS\system32\wuauclt.exe
C:\Archivos de programa\Mozilla Firefox\firefox.exe
C:\Archivos de programa\Windows Live\Messenger\msnmsgr.exe
C:\Archivos de programa\Windows Live\Contacts\wlcomm.exe
C:\Archivos de programa\Adobe\Reader 8.0\Reader\AcroRd32.exe
C:\Archivos de programa\Trend Micro\HijackThis\HijackThis.exe

R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Default_Page_URL = http://go.microsoft.com/fwlink/?LinkId=69157
R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Default_Search_URL = http://go.microsoft.com/fwlink/?LinkId=54896
R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Search Page = http://go.microsoft.com/fwlink/?LinkId=54896
R0 - HKLM\Software\Microsoft\Internet Explorer\Main,Start Page = http://go.microsoft.com/fwlink/?LinkId=69157
R0 - HKCU\Software\Microsoft\Internet Explorer\Toolbar,LinksFolderName = Vínculos
R3 - URLSearchHook: Barra Yahoo! con bloqueador de ventanas emergentes - {EF99BD32-C1FB-11D2-892F-0090271D4F88} - C:\Archivos de programa\Yahoo!\Companion\Installs\cpn\yt.dll
O2 - BHO: Yahoo! Toolbar Helper - {02478D38-C3F9-4EFB-9B51-7695ECA05670} - C:\Archivos de programa\Yahoo!\Companion\Installs\cpn\yt.dll
O2 - BHO: Aplicación auxiliar de vínculos de Adobe PDF Reader - {06849E9F-C8D7-4D59-B87D-784B7D6BE0B3} - C:\Archivos de programa\Archivos comunes\Adobe\Acrobat\ActiveX\AcroIEHelper.dll
O2 - BHO: (no name) - {5C255C8A-E604-49b4-9D64-90988571CECB} - (no file)
O2 - BHO: Windows Live Aplicación auxiliar de inicio de sesión - {9030D464-4C02-4ABF-8ECC-5164760863C6} - C:\Archivos de programa\Archivos comunes\Microsoft Shared\Windows Live\WindowsLiveLogin.dll
O3 - Toolbar: (no name) - {7FEBEFE3-6B19-4349-98D2-FFB09D4B49CA} - (no file)
O3 - Toolbar: Barra Yahoo! con bloqueador de ventanas emergentes - {EF99BD32-C1FB-11D2-892F-0090271D4F88} - C:\Archivos de programa\Yahoo!\Companion\Installs\cpn\yt.dll
O4 - HKLM\..\Run: [RTHDCPL] RTHDCPL.EXE
O4 - HKLM\..\Run: [NvMediaCenter] RUNDLL32.EXE C:\WINDOWS\system32\NvMcTray.dll,NvTaskbarInit
O4 - HKLM\..\Run: [NvCplDaemon] RUNDLL32.EXE C:\WINDOWS\system32\NvCpl.dll,NvStartup
O4 - HKLM\..\Run: [Adobe Reader Speed Launcher] "C:\Archivos de programa\Adobe\Reader 8.0\Reader\Reader_sl.exe"
O4 - HKLM\..\Run: [Adobe ARM] "C:\Archivos de programa\Archivos comunes\Adobe\ARM\1.0\AdobeARM.exe"
O4 - HKLM\..\Run: [egui] "C:\Archivos de programa\ESET\ESET NOD32 Antivirus\egui.exe" /hide /waitservice
O4 - HKCU\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\ctfmon.exe
O4 - HKCU\..\Run: [MsnMsgr] "C:\Archivos de programa\Windows Live\Messenger\MsnMsgr.Exe" /background
O4 - HKUS\S-1-5-19\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'SERVICIO LOCAL')
O4 - HKUS\S-1-5-20\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'Servicio de red')
O4 - HKUS\S-1-5-18\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'SYSTEM')
O4 - HKUS\.DEFAULT\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'Default user')
O8 - Extra context menu item: E&xportar a Microsoft Excel - res://C:\ARCHIV~1\MICROS~4\OFFICE11\EXCEL.EXE/3000
O9 - Extra button: Referencia - {92780B25-18CC-41C8-B9BE-3C9C571A8263} - C:\ARCHIV~1\MICROS~4\OFFICE11\REFIEBAR.DLL
O9 - Extra button: (no name) - {e2e2dd38-d088-4134-82b7-f2ba38496583} - C:\WINDOWS\Network Diagnostic\xpnetdiag.exe
O9 - Extra 'Tools' menuitem: @xpsp3res.dll,-20001 - {e2e2dd38-d088-4134-82b7-f2ba38496583} - C:\WINDOWS\Network Diagnostic\xpnetdiag.exe
O9 - Extra button: Messenger - {FB5F1910-F110-11d2-BB9E-00C04F795683} - C:\Archivos de programa\Messenger\msmsgs.exe
O9 - Extra 'Tools' menuitem: Windows Messenger - {FB5F1910-F110-11d2-BB9E-00C04F795683} - C:\Archivos de programa\Messenger\msmsgs.exe
O16 - DPF: {30528230-99f7-4bb4-88d8-fa1d4f56a2ab} (YInstStarter Class) - C:\Archivos de programa\Yahoo!\Common\yinsthelper.dll
O23 - Service: ESET HTTP Server (EhttpSrv) - ESET - C:\Archivos de programa\ESET\ESET NOD32 Antivirus\EHttpSrv.exe
O23 - Service: ESET Service (ekrn) - ESET - C:\Archivos de programa\ESET\ESET NOD32 Antivirus\ekrn.exe
O23 - Service: Intel(R) Management and Security Application Local Management Service (LMS) - Intel Corporation - C:\Archivos de programa\Intel\Intel(R) Management Engine Components\LMS\LMS.exe
O23 - Service: NVIDIA Display Driver Service (nvsvc) - NVIDIA Corporation - C:\WINDOWS\system32\nvsvc32.exe
O23 - Service: Intel(R) Management & Security Application User Notification Service (UNS) - Intel Corporation - C:\Archivos de programa\Intel\Intel(R) Management Engine Components\UNS\UNS.exe

--
End of file - 5690 bytes

pd1: Pase el Nod32 y el CCleaner
pd2: come elimine el  Recycler =/
pd3: Cuando Inicio WXP consume 350M a 400M  de Ram es normal?

y lo del router tal vez lo haga en otro post para que sea mas ordenado :)

Salu2!
22  Programación / ASM / [?]Addys Dinamicas y Offset (Solucionado) en: 23 Marzo 2010, 02:02 am
Hola, que tal...

Bueno esta vez los molesto por que tengo un pequeño problema, ( y hasta me da verguenza en poner mi horrible codigo que hice :S).

Yo obtengo el Manejor de modulo de una dll gracias a eso puedo obtener la addy especifica de una funcion..

esa addy es dinamica por eso hago lo anterior, siendo que la funcion es el puntero a la addy dinamica...

Bueno sin tanto palabreo... al punto

lo que quiero es no usar la funcion si no algo que, por ejemplo cambie cuando haya una actualizacion entoncs, lo que he pensado es esto obtener el offset de la funcion,
y cuando haya por ejemplo una actualizacion esta cambie.

a esto seria solo obtener el manejador del modulo de la dll y sumarle el offset.

-Ahora quiero saber si haciendo eso cambiaria el offset en cada Actualizacion, teniendo encuenta que lo obtube de una libreria :)

-Quiero saber si lo que tengo pensado esta bien

-O tal vez Volver Statica esa Addy? si asi cambia en cada actualizacion seria genial hacerlo asi, pero como lo haria?

-Si no como puedo segun la idea de ustedes, pudiera hacerlo =)

Muxas Graxias a todos por tomarse el tiempo de leer mi duda ^^
23  Programación / ASM / [?]Registros de Windows <.< en: 9 Marzo 2010, 23:54 pm
Hola que tal tengo una duda la verdad, quisiera saber por que no puedo crear un valor dword dentro de varias carpetas la verdad no se que estoy haciendo mal y si alguien me hecha una mano seria genial

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none
  4.  
  5. include windows.inc
  6. include user32.inc
  7. include kernel32.inc
  8. include advapi32.inc
  9.  
  10. includelib user32.lib
  11. includelib kernel32.lib
  12. includelib advapi32.lib
  13.  
  14. .data
  15.  
  16. SubKey db "Software\Microsoft\Windows Live\Messenger",0
  17. Nombre db "Multiple Instances",0
  18.  
  19. Mensaje db "Carpeta No Encontrada",0
  20. Titulo db "Error",0
  21.  
  22. .data?
  23. hKey dd ?
  24. Buffer dd ?
  25.  
  26. .code
  27.  
  28. Main:
  29.  
  30. invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE, addr SubKey,0,KEY_ALL_ACCESS,addr hKey
  31. .if al==NULL
  32. invoke MessageBox,NULL,addr Mensaje,addr Titulo,MB_OK + MB_ICONINFORMATION
  33. .else
  34. invoke RegSetValueEx,addr hKey,addr Nombre,0,REG_DWORD,addr Buffer, 1
  35. invoke RegCloseKey,addr hKey
  36. .endif
  37.  
  38. invoke ExitProcess,0
  39.  
  40.  
  41.  
  42. End Main
  43.  

y como la imagen vale mas que mil palabras

esto es lo que quiero hacer



y porsupesto darle un valor

24  Programación / ASM / [Tuto]Inyección DLL – Full API en: 28 Enero 2010, 17:44 pm
[Tuto]Inyección DLL – Full API



Objetivo: Inyección DLL para el Buscaminas
Dificultad: Intermedio
Herramientas: RadASM, OllyDBG
Cracker: Nox
Fecha: 27/01/2010

Este tutorial tiene finestotalmente didácticos. No me responsabilizo por cómo se pueda utilizar elmismo.

IMPORTANTE: Cualquiertipo de error que encuentren en el tutorial, posteenlo. De esta maneraaprendemos todos.
IMPORTANTE: Se usarael IDE RadASM + MASM

Introducción:
Hola, bueno me anime a dareste tutorial para seguir la alineación de los tutoriales de vladek, [Tutorial]Iniciándomeen el hacking mediante inyección de DLL - Con ejercicio!
[/color]
, [TutorialC++] Lectura/Escritura de detos de una aplicación (externa) | Con ejercicio.

Siven el tiempo del post se darán cuenta que a pasado mucho tiempo y que no hizomas tutoriales a pesar de que dijo que si, conversando con el después de muchosmeses encontrado en línea me dijo que no haría mas tutoriales por motivo de su trabajo y de suestudio que ocupan todo su tiempo.

Citar
En que se llegue a hacer deforma estática.
Así es, el próximo tutorial será sobre eso.
Deberemos usar Offsets y buscar Punteros.
PD: En este tutorial no usamos un puntero, usamos una dirección de memoria.
Esa dirección de memoria tenía de valor "numero" (lo que valiera elnumero)
Los punteros tienen como valor una dirección de memoria.
No los confundas, sino luego se complica
Un saludo.   :P

Decidí seguir con el curso de sus tutoriales, pero antes de llegar a lo citado quiero volver a hacer untutorial de Inyección DLL, usando únicamente APIs.
Creo que los estoyaburriendo así que vamos al rollo.

Conocimientos previosbásicos requeridos:

Conocimiento Básico en ASM.
Conocimiento en Utilización del OllyDBG.

Software necesario:
OllyDBG

Buscaminas
RadASM+ MASM
Inyector

Comencemos:
1) Abriendo el Buscaminas
Un simple Juego deMicrosoft.

2) Abriendo el OllyDBG

3) A la Acción
Abierto el Buscaminas, enese momento vamos a el OllyDBG File>Attach>WinMine
Damos F9 (RUN)
Comencemos a jugar, ahoranos vamos a Memoria en la sección .data hacemos click derecho y ponemos un BPM on Write



¿Por que hacemos eso?
Aquí no tenemos ningún chico malo (Cartelito) por donde atacar, examines el juego… el tiempo corre :O, entonces ¿Dónde se almacena el tiempo?, ¡En la Memoria!, Ahora ya tenemos un sitio en donde atacar, así que nos dirigimos a ella Alt + M y en los módulos nos dice winmine (Lo vemos en la figura Anterior). Vemos esas partes y vemos diferentes secciones (Lo vemos en la figura Anterior), .text, .data, .rsrc, entro otros la mas importante que nosotros usaremos es la .data es en esta sección donde la mayoría de juegos guardan sus datos y es por aquí donde podemos empezar atacar.
Ponemos nuestro BPM on Write para que cuando quieran escribir en memoria pare.

4) Encontrando Addys
Nos dirigimos al disassembler y vemos que paro  



El OllyDBG nos muestra porque Memory Breakpoint When Writing to [0100579C], si recordemos nuestro BPM on Write, donde estamos:

01002FF5   FF05 9C570001    INC DWORD PTR DS:[100579C],
Bueno ahora nos vamos al DUMP Ctrl + G y escribimos esa dirección 100579C
Para ver que hay en esa dirección



Yo lo hago con la ayuda del OllyDBG, nos muestra DS[0100579C]=00000007
Y si vemos el Buscaminas el contador esta en 7, así que ya tenemos la dirección de nuestro contador creo que a todos se nos ocurre nopear esa sección y así nunca mas correrá el tiempo hagámoslo.
Ahora juguemos una partida, removemos el BPM on Write :S vemos que se queda en 1, pero nosotros queremos 0, bueno pues sabemos que en 100579C nos muestra el contador.
Para remover el BPM on Write hacemos,Click derecho BreackPoint >Remove memory BreakPoint
F9 (RUN)

Le Damos a la Carita, para empezar un nuevo juego, nos dirigimos al Dump Ctrl + G escribimos la direccion 100579C  y en el Byte donde veíamos el cambio le ponemos un Breakpoint > Hardware, on write > Byte, justo en el Byte de nuestro contador, en la direccion ya mencionada.


Ahora jugamos y vemos que para en la siguiente dirección 01003830, así que ya tenemos las dos direcciones donde debemos de nopear.

5) Estructura de una DLL:

Cito RVLCN:

.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
.data
.code
Punto_de_Inicio proc hInstance: DWORD, reason:DWORD, rsrvd1:DWORD
mov eax,TRUE
ret
Punto_de_Inicio Endp
// Aquí se programara las funciones.
End Punto_de_Inicio
La estructura de la DLL es similar a un ejecutable, pero hay una diferencia, se
trata de que toda librería necesite un punto de inicio o de entrada como lo dicen
algunos, Es necesario darle un valor EAX como por ejemplo si es TRUE
queremos decir que la DLL se ha cargado correctamente y si pusié ramos
FALSE a EAX estaremos diciendo que se cargo incorrectamente.
Otra cosa que observamos es que la función Punto_de_Inicio tiene 3
parámetros:
hInstance.- Aquí encontramos el manejador de nuestra DLL (handle).
reason.- Este parámetro puede tomar 4 valores segú n la dirección del proceso:
DLL_PROCESS_ATTACH.- Se recibe este valor cuando se carga la librería en el proceso.
DLL_PROCESS_DETACH.- Se recibe este valor cuando se descarga la librería en el proceso.
DLL_THREAD_ATTACH.- Se recibe este valor cuando se crea un hilo de proceso.
DLL_THREAD_DETACH.- Se recibe este valor cuando se ha destruido el hilo del proceso.
rsrvd1.- Parámetro utilizado por windows, normalmente no se utiliza.

6) Creando nuestra DLL

Nos dirigimos al RadASM,  >Archivo>Nuevo Projecto>masm>Dll Project>None>
Elejimos las opciones ASM, Def, Back>Siguiente>Finalizar

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none
  4.  
  5.      include \masm32\include\windows.inc
  6.      include \masm32\include\masm32.inc
  7.      include \masm32\include\user32.inc
  8.      include \masm32\include\kernel32.inc
  9.      include \masm32\macros\macros.asm
  10.      includelib \masm32\lib\masm32.lib
  11.      includelib \masm32\lib\user32.lib
  12.      includelib \masm32\lib\kernel32.lib
  13.  
  14. .data
  15.  
  16. Mensaje db "Inyeccion Completa",0
  17. Titulo db "Programado by Nox"
  18. OldBytes     db 6 dup(0) ; Esto crea 6 bites en la memoria con 0
  19. Patch db 6 dup(90h) ; Esto crea 6 bytes en la memoria con NOP
  20. ;NameW db "Buscaminas",0
  21.  
  22. .data?
  23. ;bmhwnd dd ? ; hWnd del Buscaminas
  24. ProcessId dd ? ; PID del Buscaminas
  25. hProcess dd ? ; Handler del proceso del Buscaminas
  26. OldProtect dd ? ; Protector antiguo del proceso del buscaminas
  27.  
  28. PatchWMine PROTO
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. .code
  37. ;«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  38. DllMain proc hInstance:HINSTANCE, dwReason:dword, lpvReserved:LPVOID
  39.  
  40. .IF dwReason == DLL_PROCESS_ATTACH
  41.  
  42. invoke MessageBox, NULL,addr Mensaje, addr Titulo,MB_OK + MB_ICONINFORMATION
  43. invoke CreateThread, NULL, NULL, addr PatchWMine, NULL, NULL, NULL
  44.  
  45. .ELSEIF dwReason == DLL_PROCESS_DETACH
  46. invoke ExitProcess, NULL
  47.  
  48. .ENDIF
  49.  
  50. ret
  51.  
  52. DllMain endp
  53.  
  54. ;«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  55. PatchWMine proc
  56.  
  57.  
  58. ;invoke FindWindow,NULL,offset NameW ; Busca la ventana del Buscaminas
  59. ;mov bmhwnd,eax
  60. invoke GetCurrentProcessId
  61. mov ProcessId,eax ; Obtenemos el PID
  62. ;invoke GetWindowThreadProcessId,bmhwnd,offset ProcessId ; Busca el PID de esa ventana
  63. invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,ProcessId ; Y con ese PID abre el proceso
  64. mov hProcess,eax
  65.  
  66. invoke VirtualProtectEx,hProcess,01002FF5h,6,PAGE_EXECUTE_READWRITE,offset OldProtect
  67. invoke VirtualProtectEx,hProcess,01003830h,6,PAGE_EXECUTE_READWRITE,offset OldProtect
  68. ;Si Queremos Restablecer los Datos Usamos ReadProcessMemory, para guardarlo
  69. ;en una variable y d hay restablecerlo :
  70. ;invoke ReadProcessMemory,hProcess,01002FF5h,addr OldBytes,6,NULL
  71. invoke WriteProcessMemory,hProcess,01002FF5h,addr Patch,6,NULL ;
  72. invoke WriteProcessMemory,hProcess,01003830h,addr Patch,6,NULL ;  
  73.  
  74. ret
  75.  
  76. PatchWMine endp
  77. ;«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  78. END DllMain

Bueno si ustedes comparan este code con el [Tutorial C++] Lectura/Escritura de detos de una aplicación (externa) | Con ejercicio.

Se usa las siguientes apis:

Cito:

Usé FindWindow para encontrar el handle de la ventana.
Luego GetWindowThreadProcessId para obtener el id del proceso.
Luego OpenProcess para obtener el handle del proceso.

Ahora nosotros no necesariamente necesitariamos el HWND, si no usar  HANDLE, asi que nos evitamos de usar FindWindow y GetWindowThreadProcessId, que al inyectarnos en su proceso podremos usar una API mas exacta en este caso, GetCurrentProccesId que nos devuelve el PID, la misma funcion que hace la API GetWindowThreadProcessId, y sin usar FindWindow.

Un Handle es una referencia a un objeto, la diferencia que queria marcar es que normalmente un HANDLE es local (el HANDLE 0x10 puede ser un archivo o un evento al mismo tiempo en diferentes procesos) y un HWND es global (la ventana 0x2030 es identificada de tal manera en todo el S.O.), por lo que, yo al menos, lo relaciono mas bien con un identificador.

Si, HWND (Handle Window) es para ventanas; igual para las aplicaciones no son mas que numeros enteros (DWORDs en x86), los tipos se usan para mejorar la comprension del codigo.

a) Explicación de las APIs Usadas
GetCurrentProcessId

La función GetCurrentProcessId devuelve el identificador de proceso del proceso de llamada.

DWORD GetCurrentProcessId(VOID)  

Parameters

This function has no parameters.

;«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««


The OpenProcess function returns a handle of an existing process object.

HANDLE OpenProcess(

    DWORD dwDesiredAccess,   // Acceso al Flag
    BOOL bInheritHandle,   // Manejo del Handle  flag
    DWORD dwProcessId    // process identifier
   );   
 


Parameters

dwDesiredAccess

Especifica el acceso al objeto del proceso. Para los sistemas operativos que el control de seguridad de apoyo, este acceso está marcada en contra de cualquier descriptor de seguridad para el proceso de destino. Cualquier combinación de las banderas de acceso siguiente se puede especificar, además de las banderas de acceso STANDARD_RIGHTS_REQUIRED:

Access            Description
PROCESS_ALL_ACCESS   Especifica todas las banderas de acceso posible para el objeto del proceso.


;«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

La función de los cambios VirtualProtectEx la protección de acceso en una región depáginas cometidos en el espacio de direcciones virtuales de un proceso determinado. Tenga en cuenta que esta función difiere de VirtualProtect, que cambia la protección de acceso en el proceso de llamada solamente.

BOOL VirtualProtectEx(

    HANDLE hProcess,   // handle del proceso
    LPVOID lpAddress,   // address of region of committed pages
    DWORD dwSize,   // size of region
    DWORD flNewProtect,   // desired access protection
    PDWORD lpflOldProtect    // address of variable to get old protection  
   );

Parameters

flNewProtect

PAGE_EXECUTE_READWRITE   

Permite ejecutar, leer, y escribir el acceso a la región.   

;«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
La función de WriteProcessMemory escribe en memoria en un proceso determinado. Toda la zona que se  escriba debe ser accesible, o la operación fracasara.
BOOL WriteProcessMemory(

    HANDLE hProcess,   // handle del proceso cuyo proceso se escribe en
    LPVOID lpBaseAddress,   // address para empezar a escribir a
    LPVOID lpBuffer,   // puntero al  buffer para escribir data to
    DWORD nSize,   // number of bytes to write
    LPDWORD lpNumberOfBytesWritten    // actual number of bytes written
   );   
7) Finalizando

Bueno solo compilemos, e inyectemos


Funciona Perfecto, Hasta el Proximo Tutorial

Descargar Tuto.Doc
Descargar Proyecto

Pd: Cualquier duda, Posteenlo así nos ayudaremos todos :D
Pd2: Si alguien tiene info sobre DMA y Estáticas, me seria de mucha ayuda que pusieran el link aqui ?, necesito aclarar dudas para el próximo tutorial
25  Programación / ASM / [?]Incognitas, en assembler u.u en: 4 Diciembre 2009, 17:10 pm
Tengo varias preguntas

1.- Para que se usaria
Código:
assume fs:nothing
?

2.- si no me equivoco se usaria el segmento -fs- para accesder a  TIB, mas especificamente en  fs:[0], pero es la unica utilidad que tiene ese segmento y el
  • por que iria?

3.-
En este codigo, teniendo en cuenta que ya tengo un contenido en los registros esi y edi

Código:
mov     ecx, 0Eh                         
cld                                             ; limpia el byte de dirección de la comparación
repe    cmpsb                              ; compara [esi] con [edi] byte a byte
jnz     Inicio

3.1.-por que usaria cld?
Se que limpia DF, pero no  entiendo segun lei es el que se
usa para recorrer una cadena de manera ascendente o descendente en memoria.

3.2.-
Y el repe va decrementer ecx y comparando esi y edi ahora por que no tiene parametros ese

repe    cmpsb   

osea un destino y una fuente,
segun lei vi esto:

Código:
REPE/REPZ CMPS destino, fuente

pero en ese codigo dan porsentado que va a comparar bit a bit [esi] y [edi]?

4.-

4.1.- Ahora sobre los segmentos aveces veo en el olly

MOV DWORD PTR DS:[40207C],EAX

eso significa que va a mover eax al contenido de memoria en 40207C y en el segmento ds?

Y al revez

add eax,ds:[ebx] , que añadiria el registro eax al contenido de direccion de memoria en el segmento DS Y la direccion EBX?

4.2.-

no solo Usan DS si no tmb SS

eso si no entiendo

MOV DWORD PTR SS:[40207C],EAX

se que es stack segment ose el segmento de pila, y eso es todo pero no entiendo por que lo usan.

4.3.- Ahora hay varios segmentos eso quiere decir que tmb se usan para hacer por ejemplo MOV o ADD, etc?

algun ejemplito xD

Disculpen por la molestia pero e estado buscando info pero nada concreto, u.u




26  Programación / Ingeniería Inversa / Inline Patching NotePad -Asm & OllyDBG- en: 12 Octubre 2009, 21:20 pm
Inyeccion NotePad -Asm & OllyDBG-

Bueno parecer que este post no tiene dueño xD ya que lo an visto en una pagina y el blog donde yo lo vi dicen q no se acuerda de la pagina donde lo vio asi que Creditos para esa pagina ;) y Harner por volverla hacer :D

He y llarmarlo Inyeccion, no se si la verdad lo es pero bue. me gusta como suena xD

Ahora viene el TuTo totalmente escrito por mi e editado por su servidor en la forma de explicacion :)

Este tutorial tiene fines totalmente didácticos. No me responsabilizo por cómo se pueda utilizar el mismo.

IMPORTANTE:Cualquier tipo de error que encuentren el el tutorial, posteenlo. De esta manera aprendemos todos.
IMPORTANTE:El Debugger a usar es el OllyDBG.
IMPORTANTE:Algunas direcciones de Memoria vistas en este Tutorial puede ser Diferente al del lector.
IMPORTANTE:Escribir las Direcciones de Memorias en uso para su proxima utilización en este Tutorial.

Conocimientos previos básicos requeridos.


Conocimiento Basico en ASM.
Conocimiento en Utilización del OllyDBG.


Software necesario


OllyDbg 1.10
NotePad.


1 ) Para Comenzar Ejecutemos El NotePad.

2 ) Abrir el OllyDBG y abrir el NotePad en el Mismo.




3 ) Buscar Espacios Vacios.

Ahora buscaremos espacios vacios DB 00 (en otros Casos algo que el OllyDBG no pudo analizar, y este no lo es xD),

4 ) Editar.

Hagamos lo siguiente:


-Sombrear una cierta cantidad de DB 00
-Click Derecho BINARY - EDIT, o Simplemente Ctrl + E*

*Como se muestra en la imagen



Escribimos Para el Titulo: "Inyeccion By Nox"
Escribimos Para el Mensaje: "Personalizacion"*

*Por supuesto hacerlo Uno por Uno, como se muestran en las imagenes:

Para el Titulo:


Damos OK

Esto Aparecerá:



--> Pues facil Hacer lo siguiente:
-Sombrear el Cod Editado
-Click Derecho ANALYSIS - ANALISYS CODE

Para el Mensaje:



Damos OK

--> Repetir lo Anterior

Este Es Final del Procedimiento:



5 ) Creando un MsgBox.

Hacer lo siguiente*:

PUSH 0; Para el Boton OK
PUSH 30AA7EA2; Pusheamos Nuestra Direccion de memoria ( Addy ) de Nuestro ASCII ( En este caso "Personalizacion")
PUSH 30AA7E91; Pushemaos el Addy de Nuestro Mensaje
PUSH 0; Para nuestro icono, en este caso no habra xD
Call MessageBoxA; Llamar a la API de User32.dll

*Como se muestra en la imagen:


5 ) Llamando a Nuestra Rutina
Ustedes Piensan esta listo pues no! ya que como el programa ya tiene su rutina de ejecucion, no tomara la nuestra por logica u_u, lo que haremos es pues inyectar nuestra rutina en la del programa.

Hacemos lo siguiente:
-Click Derecho GOTO - ORIGEN



Editemos Nuestra primera linea del codigo, lo que haremos es hacer un salto ( jmp ) hacia nuestra rutina ( espero que tengas las addys ya escritas y guardadas )

Hacemos lo siguiente:

Un Jump hacia nuestra rutina:
-Ya situados en el ORIGEN apretar  SPACE
-Hacer un Jump con nuestra addy de la rutina*

*Guardar la syntaxis asta el Call visto! para su proxima utilizacion.

JMP 30AA7EB2



Vemos que se NOPeo el push a una addy del programa ( espero que ya lo hallan guardo ese push y sus direcciones de memoria)



Muy bien, hasta ahora vamos OK, ahora si borramos un par de lineas en algun codigo del programa no va a funcionar asi que hagamos lo siguiente:

6 ) Normalizar nuestra Inyeccion

Hemos borrado dos lineas del programa:

PUSH 70
PUSH 1001898

Normalicemos, Ir hacia el final de nuestra rutina del MsgBox, y hacer lo siguiente:

PUSH 70
PUSH 1001898
JMP 300019F5



Lo que estamos haciendo es hacer un simple JUMP hacia nuestra Rutina Restaurar el Cod del Programa y hacer otro JUMP hacia algunos de los NOP hechos al Editar El Origen, para que el programa ejecute normal pasando por Nuestro MessageBoxA. xD xD

Asi que si tracean el Programa veran esto:



Ahora sabemos que cuando cerremos y habramos devuelta el OllyDBG con el NotePad pues no se guardara lo que modificamos, asi que hagamos lo siguiente:

-Click Derecho COPY TO EXECUTABLE - ALL MODIFICATIONS .
-Se habre otra ventana. Click en COPY ALL
-Cerremos la siguiente.
-Finalmente Cerramos la Ventana D del OLLY ( Aparece en el Marco Superior Derecho)
-Lo Guardan con el Nombre que desean y Listo :D

Aparecera Nuestro MsgBox




Y despues Se abrira nuestro NotePad JuJuJuJu :D

Bueno ya esta la idea xD ahora que podran hacer con esto pues es su imaginacion, como meter ShellCodes :P ya depende de ustedes lo que sea ;)

Si este no es el Resultado revisen bien cada linea escrita por ustedes!, y les Saldra

Atte: Member UnderNixerTeam
27  Programación / Ingeniería Inversa / Problemas con Message Breackpoints en: 1 Septiembre 2009, 18:06 pm
Bueno Bueno aki mi duda

para obtener el serial y nombre del algun programa, debemos detenernos en donde ingresa nuestro nombre y serial o los datos que se nos pidan

ahora

muchos programadores sabedores de que para obtener el serial debemos detenernos aqui, para complicar las cosas, no utilizan apis para ingresar el texto si no que lo hacen mediante mensajes de Windows.

bueno evito tanta explikacion y m voy al punto

Aquí es donde se pierden muchos porque dicen que parando con este método, quedan en el medio de la nada ya que la dirección de retorno, no pertenece al programa pero retornar es muy sencillo.



stoy en el tuto 12 de ricardo narvaja y esa parte no entiendo aver kien m puede ayudar u.u

se q aki hay un mod de CrackLatinos y debe saber sobre esto por q ponen esa img y no entiendo de donde la sakan hay es donde m pierdo u_u

aver si m pueden ayudar
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines