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

#41
Quizas no lo haya aprendido lo que es debido, pero leer lo he leido y lo voy entendiendo. Voy a buscar mas manuales, thanks
#42
A ver si me das un empujoncito, en el codigo que direccion hay que poner la fisica y la virtual? y aparte la direccion de la sección seria PointerToRawData no? o VirtualAddress? en que se diferencian? Thanks
#43
Es que añadir una sección ya me queda claro pero meter el algoritmo dentro nu, quizas es meterlo en un stub y despues añadirlo en la nueva sección con el buffer de un readfile?
#44
Buenas, para añadir un algoritmo en la nueva sección creada del ejecutable como seria? Porque jugar con los bytes vale, pero introducir el algoritmo? Saludos y gracias
#45
Bueno pregunto esto y asi me servirá para todas, como asigno a una variable la direccion que hay en la posicion 3C para averiguar donde empieza el PE ?? programando en C

EDITO: Me estoy fijando en codigos y parece que esta automatizado, que libreria es la que hay que usar?
#46
Muy bueno si señor  ;-) he entendido varias cosas que aun no comprendia. Espero con ganas el proximo capitulo  :D
#47
A ver si me podeis echar una mano porque me stoy volviendo loco con esto xD, es respecto a una busqueda binaria pero con palabras. Os dejo el codigo a ver si veis algo, o algun consejo de como hacerlo. Thanks

#include <stdio.h>
#include <string.h>

int main()
{
char palabra[20][20];
char busqueda[20]="";
char palabra_aux[20];
int i, k, h, primero=0, ultimo=19, centro=10;
for(i=0;i<20;i++){
          strcpy(palabra[i],"");
   }// limpia el array
   for(i=0;i<5;i++){
         printf ("Introduce una palabra:");
       scanf ("%s", &palabra[i]);                  
   }// coge 5 palabras por teclado

   for(k=19;k>=0;k--)
   {
for(h=0;h<k;h++)
{
if((strcmp(palabra[h],palabra[h+1])>0) && (strcmp(palabra[h+1],"")!=0))
{
                       strcpy(palabra_aux,palabra[h]);
strcpy(palabra[h],palabra[h+1]);
strcpy(palabra[h+1],palabra_aux);
}
}

   }//ordena la lista
   
i=0;
while(i<5)
   {
         printf ("Introduce una palabra para ver si se encuentra en la lista: ");
         scanf ("%s", &busqueda);
             primero=0;ultimo=19;
         while ((primero<=ultimo) && (strcmp(busqueda,palabra[centro])!=0))
         {
                   centro=(primero+ultimo)/2;        
                   if (strcmp(busqueda,palabra[centro])<0){primero=centro+1;}
           if (strcmp(busqueda,palabra[centro])>0){ultimo=centro-1;}
           printf("centro vale %d\n", centro);
             }// busca en la lista
         if (strcmp(busqueda,palabra[centro])==0) {printf ("La palabra se encuentra en la lista :)\n");}
         else {printf ("La palabra no se encuentra en la lista :(\n");}
             i++;
   }// lo busca en 5 ocasiones
getchar();

return 0;
}



EDITO: Solucionado :) por fin, el array tiene que estar lleno o la busqueda al menos llena
#49
ASM / Re: Pregunta
18 Julio 2010, 17:43 PM
Cita de: Eternal Idol en 18 Julio 2010, 10:15 AM
Depende para que podes usar registros de 8 y 16 en modo protegido perfectamente, igual este codigo es para MS-DOS ya que usa los servicios del mismo (int 21h) y esos estan disponibles solo en modo real (16 bits).


Gracias por la aclaracion  :-*  , usando otra interrupcion se pueden hacer programas en modo consola no? o me equivoco?
#50
ASM / Pregunta
18 Julio 2010, 02:08 AM
Cual es la diferencia del codigo de 16 bits con el de 32 bits? Este codigo que presento ya lo he intentao sacar varias veces y no me sale de ninguna manera, por lo que me dicen lo declaro con 32 bits (cabecera) pero el codigo es de 16 bits, me podeis echar una mano para hacerlo en 32 bits? con esto hecho ya puedo coger la idea y seguir ampliando. Saludos

Código (asm) [Seleccionar]
.386                             
.model flat, stdcall 
option casemap :none
;32 bits

.stack

.data

saludo   db "Hola mundo!!!$"

.code

start:

mov   ax, data
mov   ds, ax           
mov   ah, 09         
lea   dx, saludo 
int   21h               
;mensaje en pantalla

mov   ah, 4ch           
int   21h               
;termina programa

end start