Mmm los ejemplo que he encontrado de Swig han sido de C, y bueno la verdad no me sirve porque la clase esta en C++, pero de todas formas intentare a ver si puedo hacer algo, gracias por la respuesta
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úCitarLeer desde archivos de texto
Así como abrimos archivos y podemos escribir en ellos, también existe la posibilidad de leer desde ellos, para lo cual utilizaremos readline, y readall.
Como se puede imaginar, con readline iremos leyendo una a una las líneas del archivo (cada vez que pongamos readline leeremos solo una), con este, leemos una línea, y el puntero se situa al final de la línea, para que a la próxima ejecución de esta función, sea la línea siguiente la que sea leída. Con readall en cambio, leeremos el total de archivo.
Existe además una función llamada skipline, con la cual saltaremos la lectura de una línea.
Ejemplo:
Set objfso = createobject("scripting.filesystemobject")
Set archivotexto = objfso.opentextfile("C:\archivo.txt",1) 'abrimos el archivo
msgbox archivotexto.readline 'leemos una linea, la primera
archivotexto.skipline 'saltamos una linea
msgbox archivotexto.readline 'leemos una linea, la tercera
archivotexto.close 'cerramos el archivo
Atributos de archivos y carpetas
A continuación explicaré el método mediante el cual, se puede obtener, o bien cambiar, los atribuos de archivos y carpetas (es prácticamente igual para ambas cosas)...
cdef extern from "pytiodbc.cpp":
openconn(char *dsn, char *user, char *pwd)
def connect(dsn,user,pwd)
python son de tipo str
if not isinstance(dsn,unicode):
if not isinstance(dsn,str):
raise ValueError("'dsn' requires text input, got %s" % type(text))
udsn=dsn.encode('UTF-8')
if not isinstance(user,unicode):
if not isinstance(user,str):
raise ValueError("'user' requires text input, got %s" % type(text))
uuser=user.encode('UTF-8')
if not isinstance(pwd,unicode):
if not isinstance(pwd,str):
raise ValueError("'user' requires text input, got %s" % type(text))
upwd=pwd.encode('UTF-8')
#Llamamos a la función definida en pytiodbc.cpp
ret=openconn(udsn,uuser,upwd)
#include "tiodbc.hpp"
#include <iostream>
using namespace std;
bool openconn(char *dsn, char *user, char *pwd);
bool openconn(char *dsn, char *user, char *pwd){
// Crea la conexión al ODBC
tiodbc::connection my_connection(dsn, user, pwd);
// Verifica que la conexión sea éxitosa
if (my_connection.connected())
return true;
else
return false;
// Se Desconecta
my_connection.disconnect();
}
import sys
import os
import pytiodbc
print "Ejemplo conectar a Base de datos"
resp = pytiodbc.connect ("DSN=Test","Test","Test")
print resp
os.system("pause")
Citar
Como se puede observar el EIP quedo sobreescrito por 62 y a partir de la dirección 0022FB60 tal cual se puede observar en la imagen, lo que ahora sigue es conocer el tamaño de nuestra cadena a inyectar en el buffer, para reservar espacio y conocer nuestra dirección de salto o retorno hacia el shellcode resultante.