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 - kisk

#1
Hola buenas tardes recien encontre en mi biblioteca el libro de "Lenguaje ensablador para computadoras basadas en Intel Quinta Edicion de KIP R. Irvine" ni me acordaba que lo tenia y bueno quiero empezar a programar en este lenguaje alguna sugerencia para un nuevo???

Que ensamblador me recomiendan Radasm o de plano me bajo el Microsoft Macro Assembler 8.0 (MASM) ??? 

Alguien me puede decir la diferencia entre MASM y MASM32???

Gracias todos los comentarios son bienvenidos saludos

#3
Hola amigos viendo los diferentes tutoriales sobre el PE Header el de Ferchu y el de The Swash  ;-) ;-) ;-) me surgio un problema al mover el Bound Import del Tutorial The Swash de la parte "practica #2:"  con un archivo en visual basic que en si es un msgbox nada mas
cito
Citar¿Hay solución?
Si, te cuento que hay 2 una menos ortodoxa que la otra pero ambas funcionan. Una preservadora y otra no presevadora.

   Primera solución: Yoda(creador de LordPE) alguna vez mencionó que se puede establecer el RVA del directorio BOUND_IMPORT_DIRECTORY a 00 porque este era poco importante. Mi amigo karmany opinó al respecto y estoy de acuerdo con él, este directorio tiene como utilidad optimizar entonces me parece que importa. El ejecutable no deja de funcionar pero no preserva el estado original del ejecutable.
   Segunda solución: Personalmente me parece la mejor y consiste en mover de sitio el BOUND_IMPORT_DIRECTORY. Si sabemos que está justo despues de la última sección, tranquilamente lo desplazamos 0x28 bytes y así tenemos espacio para una función. Posteriormente se actualiza el RVA en el Directorio de datos y lo habríamos solucionado.

Metodo 1 poner en 0     RVA: 0x000,Size: 0x00 correcto hasta aqui

EL PROBLEMA ( seguro es algo bien sencillo lo que me falla )

Cuando muevo 0x28 bytes para mover ahi osea quedaria 0x228 + 0x28 =0x250 vamos al HEX editor PASOS QUE ESTOY SIGUIENDO EN LAS IMAGENES
PASO 1
Compio los bytes de la bound Import despues me voy 0x28 bytes despues


PASO 2
y ahi pego los datos posteriomente con el LORD PE cambio el RVA:0x250 pero




Pero me rompe el archivo ahora si tecleo a mano los datos de la Bound Import me jala no me rompe el archivo  alguien sabe si estoy haciendo algo mal en el HEX porque cuando pego veo que me hace mas chico el ARCHIVO de 1 a 4 bytes maximo por los offsets que me muestra al final ya lo pongo en la imagen alguien sabe que podria estar haciendo mal ???
Antes me posiciono al ultimo y me dice que es el offset 4000 despues de pegar los Bytes me dice 3FFB



Ya Logre mover la Bound Import  pero tecleando todos los datos  a mano en este archivo son 20 pero supongo si quiero modear algo mas grande van a ser mas por eso quiero saber como copiarlos y pegarlos desde el editor HEX



Gracias y Saludos!!!

MOD: Imágenes adaptadas a lo permitido.





#4
Buenas alguien sabe que archivo uso The Swash en la pirmera parte dice que es un archivo que pesa 1.5kb alguien sabe si uso c++( si usaron c++ como hizo un archivo tan pequeño ) y la api MessageBoxA o fasm? gracias
Saludos
#5
Cita de: do-while en  2 Marzo 2014, 21:43 PM
XD

Mira, haz este experimento:

Código (cpp) [Seleccionar]

string cad;
int n;

cin >> n;

getline(cin, cad);

cout << n << endl;

cout << cad;


Y cuando toque leer datos escribes un numero y una cadena con lo que se te ocurra.

Veras que te lee el número y luego la cadena. Es decir, después de leer el numero no descarta el resto de la linea que introduzcas, sino que solo descarta el número leído así que después de leer el numero no se quedará esperando a que introduzcas alguna cosa y pulses intro, sino que terminará de leer lo que había, que es lo que pasa en tu programa.

Lo mismo pasaría si utilizases cin para leer una cadena. Solo leería hasta el primer caracter en blanco (un espacio, un tabulador...) y dejaría el resto (esto creo que puedes modificarlo especificando otro delimitador para que cin termine de leer...).

Así que cuando utilices cin, acuérdate siempre de terminar de leer lo que pueda quedar en el flujo de entrada. Como ya sabes que la entrada termina con un \n, lo unico que tienes que hacer es while(cint.get() != '\n');

¡Saludos!
muchas gracias lo e entendido gracias a todos!
#6
Gracias por sus respuestas ya solucione el error pero sigo sin entender porque le falta un cin.get() osea cuando ago el cin>> n porque queda el "\n" es acaso de q lo toma como el fin de la cadena ?  y ya  cuando voy a poner la string codigo ?lo que lee es el "\n" ? y no me deja ingresar codigo entonces con el cin.get() ya leeo ese "\n" ? que sobra ? asi esta bien ?
Gracias a todos
Salu2s ;D
#7
Hola Miren tengo este problema paso la direccion del arreglo d eestructuras para q leea el primer elemento que es codigo(variable de tipo string) pero se va directamente a leer el nombre y no me deja ingresar el codigo  aqui el code q para mi esta bien y es problema del getline podrian echarme una mano ??

#include<iostream>
#include<string.h>

using namespace std;

struct pro{
       string codigo;
       string nombre;
       string descripcion;
       string laboratorio;
       double precio;
       double iva;
       int existencia;
       };

void leer(struct pro *apt)
{
  double IVA = 0.16;
  double total;
      cout<<"Teclea el Codigo "<<endl;
    getline (cin,apt->codigo);/////NO PASA POR AQUI POR LO VISTO
    cout<<"Nombre "<<endl;// PASA DIRECTAMENTE A INGRESAR EL NOMBRE Y EL CODIGO SE LO PASA POR LO HUEV..S
    getline (cin,apt->nombre);
    cout<<"Descripcion: "<<endl;
    getline (cin,apt->descripcion);
    cout<<"Laboratorio: "<<endl;
    getline(cin,apt->laboratorio);
    cout<<"Precio: "<<endl;
    cin>>apt->precio;
    total=(apt->precio*IVA);
    apt->iva=total;
    cout<<"Cuantos ay en existencia"<<endl;
    cin>>apt->existencia;

}


void imprimir(struct pro *ap)
{
cout<<" CODIGO:      "<<ap->codigo<<endl;
cout<<" NOMBRE:      "<<ap->nombre<<endl;
cout<<" DESCRIPCION: "<<ap->descripcion<<endl;
cout<<" LABORATORIO: "<<ap->laboratorio<<endl;
cout<<" PRECIO:      "<<ap->precio<<endl;
cout<<" IVA:         "<<ap->iva<<endl;
cout<<" EXISTENCIA:  "<<ap->existencia<<endl;
}
int main ()
{
     int n=0;
     pro * apt=0;

cout<<"Numero de elementos"<<endl;
cin>>n;
apt= new pro[n];
for(int i=0;i<n;i++)
{
leer(&apt);
}
for(int j=0;j<n;j++)
{
imprimir(&apt[j]);
}

     delete [] apt ;
    return 0;
}

Saludos Gracias ;D
#8
Cita de: Maurice_Lupin en 31 Mayo 2012, 15:58 PM
Hola, lo que hice fue probar un Stub en la pagina Virus Total, fui quitando cosas, modificando, pero lo detectaba sólo cuando utilizaba la función WriteProcessMemory, es decir cuando se inyectaba en memoria.

Decia variante de MSIL/Injector. Por cierto un RunPe en vb.net es menos detectado que uno en vb6  :-( (recien me involucro en estas tecnicas). Y en la pc de un amigo, con sólo examinar mi USB el NOD32 detectaba lo mismo: MSIL/Injector y eliminaba mi exe.

Saludos.
si y seguramente por escaniar en virustotal ya lo detectan unos 4 mas nos e porque usas esa pagina  :rolleyes:
#9
si algunos avs saltan al escaniar asi aunque existen diferentes tipos de escaneos  :silbar:
yo escaniando mi propia red salto kav diciendo scan.tcp  y ami se me hizo raro
:huh:
y lo volvi a haber y seguia saltando esa alerta asi q si fuiste tu con eso del avast
#10
pues as lo q estes haciendo desde el rat para q no muevas el escritorio
::)