Win32低级组件

时间:2010-09-28 03:41:32

标签: windows assembly inline-assembly

你知道我在哪里可以找到Windows低级别程序集示例程序吗?

我有一些使用宏(NASM,MASM)的例子,但我想要纯粹的汇编,以便我以后可以构建一个shellcode。

非常感谢你们!

6 个答案:

答案 0 :(得分:1)

使用汇编语言执行Windows GUI工作是很多的工作。这就是为什么你发现的例子使用宏 - 它消除了一些痛苦。

如果你真的想要纯汇编语言,一个好方法就是问你的编译器。编写一些C代码来调用CreateWindow或其他什么,然后从编译器生成汇编列表(或使用调试器逐步执行它)。

答案 1 :(得分:1)

如果通过“纯粹的装配”你的意思是“不是作为一个宏或库”,那么这就是你必须要做的:

  • 下载masm32 package
  • 查看大量的样本,会有很多人使用CreateWindowCreateWindowEx
  • 开始自己的计划
  • windows.h
  • 中的链接
  • 使用invoke宏来呼叫CreateWindowCreateWindowEx
  • 如果您不想使用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)

本教程可能对您有用:winamtut

MASM论坛中的这个topic也很棒。

如果你的建筑是x64,那么试试这个link

最后,如果你对某些理论感兴趣,也许这个link可能会很好。

答案 4 :(得分:0)

我对你的“我不是很满意,以便我可以在以后构建一个shellcode。” - 这就是那些给程序集起了个坏名字的东西。

我建议你看看FASM而不是MASM,因为它“更接近金属”,并且直接支持二进制输出。

答案 5 :(得分:0)

为了学习构建shellcode,我建议创建一个非常简单的c程序,它可以执行你想要shellcode做的事情,而不是使用IDA或Immunity(或者你熟悉的调试器/ dissasembler)来反汇编。你可以看到正在使用的指令。

我还会推荐以下书籍:

Hacking: The Art of Exploitation (2nd Edition)

The Shellcoder's Handbook