Windows命令行中的十六进制输入

时间:2011-08-28 16:58:54

标签: command-line hex

我正在尝试解决这个编程难题,我学校的另一名学生推出,我们获得了一个.exe和相应的.c源代码。我试图解决问题的方法是缓冲区溢出,我设法在Linux中使用perl脚本作为输入,以便我可以输入返回地址的十六进制值。

问题是我们必须在Windows中使用.exe来完成它,我不知道如何在命令行中输入十六进制值。对于Linux版本,我使用了这个问题:Hex values in gdb input files我的代码最终是这样的:

./a.out $(perl -e 'print "A"x34 . "\x7d\x86\x04\x08";')

我如何在Windows命令行上执行此操作?

感谢您提供的任何帮助,如果我的问题在某些方面缺乏,我会提前道歉;我对这个东西很新。

1 个答案:

答案 0 :(得分:1)

你有一些选择

  1. 为Windows安装PERL或PYTHON软件包。然后你可以像在Linux中那样做。

  2. 如果你有powershell,你可以按照下面的链接进行一些脚本编写:

  3. http://www.sans.org/windows-security/2010/02/11/powershell-byte-array-hex-convert/

    请注意,在编译Windows的源代码时,堆栈结构和EIP位置会发生变化。因此,相同的有效负载可能无法在Linux上运行。