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

#291
En tu ejemplo no ves el valor de la variable i, ves el valor que tenia i y ahora es de a. Las variables locales a la función desaparecen del stack justo luego del return, por tanto no te impide retornar un dato por valor y asignarlo a otra variable en otro contexto de función. Si te impide retornar una referencia a una variable local y trabajar con esa referencia desde otro contexto, puesto que esa referencia apuntaría a un lugar donde los datos útiles podrían ya no existir.

Por ejemplo:


#include <stdio.h>

int* Test1(void)
{
int i=2;

return &i; //Retornando direccion de una variable local (Deberia dar un warning)
}

void Test2()
{
char Buff[20000];
}

int main()
{
int *Ptr;

Ptr=Test1();
//Ptr apunta a la direccion de i. i==2, ya no es valido en este punto. La direccion a la cual apunta Ptr puede contener datos inservibles.
Test2();

printf("%d",*Ptr); //Imprime dato basura
return 0;
}



#include <stdio.h>

int Test1(void)
{
int i=2;
printf("Local Address, i: %x\n",&i);
return i; //Retorno el valor de i.
}

void Test2()
{
char Buff[20000];
}

int main()
{
int Var;

Var=Test1();
//i==2, ya no es valido. En la direccion donde se encontraba i solo hay datos inservibles.
//El valor que tenia i, ahora se encuentra en Var.
Test2();

printf("Local Address, Var: %x\n",&Var);
printf("Dato Var: %d",Var); //Imprime dato correcto
return 0;
}


Saludos
#292
Cita de: dairus20 en 30 Noviembre 2010, 01:02 AM
Hola, estoy aprendiendo seguridad informática y dado que no quiero problemas con la justicia en mis test de penetración los realizo en una maquina virtual montada en virtual box con windows xp sp2 pero tengo unos problemas.

El primero es que no logro explotar ninguna vulnerabilidad utilizo el ubuntu 9.10 y mi duda es si de alguna forma no puedo vulnerar la maquina virtual porque esta siendo emulada en linux y primero tiene que pasar atravez de linux para llegar a la VM, alquien me puede explicar eso?

No se entiende cual es la pregunta. Si estas en una VM y queres atacar a la maquina host, lo que podes intentar es explotar algún fallo en la red si es que existe una red y si es que existe algún fallo. Si la VM esta aislada, no te queda alternativa mas que buscar y/o descubrir algún bug en la VM para poder saltar al host.
Si desde el ordenador host queres atacar a la VM, es lo mismo que si quisieses hacerlo en el sentido inverso, tratar al objetivo como a cualquier otro ordenador que se encuentre en red.

En que ordenador y hacia que objetivo estas realizando tus tests? dependiendo de las leyes de tu país podes tener problemas de igual manera siempre que no tengas los permisos adecuados para realizar las pruebas en ordenadores remotos.
Lo que no queda del todo claro es en que te evitas los problemas con la justicia puesto que por lo que se entiende el ordenador es tuyo y la VM también.
#293
Seguridad / Re: La INseguridad de Avast
30 Noviembre 2010, 13:30 PM
Generalmente lo que se hace con una suite de seguridad es intentar saltarse las protecciones de maneras no tan bruscas ya que la idea principal es pasar desapercibido. Agregar excepciones a mano (siempre que se pueda bypassear la protección de las configuraciones), engañar al motor de análisis de la forma que sea posible (signatures, codepaths, etc) suelen ser las formas mas comunes.
Si uno entra en modo kernel no necesariamente tiene que ser para desactivar la suite, mas bien todo lo contrario. Si en ese ámbito se encuentra un posible fallo (hooks mal implementados, por ejemplo) entonces se lo explota y se lo aprovecha, pero desactivar la suite de seguridad es la ultima instancia cuando no quedan otras alternativas, por lo menos para cualquier malware serio.
Igualmente cada caso es un mundo. No es lo mismo comparar Avg Free o Avast con otras suites como Kaspersky o Comodo.

En la mayoria de las suites de seguridad existen errores de diseño que pueden ser explotados. Por esa razón los usuarios siempre tienen que tener en mente que un antivirus/firewall solo es una simple protección mas que si no va acompañada de brain.exe es lo mismo que la nada.

En cuanto a la idea principal del post, es preferible que detecte de mas y no de menos. Si es un falso positivo y es una utilidad que conocemos, se agrega una excepción -dos clicks- y asunto arreglado.



#294
VB6 crea malos hábitos, y no hay que ir muy lejos para comprobarlo. En la sección de C/C++ se ven muchos usuarios que tienen años con VB6 pero a la hora de hacer algo simple en C/C++ tienen dificultades con aspectos muy sencillos que, mal que pese, otros usuarios que recién comienzan con la programación en un gran porcentaje no tienen.
No digo que estén mutilados como futuros programadores, ya que por lo menos yo creo que con practica los malos hábitos van desapareciendo, pero es real que si hay un lenguaje muy malo para aprender a programar, ese es Visual Basic. Ademas, la cita es de Dijkstra, que precisamente de programación algo entiende.
Por supuesto esto no significa que todos sean así, generalizar nunca es bueno, pero es real que la regla de Dijkstra se suele cumplir en muchos programadores de VB6.

Los fundamentos de un lenguaje no pasan por complemento a 1, a 2, ni mucho menos por multiplicar mas rápido. Se comienza desarrollando las capacidades de una persona en cuanto a la algoritmia y a la lógica, mientras se va adentrando en los aspectos básicos de la programación.
Ningún lenguaje en el nivel de VB6 puede enseñarte absolutamente nada sobre C ni mucho menos sobre C++, todo lo contrario.
Igualmente comparar VB6 con C/C++ no tiene mucho sentido, ya que son herramientas distintas con distintos propósitos. No obstante si hay que aclarar que VB6 en la actualidad es un lenguaje obsoleto sin discusión alguna, reemplazado en pleno por la plataforma .NET.



En cuanto a la duda, el mejor lenguaje para aprender a programar por lejos es C. Independientemente de si lo termines utilizando en la vida laboral (que eso dependerá de lo que quieras hacer) es el lenguaje que mas te puede ayudar a desarrollar las capacidades como programador y el que mas te va a facilitar la transición a otros lenguajes. No por nada en la mayoría de las universidades del mundo se enseña programación con C.

Saludos!

#295
En cuanto al primer punto, revisando algunos makefiles de Qmake, automáticamente se agrega el define de UNICODE:
DEFINES = -DUNICODE Asi que con que remover ese flag debería bastar.


En cuanto al segundo punto basta con definir un slot al estilo:

Código (c++) [Seleccionar]
private slots:
void ButtonPress();


Código (cpp) [Seleccionar]
void YourClass::ButtonPress()
{
Wnd->show();
}


Y después conectas la señal al slot:

Código (cpp) [Seleccionar]
connect(Button, SIGNAL(clicked()), this, SLOT(ButtonPress()));

y ya.

En la documentación de Qt esta todo y en el framework hay varios ejemplos para que puedas ver.

Saludos
#296
Si, tienes que proveer una dirección a la cual quieres que te llegue el premio. O bien se la das a el-brujo, o si tienes cuenta en la tienda creo que no hace falta ya que tus datos los tuviste que ingresar en el registro.

Es decir que la respuesta es si, de una forma u otra se necesita una dirección para que el premio llegue. Por supuesto datos personales como una dirección serán exclusivamente tratados por privado.

Saludos!
#297
Cita de: linux1 en 27 Noviembre 2010, 19:40 PM
Si utilize varias herramientas para crear mi aplicacion las puedo poner en el post es decir

Si, podes!


#298
Bienvenido al foro kioso_89!

En esta sección no se hacen ni tareas ni trabajos, solo se resuelven dudas puntuales ya sean por una duda en particular o en base a un código expuesto por quien pregunta.

Lee las reglas.

Saludos!



#299
Sugerencias y dudas sobre el Foro / Re: Mensajes
26 Noviembre 2010, 01:01 AM
Los mensajes en el foro libre no aumentan el contador de mensajes.