你知道我在哪里可以找到Windows低级别程序集示例程序吗?
我有一些使用宏(NASM,MASM)的例子,但我想要纯粹的汇编,以便我以后可以构建一个shellcode。
非常感谢你们!
答案 0 :(得分:1)
使用汇编语言执行Windows GUI工作是很多的工作。这就是为什么你发现的例子使用宏 - 它消除了一些痛苦。
如果你真的想要纯汇编语言,一个好方法就是问你的编译器。编写一些C代码来调用CreateWindow
或其他什么,然后从编译器生成汇编列表(或使用调试器逐步执行它)。
答案 1 :(得分:1)
如果通过“纯粹的装配”你的意思是“不是作为一个宏或库”,那么这就是你必须要做的:
CreateWindow
或CreateWindowEx
windows.h
invoke
宏来呼叫CreateWindow
或CreateWindowEx
invoke
,那么只需push
将参数放入堆栈并直接call
函数 - 因为这就是调用为您做的事情您还可以使用masm forum中的MASM包获得很多帮助。
答案 2 :(得分:1)
真正(并且快速)学习win32程序集的最佳方法是反编译简单的win32程序。你可以从tutsforyou.com下载lena的倒车教程。另外你可以尝试从osix.net反向我 - 他们有一些非常直接的程序供你反转,最好的部分是你在完成关卡后看到masm32源代码。
工具:ollydbg,masm32等。
书籍:由Goppit编写的win32汇编程序,arteam的PE纲要,英特尔开发人员手册hxxp://osix.net
hxxp://tuts4you.com/download.php list.17
hxxp://www.intel.com/products/processor/manuals/
答案 3 :(得分:1)
答案 4 :(得分:0)
我对你的“我不是很满意,以便我可以在以后构建一个shellcode。” - 这就是那些给程序集起了个坏名字的东西。
我建议你看看FASM而不是MASM,因为它“更接近金属”,并且直接支持二进制输出。
答案 5 :(得分:0)
为了学习构建shellcode,我建议创建一个非常简单的c程序,它可以执行你想要shellcode做的事情,而不是使用IDA或Immunity(或者你熟悉的调试器/ dissasembler)来反汇编。你可以看到正在使用的指令。
我还会推荐以下书籍: