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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: [1] 2 3 4
1  Foros Generales / Foro Libre / como se llamaba este hombre? en: 23 Junio 2018, 01:03 am
Me refiero a alguien que hacia fallar toda cosa en la que estaba cerca, por eso no lo dejaban entrar a los laboratorios por que las cosas que habian ahi fallarian por su sola presencia. Queria hacer una referencia con eso, pero se me olvido su nombre xD
2  Sistemas Operativos / Windows / Problema urgente, Ayuda con permiso administrador en: 22 Junio 2018, 23:25 pm
Hola, tengo un problema algo serio, es que no puedo hacer nada que requiera permisos de administrador.
Me aparece esto: "para continuar escribe el nombre de usuario y contraseña de un administrador."
Cuando abro netplwiz, aparece eso, nada me ha funcionado.
Ayuda, es algo serio. :-(
Estoy muy desesperado
saludos
Gracias de todos modos
3  Sistemas Operativos / GNU/Linux / Debian se congela al instalar en: 13 Diciembre 2017, 18:37 pm
Intento instalar Debian, pero se queda congelado, en la parte de Seleccionar e instalar programas. No reacciona el teclado ni el mouse (en realidad se apago)
Mas especificamente, se queda congelado al instalar "discover (amd64)"
Ya he intentado instalar por modo texto y igual se congela.
Espero que me ayuden
4  Programación / Scripting / [Python 3]Problema con excepciones en Python en: 10 Diciembre 2017, 17:28 pm
El problema qu tengo, es que cuando quero añadir es que me tira este error:
Código:
  File "/home/n1sendev/Escritorio/TarketakVOS/exe_read.py", line 22, in UnpickleExecutable
    unpickled_obj = load(f)
_pickle.UnpicklingError: invalid load key, ''.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 46, in <module>
    main()
  File "main.py", line 35, in main
    boot_func()
  File "/home/n1sendev/Escritorio/TarketakVOS/boot.py", line 10, in boot_func
    loginMain()       
  File "/home/n1sendev/Escritorio/TarketakVOS/login.py", line 44, in loginMain
    maincmd()
  File "/home/n1sendev/Escritorio/TarketakVOS/usr_shell.py", line 62, in maincmd
    UnpickleExecutable(cmd_input)
  File "/home/n1sendev/Escritorio/TarketakVOS/exe_read.py", line 24, in UnpickleExecutable
    except pickle.UnpicklingError as pic_errno1:
NameError: name 'pickle' is not defined

Intente que se evitara eso con un try-except. En este caso, el error que quero evitar es el de _pickle.UnpicklingError,
pero como se ve, me dice que pickle no esta definido.
Aca les dejo un fragmento del codigo:
Código
  1. try:
  2.    unpickled_obj = load(f)
  3.     ReadExecutebleIns(unpickled_obj, path)
  4. except pickle.UnpicklingError as pic_errno1:
  5.    print("!Invalid binary: %s" % pic_errno1)
  6.  
Tambien intente poner _pickle.UnpicklingError pero aun sigue el problema
Saludos!
5  Programación / Scripting / Problemas... en: 7 Diciembre 2017, 01:16 am
Pues, eso vengo a molestar otra vez, con otro problema:
Resulta que he estado programando una "especie de formato ejecutable"
y este ejecutable se guarda serializado en un archivo.
La cosa es que ya vine a preguntar como resolver un problema que tenia con otro codigo. ([Python3]Unir dos listas en una)
Resulta que ese era un "compilador" para compilar codigo de una especie de "assembler" que cree para que se convierta en este ejecutable.
Tengo un archivo llamado "exe_read.py" que lee este fichero ejecutable que cree.

Y el problema?

Resulta que el modulo pickle, solo toma objetos para serializar de listas, y no de archivos, asi que tuve que hacer este "compilador"
Código:
;TarketakVOS Assembler
STR_PRINT "Hola mundo!"
DIV("El numero 5 en 5 cabe:", 5, 5)
INT("test", "54")
Ese es el assembler que cree

Cuando "compilo" este archivo con el "compilador", compila, pero al ejecutarlo con el archivo "exe_read.py" no ejecuta.
Sin embargo, si envez de usar este compilador que lee las instrucciones de un archivo envez de una lista, cree este script.
Código
  1. from _pickle import dump, dumps, load, loads
  2.  
  3. obj = ['STR_PRINT "Hola mundo"', 'DIV("El numero 5 en 5 cabe:", 5, 5)', 'INT("test", "54")']
  4.  
  5. with open("e.cex", "wb") as f:
  6.    dump(obj, f)
  7.  
  8.  

Lo "compila", y... sorpresa! cuando lo ejecuto con el archivo "exe_read.py" funciona.
Espero que me hayan entendido.
Les dejo el codigo de los scripts mencionados:

exe_read.py:
Código
  1. from _pickle import dump, dumps, load, loads
  2. from system_instr import *
  3. import sys
  4. import os
  5.  
  6. global os_name
  7. os_name = os.name
  8.  
  9.  
  10. def UnpickleExecutable(filepath):
  11.    try:
  12.        try:
  13.            file = filepath.split("'")
  14.            path = file[1]
  15.        except IndexError:
  16.            file = filepath.split('"')
  17.            path = file[1]
  18.  
  19.        with open(path, "rb") as f:
  20.            #Los archivos executables .cex son creados y leidos con _pickle en binario
  21.            unpickled_obj = load(f)
  22.            ReadExecutebleIns(unpickled_obj, path)
  23.  
  24.    except FileNotFoundError:
  25.        print("File not founded.")
  26.    except IndexError:
  27.        print("Usage: exe 'executable.cex'")
  28.  
  29. def ReadExecutebleIns(unpickled_obj, filename):
  30.    #Esta funcion lee las instrucciones extraidas del ejecutable
  31.    for EXEOBJ in unpickled_obj:
  32.        print(EXEOBJ)
  33.        if "STR_PRINT" in EXEOBJ: #Mustra en un texto en pantalla
  34.            PRINTSTR = EXEOBJ.split('"')
  35.            Text = PRINTSTR[1]
  36.            print(Text, flush=True)
  37.  
  38.        elif "CMD_PAUSE" in EXEOBJ: #Pausa la consola
  39.            shudder_data = input("Press any key to continue... ")
  40.            shudder_data = None
  41.  
  42.        elif "EXIT" in EXEOBJ: #Sale del programa
  43.            pass
  44.  
  45.        elif "CLEARSCR" in EXEOBJ: #Limpia la pantalla
  46.            if os_name == 'posix':
  47.                os.system("clear")
  48.            elif os_name == 'nt':
  49.                os.system("cls")
  50.            else:
  51.                pass
  52.        elif "ADD" in EXEOBJ:
  53.            exec(EXEOBJ)
  54.  
  55.        elif "SUB" in EXEOBJ:
  56.            exec(EXEOBJ)
  57.  
  58.        elif "MUL" in EXEOBJ:
  59.            exec(EXEOBJ)
  60.  
  61.        elif "DIV" in EXEOBJ:
  62.            exec(EXEOBJ)
  63.  
  64.        elif "DIV_INT" in EXEOBJ:
  65.            exec(EXEOBJ)
  66.  
  67.        elif "PUSH" in EXEOBJ:
  68.            exec(EXEOBJ)
  69.  
  70.        elif ";" in EXEOBJ:
  71.            pass
  72.  
  73.        else: #En caso que haya una intruccion invalida...
  74.            print('!Illegal instruction "%s" in %s' % (EXEOBJ, filename))
  75.  
  76.  
el "compilador":
Código
  1. import os, sys
  2. from _pickle import dump, dumps, load, loads
  3. from system_instr import *
  4.  
  5. def ASM_File(filepath):
  6.    try:
  7.        try:
  8.            file = filepath.split("'")
  9.            path = file[1]
  10.        except IndexError:
  11.            file = filepath.split('"')
  12.            path = file[1]
  13.  
  14.            PRG(path)
  15.  
  16.    except IndexError:
  17.        print("Usage: tkasm 'program.asm'")
  18.  
  19. def PRG(path):
  20.    asm_file_cont = []
  21.    out_file = input("Output file name..: ")
  22.    with open(path, 'r') as inputfile:
  23.        with open(out_file, 'wb') as outputfile:
  24.            for f1 in inputfile:
  25.                f1 = [f1[:-1]]
  26.                asm_file_cont.append(" ".join(f1))#por tu ejemplo lo convierto a cadena
  27.                dump(asm_file_cont, outputfile)  
  28.                                                                 #supogo que es para escribir el contenido en el otro archivo
  29.    print(asm_file_cont)
  30.  
  31.  
y del "assembler" donde estan las instrucciones para este "compilador":
Código:
;TarketakVOS Assembler
STR_PRINT "Hola mundo!"
DIV("El numero 5 en 5 cabe:", 5, 5)
INT("test", "54")

Me ubiese ahorrado todo esto si el modulo pickle hiciera algo tan simple como poder leer de un archivo los objetos a hacer "dump" aparte de solo una lista...
Saludos
6  Programación / Scripting / [Python 3] Unir dos listas en una en: 4 Diciembre 2017, 02:40 am
Vengo a preguntar como unir dos listas en una, he intentado con .join y .append pero no ha funcionado.
Tengo esta lista:
Código:
['STR_PRINT "Hola mundo!"']
['DIV("VOID", 5, 5)']
['INT("test", "54")']
['']

Como se ve, cada linea esta en una lista distinta. (se esta leyendo de un archivo)
Deberia estar asi:
Código:
['STR_PRINT "Hola mundo!"', 'DIV("El numero 5 en 5 cabe:", 5, 5)', 'INT("test", "54")']
Aca tengo un fragmento del codigo que me genera problema:
Código
  1. def PRG(path):
  2.    out_file = input("Output file name..: ")
  3.    with open(path, 'r') as inputfile:
  4.        with open(out_file, 'wb') as outputfile:
  5.            for f1 in inputfile:
  6.                asm_file_cont = [f1[:-1]] #El [:-1] es para quitar el salto de linea
  7.                dump(asm_file_cont, outputfile)
  8.                print(asm_file_cont)
  9.  
Saludos
7  Programación / Scripting / [Python 3]Saber codificacion de un archivo de texto en: 3 Diciembre 2017, 17:01 pm
Alguien sabe como se puede saber la codificacion de un archivo de texto, por ejemplo si es ASCII UTF-8 o binario
He buscado en internet pero nada me sirve
Saludos!
8  Programación / Programación C/C++ / Hacer un programa en C que se ejecute sin SO en: 19 Noviembre 2017, 00:17 am
Duda no resuelta, y de paso idea abandonada  :-( Pero si saben como responder, aganlo igual me sirve

Pues eso, esa es mi duda como lo dice el titulo. En VirtualBox logre arrancar con un "bootloader" que programe en assembler, seguiendo una guia que encontre en internet.
El problema es que viendo la guia entera, terminas con mas de 3000 lineas de codigo programadas en assembler, solo para recibir comandos y leer el teclado, algo que en cualquier lenguaje como C puedes hacerlo con algo de 200 lineas o menos.
Asi que la duda seria como compilar un programa en C a un .iso. Nota, el "bootloader" programado en assembler que bootea la maquina debe estar si o si en el mismo .iso o no arranca la maquina. Asi que en teoria, el "bootloader" debe tener una forma de llamar a ese codigo programado en C que leeria y recibiria comandos.

Aca les dejo el codigo del "bootloader" que hice:
Código
  1. EBIOSVIDEOINT       equ 16 ;Servicio de video de la BIOS
  2. EBIOSTTYOUTPUTFN   equ 14 ;Funcion de video TTY (teletipo) de salida de la BIOS
  3.  
  4.    cpu 8086 ;La CPU minima donde puede funcionar este codigo
  5. Start:
  6.            mov ax,cs ;carga el segmento de codigo
  7.            mov ds,ax ;carga el segmento de info.
  8.            call .10
  9.            db 'Hola mundo! ',13,10,0 ;String que se imprimira
  10. .10         pop si
  11.            call PutString ;Llamado a la funcion PutString
  12. .20         hlt
  13.            jmp .20
  14.  
  15. PutString:   mov ah,EBIOSTTYOUTPUTFN ;Funcion de teletipo de la BIOS
  16. .10          lodsb
  17.             or al,al
  18.             jz .20
  19.             int EBIOSVIDEOINT ;llama a la interrupcion de video de la BIOS
  20.             jmp .10 ;repite hasta que termina
  21.             ret ;Retorna a el llamado call PutString
  22. .20



Como ven, muestra en pantalla la cadena "Hola mundo!" y arranca la pc, y lo mejor, se ejecuta directamente en el procesador y la BIOS
La funcion de leer el teclado y recibir comandos, seria hacerlo en C, si lo hacemos en assembler... ya saben.
Si no me entienden mandemen un PM (mensaje privado)
Saludos

PD: Estoy en Linux Mint, nasm como ensamblador de asm.
ah, y los comandos para convertir el codigo en un archivo .img:
Código:
nasm bootloader.asm  -o bootloader.bin
Eso de arriba ensambla en codigo no en un .o si no en un .bin
Código:
dd if=/dev/zero of=floppy.img bs=1024 count=1440
dd if=bootloader.bin of=floppy.img seek=0 count=1 conv=notrunc
Se crea la imagen de disquette (en este caso es el floppy.img que despues ejecutamos como dispositivo de arranque en Oracle VirtualBox.
Solo funciona para Linux, en Windows, no tengo idea como se haria

PD2: Lei por ahi en una pagina de StackOverflow que alguien dijo que "tecnicamente cualquier programa que se ejecute sin SO es un SO".
El texto original estaba en ingles
9  Programación / Scripting / [Python 3] TypeError: an integer is required (got type str) en: 16 Noviembre 2017, 01:48 am
Tengo un error que me esta sacando de quisio, hace un dia funcionaba perfecto, pero no se que paso, este es el error que me tira:

Código:
Traceback (most recent call last):
  File "cmd_main.py", line 49, in <module>
    maincmd()
  File "cmd_main.py", line 28, in maincmd
    date(cmd_input)
TypeError: an integer is required (got type str)
No se que rompi, solo dejo de funcionar derrepente...
Aca el codigo del cmd_main.py
Código
  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. import platform
  5. import sys
  6. from boot import *
  7. from commands import *
  8. from panic import *
  9. from dir_cmd import *
  10. from date_cmd import *
  11. from mkdir import *
  12.  
  13. global machine_name
  14. machine_name = platform.node()
  15.  
  16. def maincmd():
  17.    while True:
  18.        cmd_input = input("[%s]$~ " % machine_name)
  19.  
  20.        if "println" in cmd_input:
  21.            println(cmd_input)
  22.  
  23.        elif "clear" in cmd_input:
  24.            clear()
  25.            maincmd()
  26.  
  27.        elif "date" in cmd_input:
  28.            date(cmd_input)
  29.  
  30.        elif "machine_info" in cmd_input:
  31.            machine_info()
  32.  
  33.        elif "panic" in cmd_input:
  34.            panic("ran_out_mem")
  35.  
  36.        elif "dr" in cmd_input:
  37.            dr(cmd_input)
  38.  
  39.        elif "mkdir" in cmd_input:
  40.            mkdir(cmd_input)
  41.  
  42.        elif "commd_list" in cmd_input:
  43.            commd_list(cmd_input)
  44.  
  45.        else:
  46.            invalidCommand(cmd_input)
  47.  
  48. login()
  49. maincmd()
  50.  
y el codigo del date_cmd.py:
Código
  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. import calendar
  5. from datetime import datetime, date, time, timedelta
  6. import time
  7.  
  8. def date_cmd(args):
  9.    date_now = datetime.now()
  10.    time_epoch = time.time()
  11.  
  12.    try:
  13.        cmd_input = args.split(' ')
  14.        argument = cmd_input[1]
  15.  
  16.        if argument == "-e":    
  17.            print("Epoch time: %s" % time_epoch)
  18.  
  19.        elif argument == "-12":
  20.            date_format_12 = "%d/%m/%Y %I:%m %p"
  21.            date_12 = date_now.strftime(date_format_12)
  22.  
  23.            print("Date (12 hours format): %s" % date_12)
  24.  
  25.        elif argument == "-24":
  26.            date_format_24 = "%d/%m/%Y %H:%M:%S"
  27.            date_24 = date_now.strftime(date_format_24)
  28.  
  29.            print("Date (24 hours format): %s" % date_24)
  30.  
  31.        elif argument == "-h":
  32.            print(help_arg)
  33.  
  34.        else:
  35.            print("\033[1;36m"+'invalid argument for "date" command')
  36.            help_arg()
  37.  
  38.    except IndexError:
  39.        help_arg()
  40.    except TypeError:
  41.        help_arg()
  42.  
  43.    finally:
  44.        print("\033[;37m")
  45.  
  46. def help_arg():
  47.    print("""Date command made by n1sendev.
  48. &#9556;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9559;
  49. &#9553; \"date\" command help:   &#9553;
  50. &#9568;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9577;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9559;
  51. &#9553;Arguments (options):                                  &#9553;
  52. &#9553;                                                      &#9553;
  53. &#9553;-12 = Display the date and the hour in 12-hour format.&#9553;
  54. &#9553;-24 = Display the date and the hour in 24-hour format.&#9553;
  55. &#9553;-e = Display the date and time in epoch format.       &#9553;
  56. &#9553;-h = Display this help menu.                          &#9553;
  57. &#9562;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9565;
  58.               """)
  59.  
Saludos
PD: Esas palabras raras que empiezan con & alparecer es un bug del foro, ya que enrealidad son carcacteres para dibujar cajas, estan en ASCII
10  Informática / Hardware / Tarjeta de red muerta? en: 14 Noviembre 2017, 22:29 pm
Resulta que la tarjeta de red de mi PC dejo de funcionar derrepente...
Apague el pc, y lo encendi denuevo, ya que el pc se habia congelado (el Alt+REISUB no funciono nunca) cuando denuevo no encendia la luz de la tarjeta de red no prendia, y el sistema operativo (en este caso Linux Mint) no reconocia la tarjeta de red.
Lo peor es que tengo esas pc all-in-one, osea todos los componentes van soldados a la placa.
Espero que me ayuden.  :-(
Saludos.
Páginas: [1] 2 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines