exporta symbols pra nois ktar os opcodes usando o gdb.C:\Documents and Settings\Administrador>gdbGNU gdb 5.2.1Copyright 2002 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License, and you arewelcome to change it and/or distribute copies of it under certain conditions.Type "show copying" to see the conditions.There is absolutely no warranty for GDB. Type "show warranty" for details.This GDB was configured as "i686-pc-mingw32".(gdb) symbol messagebox.exeReading symbols from messagebox.exe...(no debugging symbols found)...done.(gdb) qGostaria de fazer uma ressalva para nao passar despercebido, porque sei que a maioria dos kras ignoram completamente esse banner do gdb, soh observe que ele foi configurado conforme "i686-pc-mingw32" onde *http://www.mingw.org Com o comando symbol ou file seguido do caminho do executavel, o gdb vai ktar os symbols dessa APP, eh a mesma coisa que importar ele pra dentro do debugger. (gdb) help symbolLoad symbol table from executable file FILE.The `file' command can also load symbol tables, as well as setting the fileto execute.(gdb) help fileUse FILE as program to be debugged.It is read for its symbols, for getting the contents of pure memory, and it is the program executed when you use the `run' command. If FILE cannot be found as specified, your execution directory path ($PATH) is searched for a command of that name. No arg means to have no executable file and no symbols. (gdb) q A opcao -t do objdump mostra-nos o conteudo da tabela symbol, veja a linha extraida do help (-H): -t, --syms Display the contents of the symbol table(s)C:\Documents and Settings\Administrador\Desktop>objdump -t messagebox.exemessagebox.exe: file format pei-i386SYMBOL TABLE:no symbolsVoce pode filtrar a busca, pode procurar por uma funcao ocultaem um programa que voce codou e exportou symbols na compilacao com a opcao -ggdb do gcc, pra usar como exemplo de retorno pra aplicacao bugada, bastanto usar o pipe (|) seguido do find.exe ou grep nos linuxes, algo como: objdump.exe -t vulnerable.exe | find.exe "hidden_function" Escrevo essas coisas ae pra vc nao ficar dependendo de uma unica ferramenta... Escrevi um paper[x] introdutorio sobre desenvolvimento de shellcode no linux onde voce poderah ver melhor como ktar opcodes (que serao jogados p/ maquina da vitima :) no sistema do tio Linus usando o objdump e o gdbe talz pra katar os opcodes. Os manohs tambem codaram oobjdump, strings e esses outros progs do capeta pra W32, como voce pode perceber ;p for testing my win-objdump.exe... };P ---=[ Seu primeiro shellcode - Your first shellcodeBlz, vamo mecher com shellcode agora; Bem, nao eh um "oh, que shellcode hacku", mas eh um shellcode ;P Como voce viu nopaper passado para uma funcao ser exe-cutada o processador joga os parametros da mesma para uma regiao de memoria chamada de pilha, ou stack, ou seja, na funcao exit() por exemplo, voce fornece a ela um argumento (status de saida) que pode ser '0' (para representar suces-so na execucao do programa) ou 1 (erro), em 'C' voce escreve lah 'exit(0);' e pronto, oproprio compilador jah arruma tudo pra ti, mas em assembly devemos escrever os passos para a execucao do programa, ou seja "estruturamos" o execu-tavel e mandamos o sistema