Bash 'printf'相当于命令提示符?

发布于 2024-10-21 17:34:13 字数 246 浏览 4 评论 0原文

我希望在 Windows 命令提示符下将一些字符串输入通过管道传输到一个小型 C 程序。在 bash 中我可以使用

$ printf "AAAAA\x86\x08\x04\xed" | ./program

本质上,我需要一些东西来转义命令提示符中的那些十六进制数字。

命令提示符/powershell 中是否有与 printf 等效或类似的命令?

谢谢

I'm looking to pipe some String input to a small C program in Windows's command prompt. In bash I could use

$ printf "AAAAA\x86\x08\x04\xed" | ./program

Essentially, I need something to escape those hexadecimal numbers in command prompt.

Is there an equivalent or similar command for printf in command prompt/powershell?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谜兔 2024-10-28 17:34:13

在 PowerShell 中,您可以这样做:

"AAAAA{0}{1}{2}{3}" -f 0x86,0x08,0x04,0xed | ./program

In PowerShell, you would do it this way:

"AAAAA{0}{1}{2}{3}" -f 0x86,0x08,0x04,0xed | ./program
故事↓在人 2024-10-28 17:34:13

我最近自己也提出了同样的问题,并决定对于开发 Windows 漏洞的人来说,值得安装 cygwin :)

否则,可以构建一个模仿 printf 功能的小型 C 程序:

#include <string.h>

int main(int argc, char *argv[])
{
    int i;
    char tmp[3];

    tmp[2] = '\0';

    if (argc > 1) {
        for (i = 2; i < strlen(argv[1]); i += 4) {
            strncpy(tmp, argv[1]+i, 2);
            printf("%c", (char)strtol(tmp, NULL, 16));
        }
    }
    else {
        printf("USAGE: printf.exe SHELLCODE\n");
        return 1;
    }

    return 0;
}

该程序仅处理“ \xAB\xCD" 字符串,但如果需要的话,扩展它来处理 "AAAAA\xAB\xCD" 字符串应该不难。

I recently came up with the same question myself and decided that for someone developing Windows exploits it is worth installing cygwin :)

Otherwise one could build a small C program mimicking printf's functionality:

#include <string.h>

int main(int argc, char *argv[])
{
    int i;
    char tmp[3];

    tmp[2] = '\0';

    if (argc > 1) {
        for (i = 2; i < strlen(argv[1]); i += 4) {
            strncpy(tmp, argv[1]+i, 2);
            printf("%c", (char)strtol(tmp, NULL, 16));
        }
    }
    else {
        printf("USAGE: printf.exe SHELLCODE\n");
        return 1;
    }

    return 0;
}

The program only handles "\xAB\xCD" strings, but it shouldn't be difficult to extend it to handle "AAAAA\xAB\xCD" strings if one needs it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文