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

#1
puedes revisar este enlace ahí te explica como se hace una funcion y pasar parametro por valor y referencia.
#2
hola JuniorAC.
tienes un error en la asignacion palabra y almacen.
Creo que esto te puede servir.


int main()
{
   string palabra;
   string almacen[100];
   int i=0;
   char c;

   cout << "Escribe palabra" << endl;
   do
   {
      cin >> palabra;
      i++;
      almacen[i] = palabra;
      cin.ignore(1, '\n');
      cin.get(c);
   } while(c != '\n');//// deseo que finalice cuando se presione la tecla ENTER



Saludos,
Drewermerc.
#3
Hola 4dr14n31t0r.
puedes usar system como ya te lo menciono engel lex, con el manejo de ficheros y un poco de batch, creo que puedes lograr lo que quieres.
Hice un pequeño ejemplo rapido sobre lo que planteaste en los ejemplos, espero que te sirva.

Si quieres tener mañor control puedes usar pipe() y fork() de posix que te da mayor control en el flujo de las entrada y salidas, la libreria que se usa es unistd.h.



#include <stdio.h>
#include <stdlib.h>

FILE *abrir(char *nombre);

int main(void){
   char *c1 = "Este es  un texto de prueba para poder";
   char *c2 = "probar el manejo de entrada y salida de grep";
   char *query = "select * from prueba;";
   FILE *file, *tmpFile;
   
   file = abrir("prueba.txt");
   tmpFile = abrir("tmp.txt");
   
   fprintf(tmpFile, "%s\n", "use test");
   fprintf(tmpFile, "%s", query);

   fclose(file);
   fclose(tmpFile);
   system("mysql < tmp.txt");
   system("rm tmp.txt");

   tmpFile = abrir("tmp.txt");
   file = abrir("prueba.txt");
   
   fprintf(file, "%s\n", c1);
   fprintf(file, "%s", c2);
   
   fclose(file);
   fclose(tmpFile);
   
   system("cat prueba.txt | grep texto >> tmp.txt");
   system("cat tmp.txt");
   
   system("rm tmp.txt");

   getchar();
   
   return EXIT_SUCCESS;
}

FILE *abrir(char *nombre){
   FILE *file;
   if(!(file = fopen(nombre, "wa"))){
       perror("Archivo no creado");
       exit(-1);
   }



Saludos,
Drewermerc.
#4
hola aurquiel.
Eso pasa porque al usar int byte:1 lo estas usando como signed y cuando accedes a un solo bit de la declacion, este solo va a poder tomar valores de 0 y -1.
Para poder usar solo un bit y almacenar 1 ó 0 solo basta con declararlo como unsigned.

Código (cpp) [Seleccionar]

struct bits
{
  unsigned int byte:1; //un solo bit asignado
  unsigned int word:1; //un solo bit asignado
};


si quieres leer un poco mas puedes revisar este enlace

Saludos,
Drewermerc
#5
Hola MCKSys Argentina.

Gracias por responder.
Ya me quedaron aclaradas mis dudas.

Saludos,
Drewermerc
#6
Hola a todos.
Estoy aprendiendo sobre el formato PE y estoy comprendiendo su estructura ayudandome de Ollydbg, pero me surgieron una dudas.

1. Cuando creo un archivo asm y lo ensamblo con fasm y lo abro con Ollydbg me muestra el siguiente la siguiente advertencia:
Module 'asm001'  has entry point  outside  the code ( as specified in the PE header). Maybe  this file is self-extracting or self-modifying. Please keep it in mind when settings breakpoints

Pero si abro ese mismo codigo ensamblado con masm32, no me muestra esa advertencia, aun que busque y lei que no es algo por lo que me tenga que preocuopar pero quisiera ver si se puede quitar la advertencia con codigo ensamblado en fasm

2. ¿las direcciones de memoria pueden cambiar?
Esto lo pregunto porque ayer esta tenia un valor de ImageBase=6F800000 y en la sección .data el valor de VirtualAdres=800000 y la suma de esto deberia ser la direccion real de la sección .data en Memory map en la columna de Address el valor era 6FC00000 lo cual si era correcta pero al abrir el Dump de la sección .data me debio de haber mostrado los valores de los dos strings que declare en el codigo de fasm, pero no fue asi y me moestraba caractere raros y no estaban los estrings declarados, o acaso no es asi?
Tambien si queria ver el Entry point sumando el ImageBase y el AddressOfEntryPoint no me daba la direccion real del Entry point, de este caso si no recuerdo los valores del AddressOfEntryPoint pero si recuerdo que no me daba.
Pero lo mas curioso es que el programa si se ejecutaba bien y pasaba lo mismo con el codigo ensamblado con masm32.
O ¿hay algunos factores que provoquen estos errores?
Hoy si ya obtengo todas las direccion correctamente y todo coincide hasta lo que he leido.

3. ¿Las direccion del ImageBase siempre sera la misma?
Esto lo pregunto porque cuando abro el programa ensamblado en fasm o en masm32.

El sistema donde estoy usando Ollydbg es windows 10 x64.

Espero haberme expresado correctamente y que se entendian bien mis dudas :D.
Saludo,
Drewermerc.
#7
Hola AlbertoBSD.

Gracias por responder.
No si me acordaba de caracter nulo, lo que no recorda es que como estoy manejando char y e DWORD tengo 6 numeros entonces eso por eso necesito 7 espacion ya que cada numero ocupa un char + el caracter nulo.
Gracias por recordarme eso AlbertoBSD, es que apenas estoy volviendo a c y no me acuerdo de algunas cosas  :D.

Saludos,
Drewermerc.
#8
Hola a todos.

Tengo una duda sobre el siguiente codigo que tengo:
Código (cpp) [Seleccionar]

HANDLE hStdoutConsole, hStdinConsole;
DWORD written, value = 263977 , read;
char message[7] = { 0 }, messageDos[10] = {0};

AllocConsole();
hStdoutConsole = GetStdHandle(STD_OUTPUT_HANDLE);

if (hStdoutConsole == INVALID_HANDLE_VALUE) {
MessageBox(NULL, L"stdout no disponible", L"Error", MB_OK);
return 1;
}

hStdinConsole = GetStdHandle(STD_INPUT_HANDLE);
if (hStdinConsole == INVALID_HANDLE_VALUE) {
MessageBox(NULL, L"stdin no disponible", L"Error", MB_OK);
}

sprintf_s(message, sizeof(message), "%d", value);
WriteConsoleA(hStdoutConsole, message, strlen(message), &written, NULL);
ReadConsoleA(hStdinConsole, messageDos, sizeof(messageDos), &read, NULL);
return 0;


Mi duda es cuando convierto DWORD a char con sprintf_s, así como esta el codigo ahorita si compila bien pero si modifico el tamaño del array message por uno menor a 7 el programa causa un error en tiempo de ejecucion y se cierra.
Entonces queria que me ayudaran aclarar la duda del poque se necesitan mas de 6 bytes si se supone que con 4 deberia de basta ya que DWORD vale 4 bytes, o no es así?

Espero que me puedan ayudar.
Saludos.
Drewermerc.
#9
PHP / problema con ejemplo de mvc
24 Abril 2016, 00:19 AM
Hola a todos.

Estoy aprendiendo mvc en php y encontre un ejemplo en internet pero cuando lo pruebo no funciona, no he encontrado el problema, quisiera que me ayudaran y decirme cual es la razon por la que no funciona.
Es una pagina para modificar, inserta, eliminar y obtener datos de una base de datos.

link del archivo:
https://onedrive.live.com/redir?resid=3F646799896D7DE1!1780&authkey=!AGur2xmUAPsYToY&ithint=file%2crar

como estoy aprendiendo sobre mvc, me gustaria saber que opinion tienen sobre esta implementacion de mvc, por ejemplo:
estructura de archivos
separacion del modelo, vista y el controlador.
si les parece que esta bien implementa o no y porque?
o si, le cambiarian algo.

espero que me puedan ayudar.
Saludos,
Drewermerc.
#10
 :DHola ivancea96 y boctulus.

Gracias a los dos por responder.
Se me hizo mas rápido la recomendación que me hizo ivancea96, solo era usar el ordenamiento burbuja con la función de copear, no se por que me complique ;D.

Esa función no la conocía boctulus la investigare.

Gracias.
Saludos,
Drewermerc.