OLLYDBG

Iniciado por test123, 12 Julio 2009, 20:12 PM

0 Miembros y 1 Visitante están viendo este tema.

test123

Buenos días , bueno a lo que voy , me gustaría asistencia con el programa OLLYDBG , se como usarlo pero me gustaria saber si despues te haber atacado un proceso y editado se puede con al algun plugin guardar esa nueva .exe . Yo uso el plugin uhooker para editar la conexion de un programa y con un archivo de conf de phyton edito la conexion de xxxxxxx a yyyyy .


Este el comando que usa :

#int connect(
# __in  SOCKET s,
#  __in  const struct sockaddr* name,
#  __in  int namelen
#);
def connect_handler_before(hookcall):
   uhookerAPI = hookcall.proxy

   _SOCKET = hookcall.params[0]
   _SOCKADDR = hookcall.params[1]
   _SOCKADDRLEN = hookcall.params[2]

   if _SOCKET == 0:
      print "Socket is null!"
      hookcall.sendack()
      return

   if _SOCKADDR == 0:
      print "SockAddr is NULL!"
      hookcall.sendack()
      return

   #print "SOCKET: %X" % (_SOCKET)   
   #print "SOCKADDR: %X" % (_SOCKADDR)
   #print "SOCKADDRLEN: %d" % (_SOCKADDRLEN)

   data = uhookerAPI.readmemory( _SOCKADDR, _SOCKADDRLEN )

   #for x in data:
   #   print hex(ord(x))

   IPaddr_str = ""
   IPaddr_num = ""
   Port_num = sin_port = struct.unpack("!H", data[2:4] )[0]
   
   sin_family = struct.unpack("H", data[0:2] )[0]
   sin_port = struct.unpack("!H", data[2:4] )[0]
   ipv4_addr = struct.unpack("!L", data[4:8])[0]

   if sin_family == 2:
      print "Coordinate di connessione -> %d.%d.%d.%d:%d" % ( ord(data[4]), ord(data[5]), ord(data[6]), ord(data[7]), sin_port)

   else:
      print "family: %X " % sin_family
      print "familiy not supported!"
      hookcall.sendack()
      return
   
   if "%d.%d.%d.%d" % ( ord(data[4]), ord(data[5]), ord(data[6]), ord(data[7]) ) != IPaddr_str:
      if Port_num == 11000:
          Port_num = 11002
      elif Port_num == 12000:
          Port_num = 13000
      elif Port_num == 22000:
          Port_num = 13000
      else:
          Port_num = 13001

      print "Cambio le coordinate della connessione in: %s:%d" % (IPaddr_str, Port_num)
      
      newport = struct.pack("!H", Port_num)
      newip = socket.inet_aton( IPaddr_num )

      uhookerAPI.writememory( _SOCKADDR+2, 2, newport)
      uhookerAPI.writememory( _SOCKADDR+4, 4, newip)

      hookcall.sendack()
      return

   else:
      hookcall.sendack()
      return



El problema que tengo es que cada vez que voy a usar este programa tengo que hacer lo mismo

karmany

Cuando hagas modificaciones en un ejecutable con OllyDbg puedes guardar los cambios del siguiente modo:
pulsas botón derecho ratón --> copy to executable --> all modifications

Sale una nueva ventana y pulsas el botón: copy all

Después te sale otra ventana y simplemente pulsas:
botón derecho ratón --> save file

Esto es para OllyDbg 1.10. También te comento que a veces si haces modificaciones en una sección y realizas la copia desde otra sección es posible que no se modifique. Yo modifico sección por sección.

test123

Y como hago para editar sección por sección?