Abril 24, 2018, 10:37:30 am

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Solid Water

Páginas: [1] 2 3 ... 81
1
Buenísmo @seth, entendido.

Les dejo mi web, con su nueva versión utilizando bootstrap.

You are not allowed to view links. Register or Login

Si pueden déjenme un mensajito.

Saludos,

2
Hola estoy creando un sistema de comentarios para mi web.
El usuario envía los comentarios a través de un input type text.
Los comentarios son guardados en la base de datos.

El tema es que si en los comentarios ingresamos por ejemplo <div> u otra etiqueta, cuando el comentario se muestra, resulta en una inyección de código.

Yo pensé en filtrar los caracteres <>  con expresiones regulares tanto en el front como en el back end.

Por ahora me parece excelente, pero habrá algún otro caracter que debería filtrar para evitar las inyecciones en el front end? (las inyecciones back-end y mysql ya están parcheadas).

MUCHAS GRACIAS !

Queria comentar también que ahora le agregue al front-end esto:

Código: (javascript) You are not allowed to view links. Register or Login
var str = $('#1').val();

        str = str.replace(/>/g, "&gt;");
        str = str.replace(/</g, "&lt;");

$('#1').val(str);

Para que puedan mostrarse mensajes con esos caracteres, pero me sigo preguntando el tema de la inyección.

Saludos,

3
Hola en el post principal está caido, si estas usando el dotpeek podrías abrir el anterior probot, poner control + f para buscar y luego elegir entire solution y buscar esas cosas que puse yo, para ver si la version original también las utilizaba.

Aunque es casi seguro que si por que el txt lo descargaba de la web original.

PS: Hay una razón por la que en este caso el winmerge no funcionaría.


Saludos

4
Podrías pasarme la versión normal del pro-bot? no la nueva?

Mira tengo pasado a código C# el nuevo pro bot, pero no está corrible, aparece con algunos errores. me faltaría el anterior para ver si puedo hacer un winmerge y comparar, pero no te prometo mirarlo mucho solo daré un vistazo por arriba ya que los nombres de las funciones están ilegibles y si es muy extenso el cambio no me pasaré toda la noche, tengo servidores que admnistrar.








Encontré que utiliza:
 
HttpWebRequest
httpWebResponse
WebService
WebClient

Y más cosas, pero no se yo entiendo ni como es el juego.
Ya encontré que el WebClient solo lo usa para descargar un .txt y para esto que no se que és:

return Encoding.Default.GetString(webClient.UploadValues(address, data)).Length > 0;

Es mucho quilombo esto no voy a seguir buscando.

Saludos,

5
Te voy a decir algo más que podrías hacer si usas dotpeek y obtienes el código c# de las dos aplicaciones.
Utilizas el programa winmerge y puedes ver exactamente las diferencias entre una version y la otra.

Saludos,

6
Hola mira lo único que puedo decirte, es que ese archivo fue creado usando .net FrameWork.
Por lo que puedes leer el código IL que sería el código intermedio utilizando IL disassembler. Pero el código es extenso:






Pero eso no es todo, hay una forma de pasar los .net assemblies a código C# para que puedas leer su código más claramente y hasta modificarlo:

Una forma es utilizando dotPeek

You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login

Una vez que tienes el código C# podrías empezar viendo si encuentras alguna dirección donde se envíen mails, alguna dirección ip, algún DNS, etc.

En ambos casos se supone que tendrías el source completo.

Saludos, eso es todo

7
Hola, no creo que pueda ayudarte, pero podrías decirme que es el PRO BOT? conseguirlo open-source ni hablar no?

Se extraña al team anti-malware jejeje

PD: Ya encontré lo que és, lo que veo por ahora es que ni siquiera se puede comprar, por que está caido el foro
You are not allowed to view links. Register or Login

(tengo una idea ahora me fijo si funciona).

Saludos,

8
Windows / Re:Setear compatibilidad en el registro
« en: Marzo 29, 2018, 04:12:21 pm »
Quería comentar que lo solucioné así desde visual basic .net

Código: You are not allowed to view links. Register or Login
Dim appPath As String = Application.StartupPath()

Dim filepath As String = "\archivo.exe"

My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers", appPath & filepath, "WIN7RTM RUNASADMIN")

Todavía no tuve muchas oportunidades de testearlo, pero creo que funciona correctamente.
Muchas gracias a todos en especial a |_@cutus.

Saludosss

9
Mira Escribí este programa en C++ que creo que explica lo que sucede en tu programa Python:

Persona.h
Código: (C++) You are not allowed to view links. Register or Login
#include <iostream>
#include <string>

using namespace std;

class Persona {
        //Atributos del objeto:
        public: string Nombre, Apellido;

        //Constructor:
        public: Persona(string nombre, string apellido){
                this->Nombre = nombre;
                this->Apellido = apellido;
        }

        //Ver el nombre y apellido
        public: void VerNombreApellido(){
                cout << "Nombre: " << this->Nombre << "\n";
                cout << "Apellido: " << this->Apellido << "\n";
        }

        //Función que devuelve un nuevo objeto de tipo Persona
        public: Persona* getPersona(){
                Persona* persona = new Persona("Juan", "Perez");
                return persona;

        }

};

main.cpp
Código: (C++) You are not allowed to view links. Register or Login
#include "Persona.h"
 
 
//Cambiará el nombre en el objeto (Tanto en el parámetro como en el original):
void cambiarNombre(Persona* persona, string nombre){

        persona->Nombre = nombre;

}


//Esta función nos devuelve un nuevo objeto del tipo persona
//Por lo que el puntero del objeto que le pasamos cambiará por uno nuevo
//Esto es lo que sucede en python cuando usas el + y se crea
//Una nueva Lista en memoria, por eso cambia solo b
//Ya que lista2 seguía conservando su propia dirección
void NuevoObjeto(Persona* persona){

      //Get Persona devolvía una persona con nombre Juan Perez
      persona = persona->getPersona();
      persona->VerNombreApellido();
      //Muestra juan Perez pero persona2 sigue mostrando Danielazo RDV
      //Esta vez solo cambió el parámetro por que se creo un nuevo objeto
}



int main(){

        //Creamos el primer objeto persona
        Persona* persona1 = new Persona("Daniel", "RDV");

        //Lo pasamos como parámetro a una función
        //Pero no se crea una copia por que lo que se pasa es un puntero
        //A donde está alojado en memoria
        cambiarNombre(persona1, "Danielazo");

        //Imprime Danielazo en lugar de Daniel ya que lo cambió la función
        persona1->VerNombreApellido();

        //Le damos la igualdad, pero en realidad no estamos creando otro
        //Objeto del mismo tipo, solo estamos compartiendo el puntero

         Persona* persona2 = persona1;

        //Por lo que en este caso cuando cambiemos 1 devolviendole un nuevo objeto
        //Como pasaba con las listas de PYTHON al crear una nueva lista en memoria
        //Utilizando el operador +, el otro seguirá igual
        //Ya que conserva la antigua dirección


        NuevoObjeto(persona2);//<<Print Juan Perez

        persona2->VerNombreApellido(); //<<Print Danielazo RDV
        //Solo cambio el parámetro el objeto quedó igual
        //No como en el primer caso que cambiamos ambos

        return 1;
}


Saludos,

10
Ami también se me hace un poco raro entender que modificando un parámetro modifiques la lista original, debe ser una facilidad que nos brinda el lenguaje.
Entonces si usamos + el valor solo se asigna al parámetro y se pierde en el scope.
Y en los otros casos modifica tanto el parámetro como la lista original.

PS: Ya entendí, es por que la lista es un objeto.

Saludos,

11
Hola mira aquí puedes leer algo interesante:

You are not allowed to view links. Register or Login

Fijate en las 2 respuestas de "Aaron Hall".
Resumiendo un poco:

Citar
What is the difference between extend and simply using the addition operator - in the above example, x = x + [4, 5]?

Citar
Actually there's a big difference - x + [4, 5] gives you a new list assigned to x - x.extend() mutates the original list. I elaborate in my answer here below.

Citar
Both + and += operators are defined for list. They are semantically similar to extend.

my_list + another_list creates a third list in memory, so you can return the result of it, but it requires that the second iterable be a list.

my_list += another_list modifies the list in-place (it is the in-place operator, and lists are mutable objects, as we've seen) so it does not create a new list. It also works like extend, in that the second iterable can be any kind of iterable.

Don't get confused - my_list = my_list + another_list is not equivalent to += - it gives you a brand new list assigned to my_list.

En conclusión si en lugar de usar:

b = b + [4]

usas:

b += [4] o append o extend si modificarías lista2

Saludos,

12
Redes / Re:AYUDA CON ROUTER! ataque?
« en: Marzo 18, 2018, 03:18:34 pm »
Hola, quería decir que después de quejarme varias veces por teléfono y mail, me devolvieron la ip pública y todos los servers volvieron a funcionar.
Quería aclarar que ahora que estoy en una ip normal, la ip wan del router y el ip público coinciden, no como cuando la tenía compartida (o nat444) que eran diferentes.

Saludos y GRACIAS,

13
Hola sería así:

Código: You are not allowed to view links. Register or Login
#!/usr/bin/env python

def getPerfect(n) :
        return 2**(n - 1) * (2**n - 1)
 
def isPrimal(n) :
        for i in range(2, n) :
                if (n % i == 0) :
                        return False
 
        return True
 
def getGreaterPerfectNumSmallerThan(num) :
        for i in range(num) :
                m = 2**i - 1
                if (isPrimal(m)) :
                        if (getPerfect(i) > num) :
                                return perfect
                        perfect = getPerfect(i)
 
        return perfect

n = 1
i = 1
array =[0.0,1]
while n < 100001:

        a = getGreaterPerfectNumSmallerThan(n)

        array[i] = a

        if( a != array[i - 1] and a != 1) :     
                print (array[i])
                i += 1
                array.append(1)
        n += 1

Saludos,

14
Al parecer el algoritmo requiere de mucho procesamiento al ser hasta 100.000.
Si haces un print(n) adentro de la función n_perfecto vas a poder ir viendo como efectivamente prueba número por número y cada vez se vuelve más largo el proceso.

En linux probé hacer el print, y darle prioridad con nice -20 al proceso pero ni aun así agarra mucha velocidad..
En Windows podes darle prioridad desde el administrador de tareas >> procesos >> click derecho >> establecer prioridad: Tiempo real.

Claro que lo más sensato sería hardcodear los resultados pero ese no es el fín del ejercicio.
De otro modo podrías ver si es posible implementar threads o algo parecido para agilizar el proceso.

Saludos,

15
Redes / Re:AYUDA CON ROUTER! ataque?
« en: Marzo 09, 2018, 11:12:16 pm »
Hola, si esta información es correcta:

You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login

El problema sería que me pasaron a una ip pública compartida.
Odio toda esta mierda relacionada al fín de la neutralidad de internet (por cierto, tema que aquí no hemos tocado).

Saludos,

Páginas: [1] 2 3 ... 81