Puedo usar call
para ejecutar c funciones, pero ¿cómo ejecutar el ensamblado o incluso el código de shell directamente?¿Cómo ejecutar el ensamblado en gdb directamente?
Respuesta
para ejecutar código shell, puede editar el contenido de una función directa:
(gdb) b foo
Breakpoint 1 at 0x400608
(gdb) run
Breakpoint 1, 0x0000000000400608 in foo()
(gdb) x/16bx foo
0x400604 <foo>: 0x55 0x48 0x89 0xe5 0x53 0x48 0x81 0xec
(gdb) set ((unsigned char *)foo)[6] = 0x85
(gdb) x/16bx foo
0x400604 <foo>: 0x55 0x48 0x89 0xe5 0x53 0x48 0x85 0xec
(gdb) cont
No sé cómo ejecuta códigos de operación desde gdb
, pero ciertamente puedes hacer lo que quieras con los registros. Por ejemplo, en lugar de mov %rbx, %rax
puede utilizar set $rax = $rbx
:
(gdb) p $rax
$1 = 3671197290184
(gdb) set $rax = $rbx
(gdb) p $rax
$2 = 0
(gdb)
No creo que gdb incluya un ensamblador, por lo que no esperaría poder ingresar directamente al ensamblaje.
Usted puede utilizar el comando shell
GDB para ejecutar comandos shell:
(gdb) shell uname -m
x86_64
pero en C que puede incrustar assebmly directamente, ¿verdad? Aquí me refiero a cosas como '\ x23 \ x24 ...' por el código de shell – compiler
por "shellcode", el compilador significaba un tipo específico de [código binario] (http://en.wikipedia.org/wiki/Shellcode) ejecutado por la CPU. –
- 1. gdb - ¿Cómo ejecutar automáticamente el ejecutable?
- 2. ¿Cómo ejecutar gdb con LD_PRELOAD?
- 3. Emacs gdb: flecha de la pantalla al depurar el ensamblado
- 4. ¿Cómo puedo usar Bochs para ejecutar el código de ensamblado?
- 5. Ejecutar JSP directamente desde Java
- 6. ejecutar código Perl directamente en Emacs
- 7. ¿Cómo ejecutar gdb contra un daemon en segundo plano?
- 8. ¿Cómo ejecutar jQuery directamente en cualquier página del navegador?
- 9. Ejecutar Java-applets directamente (sin página html)
- 10. GDB: Ejecutar hasta el punto de corte específico
- 11. Ejecutar un archivo JavaScript directamente desde el navegador
- 12. ¿Cómo ejecutar archivos huevo Python directamente sin instalarlos?
- 13. Cómo configurar SQLite para ejecutar con NHibernate donde el ensamblado resuelve System.Data.SQLite?
- 14. ASP.NET ¿Cómo agregar el ensamblado en web.config?
- 15. Cómo escribo todo esto en el ensamblado
- 16. ¿Cómo dibujar directamente en el escritorio?
- 17. ¿Es una buena idea ejecutar `... par.map (` en listas grandes directamente?
- 18. Cambiando al ensamblaje en gdb
- 19. ¿Cómo se usa gdb?
- 20. ¿Cómo leo el valor de todos los registros con gdb?
- 21. ¿Cómo depuro en un ensamblado ILMerged?
- 22. ¿Puedo compilar y ejecutar la expresión de C# sin guardar el ensamblado en el disco?
- 23. Incrustar pdb en el ensamblado
- 24. ¿Cómo puedo ejecutar comandos externos desde el símbolo del sistema gdb?
- 25. Cómo imprimir wstring en gdb
- 26. Cómo importar 'GDB' en Python
- 27. Ver tanto el código de ensamblado como el código C
- 28. ¿Alguien puede explicar este código de operación J86 JMP ensamblado directamente?
- 29. ¿Por qué puedo ejecutar JAR directamente desde bash?
- 30. Cómo implementar el operador de mod en el ensamblado
¿Cuál es la diferencia entre 'let' y' set'? – compiler
Lo siento, es un error tipográfico, se supone que debe leer 'set'. Arreglaré la publicación. –
¿Hay un env Python Shell para el código de ensamblado? –