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ú

Temas - sukokiin

#1
[youtube=640,360]https://www.youtube.com/watch?v=qf60SP5-YLQ[/youtube]

SI damos un pequeño repaso de manera simple entendemos que Python al tratarse de un lenguaje interpretado se traduce a tiempo real de ejecución, es decir, se traduce linea uno y se ejecuta, se traduce linea dos y se ejecuta, lenguajes interpretados van traduciendo las instrucciones a tiempo de ejecucion, en cambio lenguajes compilados como C y C++ son traducidos en tiempo de compilación, para mas tarde ser ejecutado todo el conjunto en lenguaje maquina de una.
Es decir C traduce el lenguaje de alto nivel a lenguaje maquina y luego ejecuta el programa, en cambio Python ejecuta el programa mientras va traduciendo a tiempo real el lenguaje maquina.
Esto ocasiona lentitud en lenguajes Interpretados, y por eso entra en juego una maravillosa API que permite extender programas de Python haciéndolos mas veloces mediante llamadas a funciones e métodos ya compilados en C y C++.

Como haríamos eso?

Lo primero es tener instalado "Python.h" lo haremos mediante el siguiente comando para LInux, Ubuntu, etc...
(En caso de WIndows, VIsual Studio por ejemplo,Propiedades -> Opciones de Proyecto -> C/C++ -> General -> Directorios de inclusión adicionales)
Recomiendo la programación de extensiones solamente en Linux, Ubuntu, Debian o derivados...

Código (actionscript) [Seleccionar]
sudo apt-get install python-dev -y

SI no tenemos instalado C++ lo podemos instalar mediante ->

Código (actionscript-french) [Seleccionar]
sudo apt-get install g++

Una vez instalado todo simplemente escribiremos nuestra primera extensión de Python

Código (cpp) [Seleccionar]
#include "Python.h"
#include "iostream"

static PyObject* Operacion_Suma(PyObject* self, PyObject* args)
{
float num1,num2;
float resultado;
std::cout << "Inserte dos numeros separados por un espacio en blanco para realizar una suma.\n";
std::cin >> num1;
std::cin >> num2;
resultado = num1 + num2;
std::cout << "El resultado de la suma " << num1 << " + " << num2 << " es = " << resultado;

Py_RETURN_NONE;
}

static PyObject* Operacion_Resta(PyObject* self, PyObject* args)
{
float num1,num2;
float resultado;
std::cout << "Inserte dos numeros separados por un espacio en blanco para realizar una resta.\n";
std::cin >> num1;
std::cin >> num2;
resultado = num1 - num2;
std::cout << "El resultado de la resta " << num1 << " - " << num2 << " es = " << resultado << std::endl;

Py_RETURN_NONE;
}

static PyObject* Operacion_Multiplicacion(PyObject* self, PyObject* args)
{
float num1,num2;
float resultado;
std::cout << "Inserte dos numeros separados por un espacio en blanco para realizar una multiplicacion.\n";
std::cin >> num1;
std::cin >> num2;
resultado = num1 * num2;
std::cout << "El resultado de la multiplicacion " << num1 << " * " << num2 << " es = " << resultado << std::endl;

Py_RETURN_NONE;
}
static PyObject* Operacion_RaizCuadrada(PyObject* self, PyObject* args)
{
float num1;
float resultado;
std::cout << "Inserte un numero para calcular la raiz cuadrada.\n";
std::cin >> num1;
resultado = sqrt(num1);
std::cout << "El resultado es = " << resultado;

return Py_BuildValue("f",resultado);
}


Como observáis, el código comienza importando la librería "Python.h" la que ya incluye dentro de ella librerías como -> limits.h, string.h, stdlib.h, stdio.h, Entre otras, yo también importado "iostream" para hacer el codigo de C++, seguimos y declaramos una función de tipo puntero static PyObject la cual almacenara una dirección en memoria que luego sera llamada desde el Interprete de Python, si queremos pasar argumentos al invocar nuestra función en Python debemos especificar ->
Código (cpp) [Seleccionar]
if(!PyArg_ParseTuple(args,"ff",&num1,&num2))
return NULL;
donde "ff" es el tipo de dato, ya sea int, string, char, float, double. (Información mas especifica podéis encontrarla en la documentación de la API), si seguimos observando el código podemos observar la funcion de retorno de tipo
Código (cpp) [Seleccionar]
Py_RETURN_NONE la cual no devolverá nada al finalizar la función. Podemos definir tantas funciones como queramos todas siempre llamadas
Código (cpp) [Seleccionar]
static PyObject* NombreFuncion(PyObject* self, PyObject* args)

Podemos fijarnos que hay un método con una función que si nos va a devolver un valor al finalizar la función y este es
Código (cpp) [Seleccionar]
return Py_BuildValue("f",resultado); le especificamos la f de flotante y el dato del mismo tipo siempre, que queremos devolver al finalizar la función.

Ya tenemos uno, dos o siete funciones en nuestra librería para Python, ahora lleva la parte de definirlas en una lista, en la cual definiremos un nombre, invocaremos la función, y definiremos una descripción.

Código (cpp) [Seleccionar]
static PyMethodDef OperacionMethods[]=
{
{"Suma",Operacion_Suma,METH_VARARGS,"Realiza una suma de dos numeros."},
{"Restar",Operacion_Resta,METH_VARARGS,"Realiza una resta de dos numeros."},
{"Multiplicacion",Operacion_Multiplicacion,METH_VARARGS,"Realiza una multiplicacion de dos numeros."},
{"Raiz",Operacion_RaizCuadrada,METH_VARARGS,"Calcula la raiz cuadrada."},
{NULL,NULL,0,NULL}
};


Si podemos ver la lista, observamos en la primera que hemos dado nombre a la función, ese mismo nombre, "Suma", "Restar", etc... Sera el identificador mediante el cual podremos hacer uso de dicha funcion en Python, seguidamente ingresamos el nombre de la funcion, seguido de METH_VARARGS, y una pequeña descripción, como paso obligatorio para no generar diversos errores en la construcción de nuestro programa deberemos pasarle los parámetros ->
Código (cpp) [Seleccionar]
{NULL,NULL,0,NULL}.

Entonces sabemos que ->
Código (cpp) [Seleccionar]

static PyObject* NombreFuncion(PyObject* self, PyObject* args)
{
//Aqui las variables, constantes, estructuras, etc...
       int var;
       struct Persona personas;

    if(!PyArg_ParseTuple(args,"i",&var))  //En caso de querer pasar argumentos a la hora de invocar, donde "i" es el tipo de dato y & operador direccion de apunta a la variable en Python.
return NULL;

//Aqui todas las instrucciones

Py_RETURN_NONE;
}
static PyMethodDef IdentificadorMethods[]=
{
{"IdentificadorParaPython",NombreFuncion,METH_VARARGS,"Realiza una suma de dos numeros."},
{NULL,NULL,0,NULL}
};




Y para finalizar solo quedaría iniciar todas las funciones pasadas por lista, es recomendable utilizar una extensión para funciones que tengan relación entre si, no crear librerías con funciones dedicadas a tareas muy distintas entre si, pues crearíamos confusión al usuario y a nosotros mismo.
Es decir una librería para funciones de flujo, y otra para funciones de operaciones matematicas por ejemplo.

Código (cpp) [Seleccionar]
PyMODINIT_FUNC initOperacion(void)
{
(void)Py_InitModule("Operacion",OperacionMethods);
}
Aqui iniciamos todas las funciones, vendria a ser el main de un programa sin API.
Código (cpp) [Seleccionar]
PyMODINIT_FUNC initOperacion(void)
{
(void)Py_InitModule("NombreParaPython",IdentificadorMethods);
}


Con esto tendriamos definida una extension en C o C++, en este caso C++, pero ahora quedaria definirla en un archivo .py para poder construirla y instalarla.
Código (python) [Seleccionar]
from distutils.core import setup, Extension

module = Extension('Identificador',sources = ['modulo.cpp'])

setup (name = 'Operaciones',
      version = '1.0',
       author = 'RayBanBOY',
       description = 'Calculadoras',
ext_modules = [module])


Y ya estaria listo para ser usado, simplemente ejecutamos dentro de la carpeta donde se encuentras los dos archivos ->

Código (apache) [Seleccionar]
python setup.py build
python setup.py install

Y como extra os dejo con un script de python que hace uso de esta extension ->
Código (python) [Seleccionar]
from distutils.core import setup, Extension

module = Extension('Operacion',sources = ['modulo.cpp'])


setup (name = 'Operaciones',
      version = '1.0',
       author = 'RayBanBOY',
       description = 'Calculadoras',
ext_modules = [module])

Código (python) [Seleccionar]
import Operacion as calc

if __name__ == "__main__":
  print('Ingrese un numero para operar.\n')
  print('\t1(Suma), 2(Resta), (3Multiplicacion), 4(Raiz Cuadrada).\n')
  operando = int(input())

  if operando == 1:
     calc.Suma()
     print('\n')
  elif operando == 2:
     calc.Restar()
     print('\n')
  elif operando == 3:
     calc.Multiplicacion()
     print('\n')
  elif operando == 4:
     calc.Raiz()
     print('\n')







La documentación y mas detalles lo podéis encontrar en mi canal de YouTube.
Gracias por tu tiempo y ayúdame a seguir mejorando.
#2
Vamos a estar utilizando en esta serie de cursos 5 librerías desarrolladas para Seguridad Informática en Python3.
En este primer vídeo nos introducimos a BeautifulSoup, Scrapy e Requests.
En vídeos consecutivos profundizaremos sobre estas tres librerias ya mencionadas y a su vez veremos Selenium (Destinada para evaluar el comportamiento de Aplicaciones Web), Twisted, que soporta varias arquitecturas como (TCP, UDP, SSL/TLS, IP, HTTP, XMPP, NNTP, IMAP, SSH, IRC, FTP)
y unas cuantas cosas mas podemos realizar servidores web ente otros, y por ultimo Scapy, (Para enviar, espiar, diseccionar e construir paquetes de red)

Os invito a todo a que os suscribais, ya que vídeo a vídeo intento mejorar mi calidad como instructor.
[youtube=640,360]https://www.youtube.com/watch?v=NSiDjxQbxDE&t[/youtube]
#5
Muy buenas aqui les traigo un truquito sin necesidad de crackear nada, asi nos aliviamos la posibilidad de descargar archivos maliciosos etc...
Solamente con la iniciacion del launcher y ingresamos las key generadas con el .exe que os traigo aqui en el tutorial sin necesidad de instalar ni registrarnos en ningun lado.
No se desde cuando ni hasta cuando estara disponible este truco, pero aqui lo teneis por si alguno no lo sabia.

Necesitais JAVA la ultima version actualizada porfavor.

Requisitos mínimos PC de Minecraft:
Sistema operativo: Windows Vista SP2 32 bits, se requiere Java Runtime Environment (JRE) 6 o superior.
CPU: AMD K7, Intel Pentium 4
Memoria: 2GB RAM
GPU o Tarjeta gráfica: integrada
DirectX: 10
Espacio libre en disco hdd o ssd: 93mb
Requisitos recomendados PC de Minecraft:
Sistema operativo: Windows 8 64 bits, se requiere Java Runtime Environment (JRE) 6 o superior.
CPU: AMD 64 K8, Intel Pentium D o Dual Core
Memoria: 4GB RAM
GPU o Tarjeta gráfica: AMD Radeon  o nVidia Geforce 6
DirectX: 10
Espacio libre en disco hdd o ssd: 150mb

[youtube=640,360]https://www.youtube.com/watch?v=eN6HHhPt7pU&t=3s[/youtube]
#6
[youtube=640,360]https://www.youtube.com/watch?v=dOnUSgUxjJs[/youtube]

Muy sencillo con herramientas basicas de script kiddie
#7
GNU/Linux / Rastrear Cuentas.
25 Julio 2019, 22:29 PM
[youtube=640,360]https://www.youtube.com/watch?v=KLxok847vmg[/youtube]
#8
[youtube=640,360]https://www.youtube.com/watch?v=MRVz1jRAPHM&t=167s[/youtube]

[youtube=640,360]https://youtu.be/jxuoFwbJLO0[/youtube]




[youtube=640,360]https://www.youtube.com/watch?v=PNW_KoKjSas[/youtube]

Segunda parte de este curso de C++, donde aprendemos Variables basicas y Operadores basicos;
Gracias por vuestro tiempo seguimos mejorando la calidad del canal.




[youtube=640,360]https://www.youtube.com/watch?v=nSLtJdSpwrY[/youtube]

2.2 OPERADORES DE DECREMENTO, INCREMENTO E ASIGNACION

[youtube=640,360]https://www.youtube.com/watch?v=kYBr7jB-UWc[/youtube]
#9
Hacking Wireless / Hacking Wireless
22 Julio 2019, 19:28 PM
[youtube=640,360]https://www.youtube.com/watch?v=jnHRGT6UTHU[/youtube]

Introducion a Hacking Wireles
#10
Hacking Wireless / PORTSCANNING - UNICORNSCAN
20 Julio 2019, 12:11 PM
[youtube=640,360]https://www.youtube.com/watch?v=apMBA-4WxJQ[/youtube]
En este breve video curso nos introduciremos en el escaneo de puertos de una manera basica y sencilla.
#11
GNU/Linux / Kali Linux 2019 ult. Version
17 Julio 2019, 09:27 AM
[youtube=640,360]https://youtu.be/rmCgctkOb6Y[/youtube]
#12
Bugs y Exploits / meterpreter android
17 Julio 2019, 06:04 AM
#13
Bugs y Exploits / meterpreter android
20 Mayo 2019, 12:41 PM
Hola buenos dias como estan, recien estoy iniciando mis estudios de Hacking Etico bien como todo esta vida es practicar tambien he estado trabajando con msfvenom y hice una aplicacion blackdoor bien tengo dos problemas, 1 porq siempre se cierra la sesion que mi telefono android abrio? y por que despues de 40 sesiones ni siquiera me deja abrir sesion en otro telefono que tengo?
Me sale todo el rato conectando con el 2º problema descrito pero alfinal de tanta sesion no me deja escribir...
Si quizas se pudiera mantener abierta la primera sesion no sucederia ciertto?