elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 199
111  Programación / Programación C/C++ / Re: Form en Dll en: 10 Diciembre 2014, 07:01 am
Me gustaría saber como añadir un form a una dll... lo que quiero es crear un hack y cuando lo injecte al juego cambiar los values de la memoria. Gracias de antemano.
En la mayoria de casos de igual manera como se crean desde un exe. Windows: Usando Win32 -> http://msdn.microsoft.com/en-us/library/vstudio/bb384843(v=vs.110).aspx
112  Programación / Programación C/C++ / Re: PoC, más rapido if-else o switch? en: 10 Diciembre 2014, 02:37 am
Mi humilde opinion es que entre switch y elseif no hay mucha diferencia.
La diferencia real la hace la estructura que se utiliza.

Supongamos este ejemplo
Código
  1. memoria[i] = 556;
  2.                if(memoria[i]=='1') control = 1;
  3. else if(memoria[i]=='2')control = 2;
  4. else if(memoria[i]=='3')control = 3;
  5. else if(memoria[i]=='4')control = 4;
  6. else if(memoria[i]=='5')control = 5;
  7. else if(memoria[i]=='6')control = 6;
  8. else if(memoria[i]=='7')control = 7;
  9. else if(memoria[i]=='8')control = 8;
  10. else if(memoria[i]=='9')control = 9;
  11. else if(memoria[i]=='0')control = 0;
  12. else control = 0;
  13.  
El codigo este va hacer 10 comparaciones inutiles para llegar a ejcutar el "else" que es lo que vale.

Entonces a mi criterio la mejor optimizacion que se puede hacer , es poner primero las condiciones que tengan más probabilidad de suceder. De manera que se ejecutén menos comparaciones y se pierda menos el tiempo.

La ventaja de switch-case es que tenemos la posibilidad de utilizar o no el Break  cosa que se pueden agrupar varios casos en un mismo grupo.

Saludos.
Usando || es posible hacer lo mismo que un switch-case. if(exp || exp || exp).
Además usando switch-case la expresion debe ser constante.

Mod: editado para eliminar citas de mensajes borrados
113  Programación / Programación C/C++ / Re: Remover primeros caracteres de una variable TCHAR en: 8 Diciembre 2014, 23:51 pm
No entiendo x64Core, ¿dónde dice el_doctor que sea de cuatro bytes? , creo que leiste mal , pone 4 caracteres, o yo ando muy perdido en esto :(
En el enlace que deje dice que TCHAR puede ser un ANSI o UNICODE. eso facilita cuando uno quiere compilar, no hay necesidad de cambiar todas las cadenas de la aplicación a unicode o viceversa.

Ahora acerca de la pregunta principal, el usuario dijo que tiene una variable de tipo TCHAR no un array asi que si el se referia a una cadena
entonces la pregunta está mal formulada.

-

Acerca de los bytes eso depende de la plataforma cierto, solamente tome en cuenta lo más comun.



Ahhh ya te entendí, cierto, pero no sé se intuye que si dice de 4 caracteres será un array ¿no?

Un saludo.
Sí, lo más probable.
114  Programación / Programación C/C++ / Re: Remover primeros caracteres de una variable TCHAR en: 8 Diciembre 2014, 23:25 pm
Hola no se si ya está este tema; bueno todavía me resulta difícil trabajar con este tipo de variable, cómo podría remover los primeros 4 caracteres de un tipo TCHAR.
TCHAR no puede ser de 4 bytes, como maximo de 2 (unicode).

TCHAR MSDN:
http://msdn.microsoft.com/en-us/library/office/cc842072%28v=office.15%29.aspx
115  Programación / Programación C/C++ / Re: Evitar quedarse bloqueado al leer del puerto serie (C++ WinAPI) en: 8 Diciembre 2014, 18:55 pm
Hola, gracias por la respuesta.

No me refería a que el hilo se quedase bloqueado, quiero decir que hacer ReadFile sin OVERLAPPED si se queda bloqueado, lo que quiero es tener una función que haga ReadFile a lo que haya en el buffer, y si no hay nada, que no se quede bloqueado.

Para ello creo que la manera de hacerlo es con OVERLAPPED, y al hacer ReadFile internamente se lanza un hilo, si yo lo he entendido bien.

Mi problema entonces es que no uso bien el OVERLAPPED porque la función ReadFile me devuelve un error que no es ERROR_IO_PENDING (que es lo que debería devolverme si no hay nada en el buffer).

He seguido intentándolo, pero aún no ha habido suerte.

Saludos.
Me referia a eso mismo, Windows pone en modo de espera el hilo que es usado para solicitar peticiones sincronicas, queda esperando hasta que la solicitud es completada.

EDITO:
He cambiado el CreateFile para ponerlo en lectura compartida y FILE_FLAG_OVERLAPPED y algunos otros errores que tenía, ahora el readExisting()
"parece" que funciona bien, porque al hacerlo me devuelve una cadena vacía.
El problema es que con el emulador que uso, al hacer write sobre COM3 (que está conectado a COM4), si no tengo abierto el hyperterminal no escribe nada en el buffer, no se por qué. El caso es que no puedo probarlo del todo pero creo que ya va bien, gracias por la respuesta. Si consigo comprobar que todo funciona subo el código para el que lo quiera ver.

Saludos.
Entonces ¿cómo el programador sabria si fue enviado con exito?

EDITO 2:
Resulta que si hacemos el CreateFile con FILE_FLAG_OVERLAPPED ya no se pueden hacer lecturas síncronas. Tiene que ser lo uno o lo otro. La única solución que veo entonces (para hacer una clase que tenga métodos síncronos y asíncronos) es pasar del overlapped y crearme yo mis propios hilos. Si hay alguna manera mejor de hacerlo, agradeceré que me lo expliquen. No tengo claro si será mejor idea andar con hilos o, cada vez que quiera hacer el readExisting(), cambiar el readtimeout del puerto a 0.

Saludos.
Usando el mismo handle para para solicitudes sincronicas y asincronicas no es posible, sino ¿cómo haria Windows para saber cuando el programador necesita una petición sincronica o asincronica? al crear el objeto de archivo este contiene unas banderas donde guarda la información. Podes abrir más de un handle, una para peticiónes sincronicas y otro para asincronicas o podes usar ReOpenFile para cambiar los attributos del handle mismo.

-

Toma en cuenta que si las peticiones son asincronicas no habrá espera asi que el contenido del buffer es indefinido, para saber si la solicitud fue completada usa WaitForSingleObject con el mismo evento pasado a las funciones.
116  Programación / Programación C/C++ / Re: Evitar quedarse bloqueado al leer del puerto serie (C++ WinAPI) en: 8 Diciembre 2014, 07:56 am
Entonces cual es el problema ReadFile retornando ERROR_PATH_NOT_FOUND?
Si vas a solicitar de forma asincronica entonces necesitas establecer la bandera FILE_FLAG_OVERLAPPED en CreateFile, solicitando acceso exclusivo del dispositivo no es bueno, pero bueno ya sabras.

Si el hilo se queda bloqueado es porque la solicitud esta esperando que sea completada, podes crear un worker thread ( crearlo al construir la clase por ejemplo, asi no es necesario crear un hilo cada vez que se quiere leer ). Si la solicitud es asincronica, despues de llamar a ReadFile tendras que esperar por el evento usando WaitForSIngleObject.
117  Programación / Programación C/C++ / Re: PoC, más rapido if-else o switch? en: 8 Diciembre 2014, 03:30 am
XD pero mi duda es: la eficiencia no va a cambiar según usemos una u otra o otra estructura entonces? (supongamos el caso de x codigo que se enfrenta constantemente a esta estructura, caso para el que que son perfectamente intercambiables y requiriendo eficiencia ante todo)
Es posible pero como dije todo depende de la logica de tu programa, los compiladores no tienen inteligencia artificial como para saber lo que el programador está intentando hacer, lo que si hacen es, intentar darle logica lo que se quiere lograr. Solo pensar que los compiladores hacen comparaciones como decir: "Si es una sentencia if entonces generar una instruccion test reg,reg o si encuentro un switch generar cmp reg, imm" es ridiculo.

Por ejemplo, unas situaciónes que he visto en las ultimas versiones del compilador de VC++ es que al usar una sentencia  switch con varios case's, este crea una tabla de direcciones a los destinos, a la hora de comparar se toma la dirección base de esa tabla y se le suma un offset para obtener la dirección de destino, esto es mejor que ir comparando case por case, solo imagina un switch con 100+ case's. Claro que esto va a depender, si hay pocos case's entonces podria ser mejor comparar uno por uno.



118  Programación / Programación C/C++ / Re: PoC, más rapido if-else o switch? en: 8 Diciembre 2014, 02:39 am
entonces según el codigo, el compilador puede generar un codigo maquina sobre los switch o if diferente, haciendolos más eficientes según el caso?

en caso general cual es la forma de saber cual sería más eficiente en tu codigo?


No me referia a eso, dije que va a depender de la logica de tu programa al final el código se traduce en u lenguaje que es entendido por el compilador ya no depende de las sentencias if o switch.
119  Programación / Programación C/C++ / Re: PoC, más rapido if-else o switch? en: 8 Diciembre 2014, 02:27 am
es cierto cada compilador tiene sus metodos... pero solo por probar con g++ en linux me da así :P sin más parametros, x64Core tu tienes buenos conocimientos sobre lo que se refiere a temas de más bajo nivel. por que no lo pasas tu por varios compiladores con diferentes optimizaciones y sin optimizaciones y vemos las diferencias, al final dentro de un mismo compilador con los mismos parametros, las diferencias si se marcan y al final los ejemplos practicos y pruebas de concepto son más visuales y practicas para ciertas cosas, no?
¿Y sólo por el hecho que alguna persona conozca acerca de temas de bajo nivel debe de hacer estas pruebas? Pues creo que por esa misma razon de saber como esto funciona se evita perder el tiempo de esta manera, pero bueno supongo que lo decias en tono sarcastico e intentando pasarte de listo.
Para que entiendas, habran situaciónes en donde los compiladores generán código más veloz usando if's o switch's, todo dependerá de la logica del programa asi que no hay manera de concluir diciendo cosas como:"usando if's es más veloz", "en general, switch generará código más veloz" o algo por el estilo.
120  Programación / Programación C/C++ / Re: PoC, más rapido if-else o switch? en: 8 Diciembre 2014, 00:50 am
@engel lex, @mDrinky:
Intentar calcular la velocidad de este tipo de códigos es ridiculo, la decisión final es tomada por el compilador. Aquí no mencionas nisiquiera el compilador y parametros ni nada por el estilo, bien puedo activar todas las optimizaciónes. Cualquier programador con un minimo de conocimiento en C/C++ lo sabe y ya que tienen interesantes discuciónes, mDrinky puede empezar a compartir el compilador que utiliza para generar super ensamblador universal con auto-generación.

-

Mejor vayan a leer un buen libro de C/C++.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 199
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines