【问题标题】:C++ executing a shellcode from caesar cipher does not work [closed]从凯撒密码执行shellcode的C++不起作用[关闭]
【发布时间】:2021-12-30 20:59:22
【问题描述】:

在我的代码示例中,我硬编码了我的 shellcode,并且执行正常:

请删除

【问题讨论】:

  • 您能否在此处按要求提供minimal reproducible example
  • 你有它! ^^ @πάνταῥεῖ
  • 我不这么认为,请重新阅读链接的文章!
  • 现在有完整的代码@πάνταῥεῖ
  • 很大的改进

标签: c++ winapi


【解决方案1】:

您的 Caesar 解码的 shellcode 与硬编码的 shellcode 不匹配,这就是您得到不同输出的原因。

我们以第一个字符为例,但这适用于整个数据:

您的凯撒编码字符串以 ASCII _ 字符开头,其十六进制值为 0x5F。当减 3 时,即变为十六进制值 0x5C,即 ASCII \ 字符。

但是,您的硬编码 shellcode 以 ASCII H 字符开头,其十六进制值为 0x48。无论您将该值左移(递减)3,还是将其右移(递增)3,结果都不会接近0x5C0x5F。左移,0x48 将是 0x45 (E)。右移,将是0x4B (K)。

这意味着你的凯撒编码字符串是你想要的 shellcode 的错误编码。

【讨论】:

  • 谢谢!这真的很奇怪,但我想我能够根据你的回答找到坏的编码器。其中一个正在移动我的字符,而新的 oncer 并没有做同样的过程。我不知何故把它们弄混了。
猜你喜欢
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多