Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The debug target's oep has been parsed and disassembled correctly, however, neither ollydbg nor x64dbg are disassembling the buffer out of the oep by default, why? #168

Closed
ddkwork opened this issue Jul 6, 2024 · 15 comments
Assignees
Labels
bug Something isn't working

Comments

@ddkwork
Copy link
Contributor

ddkwork commented Jul 6, 2024

The problem this causes is that the disassembled code displayed after loading the target being debugged is not the same as in other debuggers.

@ddkwork ddkwork added the bug Something isn't working label Jul 10, 2024
@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024

测试载入cli可复现问题,发现x64dbg不是停留在oep,等start命令通过测试后再来处理这个

@HyperDbgBot
Copy link

HyperDbgBot commented Jul 11, 2024 via email

@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024 via email

@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024

或许我应该录制一个gif来展示这个困惑。有点难以描述。

@SinaKarvandi
Copy link
Member

okay

@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024

okay

I just found out why, the address it stays at is the tls callback

@SinaKarvandi
Copy link
Member

Do you mean the address is modified in TLS? Is the target binary packed or protected by anti-debugging methods?

你的意思是地址在 TLS 中被修改了吗?目标二进制文件是否被加壳或受到反调试方法的保护?

@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024 via email

@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024 via email

@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024 via email

@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024

After testing the tls callback table is empty, which shouldn't have any side effects, so abandon this plan

@ddkwork ddkwork closed this as completed Jul 11, 2024
@SinaKarvandi
Copy link
Member

Yes, I tested it without the '.start' command but it seems that it didn't start at the original entrypoint. That's expected since our process start methodology doesn't support TLS yet.

是的,我测试了没有使用“.start”命令,但它似乎没有从原始入口点启动。这是意料之中的,因为我们的进程启动方法尚不支持 TLS。

@SinaKarvandi
Copy link
Member

For your information, HyperDbg doesn't use DEBUG flags to CreateProcess since it negatively influences the debugger's transparency. We have our own method for running the target process without any help from Windows.

供您参考,HyperDbg 不使用 DEBUG 标志来 CreateProcess,因为它会对调试器的透明度产生负面影响。我们有自己的方法来运行目标进程,而无需 Windows 的任何帮助。

@SinaKarvandi
Copy link
Member

If you're interested to know how it's designed, I sent you a PDF (email). You can read this section: "6.1 Finding Entry Points". It describes how HyperDbg's '.start' command works.
如果你有兴趣了解它的设计,我给你发了一个 PDF(电子邮件)。你可以阅读本节:“6.1 Finding Entry Points”。它描述了 HyperDbg 的“.start”命令的工作原理。
https://arxiv.org/pdf/2405.00298

@ddkwork
Copy link
Contributor Author

ddkwork commented Jul 11, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants