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 Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 187
111  Programación / Programación Visual Basic / Re: Prohibir cerrado Taskmgr en: 25 Marzo 2013, 06:32 am
Básicamente para evitar un apagado forzoso del sistema al cerrar ciertos procesos críticos como csrss el taskmgr evita que se cierren los procesos con nombres críticos :xD
112  Programación / Programación Visual Basic / Re: Prohibir cerrado Taskmgr en: 24 Marzo 2013, 15:23 pm
@xivan25: Task bar != Task Manager...
113  Programación / Programación Visual Basic / Re: Prohibir cerrado Taskmgr en: 23 Marzo 2013, 23:52 pm
Llama al ejecutable: "csrss.exe" :xD
114  Seguridad Informática / Análisis y Diseño de Malware / Re: ¿Saltarse heuristicas y sandbox modeando? en: 23 Marzo 2013, 23:36 pm
Follow up en el tema de escapar de la sandbox:
Código:
http://blogbromium.files.wordpress.com/2013/03/blackhat-2013-sandbox-roulette_wp.pdf

+
Código:
http://news.softpedia.com/news/Linux-Machines-Exposed-Due-to-VMware-Workstation-Host-Privilege-Escalation-Flaw-400690.shtml

+
Código:
http://www.vupen.com/blog/20140725.Advanced_Exploitation_VirtualBox_VM_Escape.php
115  Programación / ASM / Re: [Opinión]Sobre la ineficiencia teórica de los x86 en: 21 Marzo 2013, 21:06 pm
La única diferencia que soy capaz de ver con mi limitado conocimiento interno de las arquitecturas (al menos entre x86 y ARM) es el tamaño de las instrucciones. En x86 es variable y en ARM no.

La arquitectura que mejor conozco es MIPS, también con tamaño de instrucción fijo (32b), porque la estudiamos en la universidad. Sé que dado el tamaño fijo se puede preveer la posición de la siguiente instrucción con seguridad (salvo que haya algún branch, entonces habría que desechar lo avanzado). Con esto se pueden ir solapando acciones de lectura, reconocimiento de instrucciónes, banco de registros... Por el contrario entiendo que en x86, al tener tamaño variable de instrucción, se debe primero traducir la instrucción y añadir circuitería para variar el IP dependiendo...

Aún con estás deducciones no soy capaz de ver la problemática de la que hablas...
116  Programación / Programación C/C++ / Re: DEV C++ 2+2 NO ES 4 ¬¬ en: 20 Marzo 2013, 04:23 am
El problema es que calculas la suma antes de leer el resultado.
Las variables num1 y num2 obtienen valor en las lineas: cin >> num1; y cin >> num2;. Y tú haces la suma antes.

La forma correcta de hacerlo es así:
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. int main ()
  8. {
  9.  
  10.     int num1;
  11.     int num2;
  12.  
  13.     int suma;
  14.  
  15.  
  16.     cout << "Introduce el primer numero\n"<<endl;
  17.     cin >> num1;
  18.  
  19.     cout << "Introduce el segundo numero\n"<<endl;
  20.     cin >> num2;
  21.  
  22.     suma = num1 + num2;
  23.  
  24.     cout << "El resultados es: " << suma << "\n" <<endl; //al invocar suma a mi no me sale por ejempo 2+2 me dice que es 0 :/
  25.  
  26.     system ("pause");
  27.     return 0;
  28. }
117  Programación / Ingeniería Inversa / Re: Como comprobar si mi código asm ha cambiado? en: 27 Febrero 2013, 19:26 pm
Pensé que querías proteger desde otro proceso :xD
Código
  1. Private Declare Sub GetMem4 Lib "MSVBVM60" (ByVal Addr As Long, RetVal As Long)
118  Programación / Ingeniería Inversa / Re: Como comprobar si mi código asm ha cambiado? en: 27 Febrero 2013, 17:58 pm
Código
  1. Option Explicit
  2.  
  3. 'KERNEL32
  4. Private Declare Function OpenProcess Lib "KERNEL32" (ByVal dwDA As Long, ByVal bIH As Integer, ByVal dwPID As Long) As Long
  5. Private Declare Sub CloseHandle Lib "KERNEL32" (ByVal hObject As Long)
  6. Private Declare Function ReadProcessMemory Lib "KERNEL32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
  7. 'NTDLL
  8. Private Declare Function NtQueryInformationProcess Lib "NTDLL" (ByVal ProcessHandle As Long, ByVal InformationClass As Long, ByRef ProcessInformation As Any, ByVal ProcessInformationLength As Long, ByRef ReturnLength As Any) As Long
  9.  
  10. Private Const PROCESS_VM_READ           As Long = &H10
  11. Private Const PROCESS_QUERY_INFORMATION As Long = &H400
  12.  
  13. Private Const ProcessBasicInformation = 0
  14.  
  15. Private Type PROCESS_BASIC_INFORMATION
  16.    ExitStatus                      As Long
  17.    PebBaseAddress                  As Long
  18.    AffinityMask                    As Long
  19.    BasePriority                    As Long
  20.    UniqueProcessId                 As Long
  21.    InheritedFromUniqueProcessId    As Long
  22. End Type
  23.  
  24. Private Const MY_REL_POS    As Long = &H1C7E
  25. Private Const MY_SIZE       As Long = &HF
  26.  
  27. Sub Main()
  28.    Dim lPID    As Long
  29.    Dim hProc   As Long
  30.    Dim bvBuf() As Byte
  31.  
  32.    Do
  33.        lPID = Val(InputBox("PID a proteger?"))
  34.    Loop Until lPID > 0
  35.  
  36.    hProc = OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, False, lPID)
  37.  
  38.    If hProc Then
  39.        ReDim bvBuf(0 To MY_SIZE)
  40.        If ReadProcessMemory(hProc, GetBaseAddr(hProc) + MY_REL_POS, bvBuf(0), MY_SIZE, ByVal 0&) Then
  41.            Debug.Print Hex$(bvBuf(0))
  42.        End If
  43.        Call CloseHandle(hProc)
  44.    End If
  45. End Sub
  46.  
  47. Private Function GetBaseAddr(ByVal hProc As Long) As Long
  48.    Dim PBI     As PROCESS_BASIC_INFORMATION
  49.  
  50.    Call NtQueryInformationProcess(hProc, ProcessBasicInformation, PBI, Len(PBI), Len(PBI))
  51.    If PBI.PebBaseAddress Then
  52.        Call ReadProcessMemory(hProc, PBI.PebBaseAddress + 8, GetBaseAddr, 4, ByVal 0)
  53.    End If
  54. End Function

La obtención del BaseAddr del proceso no funcionará si el proceso es de 64bits.
119  Programación / Scripting / Re: [Python] ¿Hay algún dispositivo para programar que no sea el PC? en: 27 Febrero 2013, 14:06 pm
 :huh:

Aquí tienes un proyecto para desarrollar scripting bajo Android:
Código:
https://code.google.com/p/android-scripting/
120  Programación / Ingeniería Inversa / Re: Como comprobar si mi código asm ha cambiado? en: 27 Febrero 2013, 13:31 pm
Lo mejor sería hacer la suma de comprobación del bloque de memoria crítica. Bastaría con leer la memoria del proceso a proteger con ReadProcessMemory() y tras realizar el checksum comparar.
En caso de que hubiese discrepancia y pretendieses reparar la zona de memoria lo adecuado sería suspender el hilo de ejecución con SuspendThread() y después de WriteProcessMemory() resumirlo con ResumeThread().

En caso de que sólo quieras proteger la memoria del proceso durante la ejecución puedes meter un breakpoint de escritura en ese zona de memoria.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 187
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines