如何生成混淆代码

发布于 2024-12-06 02:00:32 字数 164 浏览 0 评论 0原文

例如,考虑以下代码:

call far ptr 90b6h:79c35c2eh
shl dword ptr [ebp+0fh],1
db 67h
daa
push eax
push cs

在 C 编程中如何生成此代码块?我如何对该代码进行反混淆?

For example, consider the following code:

call far ptr 90b6h:79c35c2eh
shl dword ptr [ebp+0fh],1
db 67h
daa
push eax
push cs

How this code block generated in C programming? How can I deobfuscate that code?

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

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

发布评论

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

评论(1

会发光的星星闪亮亮i 2024-12-13 02:00:32

它不是混淆的 C 代码。如果它来自 C 程序,那么它是来自一行左右的 C 代码的几行汇编程序。

一旦分解为汇编程序,就很难再转向其他方式,尤其是在自动化的基础上。虽然您可以获得一些可以按照这些思路执行某些操作的工具,但结果将不是原始的 C 代码,而是执行相同操作的不同代码。结果看起来仍然很混乱。

  1. 编译:将高级语言转换为目标代码,可能还剩下中间汇编程序。
  2. 反汇编: 目标代码到汇编源代码。这可以通过某些程序或调试器来完成。
  3. 反编译:将编译后的目标代码转换回原始源语言。

您拥有的是 1 或 2 的汇编器输出。您似乎要求 3。

It's not obfuscated C code. If this comes from a C program it is a few lines of assembler from a line or so of C code.

Once broken down to assembler it is very difficult to go the other way, especially on an automated basis. While you can get some tools that will do something along those lines the results will not be the original C code but something different that does the same thing. The results will still look obfuscated.

  1. Compiling: converting high-level language to object code, with perhaps intermediate assembler left over.
  2. Disassemble: Object code to assembler source. This can be done by some programs or debuggers.
  3. Decompile: Converting compiled object code back to the original source language.

What you have is the assembler output of either 1 or 2. You seem to be asking for 3.

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