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ú

Mensajes - .:UND3R:.

#951
Ingeniería Inversa / Re: Hacking Juegos.
5 Julio 2013, 16:30 PM
Este tutorial que hice está basado en el estudio, es decir si es que deseas aprender y entender cómo funciona cada cosa (orientado a la Ing. Inversa):

http://foro.elhacker.net/ingenieria_inversa/tutorialcreacion_de_trainers_con_ollydbg_y_cheat_engine-t342664.0.html

Quizás es lo que andas buscando, saludos y suerte.
#952
apuromafo:
Muchas gracias por la info, es justo lo que había leído antes de preguntar, entendía la estructura pero desconocía esa característica de los punters de LDR_DATA, saludos.

karmany:
Honestamente me han pasado muchas cosas durante el transcurso de este tiempo, debo admitir que he dejado la ingeniería inversa enfacada en crackmes, debido a que tenía la gran obsesión de aprender lenguaje ensamblador, luego que aprendí los fundamentos de este lenguaje, me animé por aprender otros lenguajes algo de más alto nivel, (para tener más cartas debajo de la manga), luego de eso llegué casi mi punto de origen: el hermano de la ing inversa, creación de exploit, hoy estoy estudiando la forma de poder elaborar exploit, debo admitir que se me ha hecho muy fácil y todo se lo debo a ingeniería inversa, pero aun así estoy investigando muchas estructuras que antes solo las conocía por el nombre, o poseía una base en general, ya aprendiendo algo de exploit, estoy diseñando una shellcode genérica para win32, la cual puede ser ejecutada en cualquier versión de Windows ya que no posee API's harcodeadas (no tengo problemas en dárselas), pero debo admitir que siempre ando al tanto de Ing. inversa, depurar un programa me trae mucha nostalgia y recuerdos cuando hacía tutoriales, pero eso es bueno por que cuando domine la base sobre creación de exploit ya podré crear múltiples tutoriales y enfocarme en ing. inversa, saludos

CL1O: No es para nada difícil lo que publiqué, solo debes estudiar sobre la estructura PEB y su campo LDR_DATA, que es lo que ha publicado apuromafo, saludos.
#953
No me manejo en el tema de Dongles, pero son llaves USB las cuales interactuan con el programa por lo que algunas partes del programa las posee el USB por lo que se tiende a hacer es emular estas partes con un programa que se encargue de dumpear esto, de todas maneras se podría decir que "es el paso siguiente" de la Ingeniería inversa aplicada a software, por lo que si tu interés no es para nada aprender, te recomiendo que consigas a alguien que haga este trabajo (desconozco los co$to$), pero si deseas sumergirte en el mundo de la Ingeniería inversa, bienvenido seas.
#954
Los punteros de _PEB_LDR_DATA van de acuerdo al valor al cual apuntan:



Costó entenderlo, pero se logró jeje
#955
Comienza con el F.A.Q te veo muy pero muy apresurado pero esa velocidad no es la correcta para la Ingeniería inversa, debes tener demasiada paciencia e ir con calma para tener una base sólida, saludos.
#956
Hola a todos tengo una duda con la estructura:

_LDR_DATA_TABLE_ENTRY
InLoadOrderModuleList
InMemoryOrderModuleList
InInitializationOrderModuleList
...

Mi duda es si: ¿Esta estructura es siempre así? (según a donde me dirija con Loader data)

Me explico es que si en LoaderData tomo + 0C (InLoadOrderModuleList) siempre hay 6 DWORD (las tres LIST_ENTRY, cada una con flink y blink) antes del campo BaseAddress, pero si en el LoaderData tomo + 1C (InInitializationOrderModuleList) solo hay 2 DWORD antes del BaseAddress, ahora si tomo + 14 (InMemoryOrderModuleList),  hay 4 DWORDS antes del BaseAddress, eso es normal?  a ver si me explican, saludos.
#957
Scripting / Re: Problemas con scripts Python
3 Julio 2013, 22:21 PM
Solucionado: El problema era la versión usé la 2.7x y me ha funcionado todo a perfección, saludos y gracias  ;-)
#958
Scripting / Problemas con scripts Python
3 Julio 2013, 19:18 PM
Hola a todos estoy teniendo dificultades con los scripts en mi sistema (Windows XP), me he descargado el instalador para windows 32bit y lo he instalado en Windows XP SP 2 en una máquina virtual, pero no logro ejecutar scripts, generalmente me marcan errores, ¿A qué se puede deber este inconveniente?, adjunto un script que me marca el siguiente error:

CitarC:\Documents and Settings\Administrador\Escritorio\omelet>w32_SEH_omelet.py w32_
SEH_omelet.bin shellcode.bin hola.txt
  File "C:\Documents and Settings\Administrador\Escritorio\omelet\w32_SEH_omelet
.py", line 88
    """
      ^
SyntaxError: invalid syntax

Código (python) [Seleccionar]
import math
import sys

def HexEncode(string):
  result = ''
  for char in string:
    result += '\\x%02X' % ord(char)
  return result

def Main(my_name, bin_file, shellcode_file, output_file, egg_size = '0x7F', marker_bytes = '0x280876'):
  if (marker_bytes.startswith('0x')):
    marker_bytes = int(marker_bytes[2:], 16)
  else:
    marker_bytes = int(marker_bytes)
  if (egg_size.startswith('0x')):
    egg_size = int(egg_size[2:], 16)
  else:
    egg_size = int(egg_size)
  assert marker_bytes <= 0xFFFFFF, 'Marker must fit into 3 bytes.'
  assert egg_size >= 6, 'Eggs cannot be less than 6 bytes.'
  assert egg_size <= 0x7F, 'Eggs cannot be more than 0x7F (127) bytes.'
   
  bin = open(bin_file).read()
  marker_bytes_location = ord(bin[-3])
  max_index_location = ord(bin[-2])
  egg_size_location = ord(bin[-1])
  code = bin[:-3]

  shellcode = open(shellcode_file).read()
 
  max_index = int(math.ceil(len(shellcode) / (egg_size - 5.0)))
  assert max_index <= 0xFF, ('The shellcode would require %X (%d) eggs of  %X '
      '(%d) bytes, but 0xFF (255) is the maximum number of eggs.') % (
      max_index, max_index, egg_size, egg_size)
 
  marker_bytes_string = ''
  for i in range(0,3):
    marker_bytes_string += chr(marker_bytes & 0xFF)
    marker_bytes >>= 8

  max_index_string = chr(max_index)
  egg_size_string = chr(egg_size - 5)
  # insert variables into code
  code = code[:marker_bytes_location] + marker_bytes_string + code[marker_bytes_location+3:]
  code = code[:max_index_location] + max_index_string + code[max_index_location+1:]
  code = code[:egg_size_location] + egg_size_string + code[egg_size_location+1:]
  output = [
    '// This is the binary code that needs to be executed to find the eggs, ',
    '// recombine the orignal shellcode and execute it. It is %d bytes:' % (
      len(code),),
    'omelet_code = "%s";' % HexEncode(code),
    '',
    '// These are the eggs that need to be injected into the target process ',
    '// for the omelet shellcode to be able to recreate the original shellcode',
    '// (you can insert them as many times as you want, as long as each one is',
    '// inserted at least once). They are %d bytes each:' % (egg_size,) ]
  egg_index = 0
  while shellcode:
    egg = egg_size_string + chr(egg_index ^ 0xFF) + marker_bytes_string
    egg += shellcode[:egg_size - 5]
    if len(egg) < egg_size:
      # tail end of shellcode is smaller than an egg: add pagging:
      egg += '@' * (egg_size - len(egg))
    output.append('egg%d = "%s";' % (egg_index, HexEncode(egg)))
    shellcode = shellcode[egg_size - 5:]
    egg_index += 1
  open(output_file, 'w').write('\n'.join(output))

if __name__ == '__main__':
  if len(sys.argv) == 1 or sys.argv[1] in ('-h', '-?', '/h', '/?'):
    print """Syntax:
    w32_SEH_omelet.py "omelet bin file" "shellcode bin file" "output txt file"
        [egg size] [marker bytes]

Where:
    omelet bin file = The omelet shellcode stage binary code followed by three
                      bytes of the offsets of the "marker bytes", "max index"
                      and "egg size" variables in the code.
    shellcode bin file = The shellcode binary code you want to have stored in
                      the eggs and reconstructed by the omelet shellcode stage
                      code.
    output txt file = The file you want the omelet egg-hunt code and the eggs
                      to be written to (in text format).
    egg size =        The size of each egg (legal values: 6-127, default: 127)
    marker bytes =    The value you want to use as a marker to distinguish the
                      eggs from other data in user-land address space (legal
                      values: 0-0xFFFFFF, default value: 0x280876)
"""
  assert len(sys.argv) >= 4 and len(sys.argv) <= 6, (
      'Incorrect arguments; run "w32_SEH_omelet.py -?" for help.')
  exit(Main(*sys.argv))


El script debería funcionar correctamente (estoy siguiendo un tutorial en donde se menciona, y no da problemas)

a ver si me ayudan, saludos.
#959
Ingeniería Inversa / Re: cmdline.hlp?
3 Julio 2013, 08:02 AM
Muchas gracias por la info, veré si logro convertirlo a chm (así se puede visualizar de forma directa con el plugin), otra forma sería editar el commandbar.dll, ya veré que tal gracias :D
#960
Ingeniería Inversa / cmdline.hlp?
2 Julio 2013, 04:23 AM
No logro dar con la documentación de CommandLine (OllyDbg Plugins), me he percatado que consta con muchos comandos de los cuales siempre he usado como máximo tres a ver si alguien puede compartirlo, saludos.