【问题标题】:Input hexadecimal values into windows command prompt在 Windows 命令提示符中输入十六进制值
【发布时间】:2014-06-25 05:35:56
【问题描述】:

我开始学习漏洞利用并决定编写一些简单的程序来“玩”它。 代码非常简单: scanf("%s", &var1); strcpy(缓冲区, var1);

我在 windows xp 上编写了程序并在 ollydbg 上运行它。发现我可以覆盖 SEH,但是当我运行程序时,它会在 cmd 提示符下打开,我无法粘贴十六进制代码(漏洞利用),只能粘贴 ascii 字符。 例如:我需要过去的十六进制 0x90,但如果我过去了,它将被视为 ascii“0x90”。我尝试粘贴 \x90 之类的内容,但同样的处理,cmd 和程序将其视为 ascii 字符。

那么,我怎样才能在 cmd 提示符下将我的十六进制 shellcode 输入到程序中

【问题讨论】:

    标签: cmd exploit shellcode


    【解决方案1】:

    听起来你想要strtoul,它将十六进制字符转换为二进制。

       unsigned long int strtoul(const char *nptr, char **endptr, int base);
    
       unsigned long long int strtoull(const char *nptr, char **endptr,
                                       int base);
    

    【讨论】:

    • 不完全是,我不想修改程序,但想办法将十六进制字符输入到 scanf 中(在 windows 命令提示符下)
    • @Dan,你是怎么解决的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 2014-01-04
    • 2017-06-20
    • 2014-02-18
    • 1970-01-01
    • 2015-01-31
    相关资源
    最近更新 更多