@hyperdbg

@hyperdbg / Public archive of HyperDbg Telegram messages.

  • 2025

    • Mar 2025 (385)
    • Feb 2025 (220)
    • Jan 2025 (167)
  • 2024

    • Dec 2024 (72)
    • Nov 2024 (235)
    • Oct 2024 (83)
    • Sep 2024 (263)
    • Aug 2024 (332)
    • Jul 2024 (403)
    • Jun 2024 (570)
    • May 2024 (245)
    • Apr 2024 (156)
    • Mar 2024 (90)
    • Feb 2024 (134)
    • Jan 2024 (309)
  • 2023

    • Dec 2023 (62)
    • Nov 2023 (326)
    • Oct 2023 (76)
    • Sep 2023 (315)
    • Aug 2023 (757)
    • Jul 2023 (2215)
    • Jun 2023 (778)
    • May 2023 (300)
    • Apr 2023 (1)
    • Feb 2023 (5)
    • Jan 2023 (1)
  • 2022

    • Nov 2022 (1)
    • Oct 2022 (2)
    • Sep 2022 (1)
    • Aug 2022 (1)
    • Jul 2022 (39)
    • Jun 2022 (23)
    • May 2022 (256)
  • 2021

    • Dec 2021 (1)
    • Oct 2021 (82)
    • Jun 2021 (1)
    • Feb 2021 (1)
    • Jan 2021 (2)
  • 2020

    • Dec 2020 (1)
    • Nov 2020 (2)
RSS feed.    Made with tg-archive
  • 04 November 2024 (1 messages)
  • @7863648479 #8141 03:24 AM, 04 Nov 2024
    Joined.
  • 05 November 2024 (5 messages)
  • @1906828983 #8142 01:50 AM, 05 Nov 2024
    Will similar ept hooks created by smap and smep perform better?
  • @Hu_81_666 #8143 05:04 AM, 05 Nov 2024
    Joined.
  • @HughEverett ↶ Reply to #8142 #8144 08:04 AM, 05 Nov 2024
    Not sure if I understand the question. What do you mean by smap and smep? If you're talking about CPU features to prevent access/exec user code from supervisor, then how could it be related to EPT hooks? 🤔
  • @1906828983 ↶ Reply to #8144 #8145 08:56 AM, 05 Nov 2024
    I mean this : https://github.com/brew02/budgetept
    GitHub - brew02/BudgetEPT: Create stealthy, inline, EPT-like hooks using SMAP and SMEP

    Create stealthy, inline, EPT-like hooks using SMAP and SMEP - brew02/BudgetEPT

  • @HughEverett ↶ Reply to #8145 #8146 08:58 PM, 05 Nov 2024
    From what I see in the source code (might be wrong), I could assume that they are some smap preventions for a granularity of one page. If that's the case, why not just using the page table attributes instead of smap or smep? 🤔
  • 06 November 2024 (1 messages)
  • @1906828983 #8147 01:42 PM, 06 Nov 2024
    Looks like just another interesting research analysis, far less practical than the current epthook
  • 07 November 2024 (1 messages)
  • @jacker66 #8148 07:32 AM, 07 Nov 2024
    Joined.
  • 08 November 2024 (3 messages)
  • @7036954381 #8149 03:50 AM, 08 Nov 2024
    Joined.
  • @SicPsy #8150 09:14 PM, 08 Nov 2024
    How VMX_EXIT_REASON_EXECUTE_INVLPG is handled?
  • @HughEverett ↶ Reply to #8150 #8151 11:21 PM, 08 Nov 2024
    It's not an unconditional VM-exit. HyperDbg doesn't handle it.
  • 09 November 2024 (15 messages)
  • @instw0 #8152 04:56 AM, 09 Nov 2024
    I want to use the command !monitor
  • @instw0 #8153 04:56 AM, 09 Nov 2024
    but :
    0: kHyperDbg> !monitor r fffff80664a00000 fffff806628c0000
    please choose the 'from' value first, then choose the 'to' value
  • @HughEverett ↶ Reply to #8153 #8154 07:50 AM, 09 Nov 2024
    The second address could not be greater than the first address.
  • @HughEverett ↶ Reply to #8153 #8155 07:51 AM, 09 Nov 2024
    You could also use 'l <size>' if it's not convenient to find the second address.
  • @instw0 ↶ Reply to #8155 #8157 01:18 PM, 09 Nov 2024
    what is the maximum range that can be set in !monitor
  • @HughEverett ↶ Reply to #8157 #8158 01:26 PM, 09 Nov 2024
    Theoretically, there is no limitation for it, but of course if you put a monitor on ~100MB of RAM, HyperDbg will have a hard time interpreting VM-exits in your computer. 😅
  • @HughEverett ↶ Reply to #8157 #8159 01:29 PM, 09 Nov 2024
    Just keep in mind that the '!monitor' command in the Debugger mode (not in VMI mode) needs to have all of the page entries to be valid and available in the RAM. If it's not available (i.e., it's paged out or never paged in), then HyperDbg will show you an error and instruct you to use the '.pagein' command to force Windows to bring your address range into the memory.
  • @HughEverett ↶ Reply to #8157 #8160 01:32 PM, 09 Nov 2024
    I see people usually use this HyperDbg feature to monitor the execution in a section of a PE. If you want to do this, make sure that Windows has enough RAM so it won't page-out unused PE pages to the disk. HyperDbg won't check for this kind of situation, which might produce false positive results.
  • @instw0 ↶ Reply to #8160 #8161 01:46 PM, 09 Nov 2024
    everything is a little simpler, I would like to track calls inside the text ntoskrnl section)))
  • @instw0 #8162 01:47 PM, 09 Nov 2024
    using the "context" constant, do I get the address from where I was contacted?
  • @HughEverett ↶ Reply to #8162 #8163 03:15 PM, 09 Nov 2024
    The $context is a pseudo-register, not a constant. It displays the address currently being modified or executed, rather than the address attempting to read, write, or call it. In those cases, you’ll need to check the stack to identify which address was pushed there.
  • @instw0 ↶ Reply to #8163 #8164 04:26 PM, 09 Nov 2024
    1: kHyperDbg> !monitor r fffff80441590000 fffff80442200000
    err, invalid address (c0000005)
    address may be paged-out or unavailable on the page table due to 'demand paging'
    please refer to https://docs.hyperdbg.org/tips-and-tricks/considerations/accessing-invalid-address for further information
    Accessing Invalid Address | HyperDbg Documentation

    Considerations for accessing memory in different modes

  • @instw0 #8165 04:26 PM, 09 Nov 2024
    The error I'm getting is
  • @HughEverett ↶ Reply to #8165 #8166 08:18 PM, 09 Nov 2024
    Yes, as I mentioned earlier, pages should be available in the memory for the !monitor command since this command works on physical addresses. Follow the instructions (the documentation link) to fix it.
  • @HyperDbgBot #8167 b o t 09:13 PM, 09 Nov 2024
    [matrix] <pr0xy101 (@pr0xy101:matrix.org)> hello, can i debug easy anti-cheat using hyperdbg?
  • 10 November 2024 (3 messages)
  • @instw0 ↶ Reply to #8166 #8168 05:21 AM, 10 Nov 2024
    0: kHyperDbg> prealloc regular-event 1000000000
    the requested pools are allocated and reserved
    fffff805`3ad61292 0F 01 C1 vmcall

    1: kHyperDbg> prealloc monitor 1000000000
    the requested pools are allocated and reserved
    fffff805`3ad61292 0F 01 C1 vmcall

    0: kHyperDbg> !monitor r fffff80521600000+(0x140200000-0x140001000) fffff80521600000+(0x1405CB000-0x140001000)
    err, the pre-allocated buffer is empty, usually this buffer will be filled at the next IOCTL when the debugger is continued (c0000023)
    please visit the documentation for the 'prealloc' command or use '.help prealloc' to to reserve more pre-allocated pools

    Do you need more pools? ;)))
  • @HughEverett ↶ Reply to #8168 #8169 12:46 PM, 10 Nov 2024
    Are you sure you're computing it correctly? It seems that you're trying to hook somewhere in the kernel, but the results of the expressions are in the user-mode?

    photo_2024-11-10_12-46-51.jpg
  • @HughEverett ↶ Reply to #8168 #8170 12:46 PM, 10 Nov 2024

    photo_2024-11-10_12-46-51.jpg
  • 11 November 2024 (1 messages)
  • @instw0 ↶ Reply to #8169 #8172 11:33 AM, 11 Nov 2024
    for my vmware(windows 10 18363) is not working !monitor for ntoskrnl. Using the command !monitor is getting error 0x00005c (pagein). By entering .pagein commands for ntoskrnl addresses, the computer (vmware) restarts (((
  • 12 November 2024 (9 messages)
  • @HughEverett ↶ Reply to #8172 #8174 08:33 AM, 12 Nov 2024
    This is expected. The '.pagein' command injects a #PF (page-fault) into the system to force Windows to bring the page into the RAM.
  • @HughEverett #8175 08:35 AM, 12 Nov 2024
    If the page is already in the RAM or it's available, Windows doesn't expect to receive a page-fault and what happens here? Windows assumes that something went wrong as the #PF is generated by CPU by error. Which might lead to double/triple-fault and break the system (restart).
  • @HughEverett #8176 08:37 AM, 12 Nov 2024
    You should be cautious when using the '.pagein' command. If you use it on a wide-range of RAM, usually such errors will happen because somewhere in the middle of the range might be already available into RAM and it will cause system crash as #PF is not expected.
  • @HyperDbgChannel #8177 11:17 AM, 12 Nov 2024
    Guys, just because HyperDbg’s '!monitor' command can technically monitor unlimited address ranges doesn’t mean you can monitor any memory range you want. So let’s not go wild, alright? 😅

    https://docs.hyperdbg.org/commands/extension-commands/monitor

    photo_2024-11-12_11-17-08.jpg
  • @HughEverett ↶ Reply to #8177 #8178 11:18 AM, 12 Nov 2024
    It refers to you @instw0 😅
  • @kishou_yusa ↶ Reply to #8177 #8179 11:32 AM, 12 Nov 2024
    what can go wrong
  • @HughEverett ↶ Reply to #8179 #8180 11:54 AM, 12 Nov 2024

    photo_2024-11-12_11-54-23.jpg
  • @instw0 #8181 03:42 PM, 12 Nov 2024
    how many hooks can I put in at a time (!epthook)?
  • @HughEverett ↶ Reply to #8181 #8182 05:02 PM, 12 Nov 2024
    There is a limit to the number of '!epthook's you can place on a single 4 KB page. If you reach this limit, HyperDbg will display an error message tells you to adjust the constant and recompile HyperDbg. However, there’s no restriction on the number of !epthook`s across different pages. Essentially, there’s no practical limit, but be cautious not to overload the system with too many breakpoints!
  • 13 November 2024 (151 messages)
  • @6695510551 #8183 12:20 PM, 13 Nov 2024
    guys, I want to test r3 epthook. The code is shown in the following image, This test runs on non-root mode

    photo_2024-11-13_12-20-56.jpg
  • @6695510551 #8184 12:21 PM, 13 Nov 2024
    Now I have encountered a problem, the function inside the function does not return (BroadcastEnableBreakpointExitingOnExceptionBitmapAllCores)

    photo_2024-11-13_12-21-21.jpg
  • @6695510551 #8185 12:21 PM, 13 Nov 2024
    After debugging, I found that it is caused by the following function

    photo_2024-11-13_12-21-42.jpg
  • @6695510551 #8186 12:21 PM, 13 Nov 2024
    When I tried to skip the BroadcastEnabled BreakpointExitingOnExceptionBitmapAllCores function and observe the program's response, the second error occurred.
    The PoolManageRequestPool function returns 0.

    photo_2024-11-13_12-21-59.jpg
  • @6695510551 #8187 12:22 PM, 13 Nov 2024
    What should I do now? 😢
  • @HughEverett ↶ Reply to #8187 #8188 12:28 PM, 13 Nov 2024
    Can you explain about the environment? Like are you setting an EPT hook from a kernel driver and you're using the 'Hyperhv' project as an imported module? Or is it coming from the hyperdbg-cli.exe (libhyperdbg.dll)?
  • @6695510551 #8189 12:31 PM, 13 Nov 2024
    I am using hyperdbg-cli.exe, but I have made some minor modifications to hyperhv
  • @6695510551 #8190 12:31 PM, 13 Nov 2024

    photo_2024-11-13_12-31-38.jpg
  • @HughEverett #8192 12:34 PM, 13 Nov 2024
    Something is wrong here. The following combination of code will crash HyperDbg, you're modifying the wrong place.
  • @HughEverett ↶ Reply to #8190 #8193 12:35 PM, 13 Nov 2024
    Are you running HyperDbg in VMI-mode? or the Debugger-mode?
  • @6695510551 #8194 12:35 PM, 13 Nov 2024
    .connect local
  • @6695510551 #8195 12:35 PM, 13 Nov 2024
    load vmm
  • @HughEverett #8196 12:36 PM, 13 Nov 2024
    It's VMI-mode. Now, are you trying to put an EPT hook the user-mode of another process?
  • @6695510551 #8197 12:37 PM, 13 Nov 2024
    Yes, that's what I want to do now
  • @HughEverett #8198 12:37 PM, 13 Nov 2024
    What is the handler of the breakpoint? Is WinDbg handling the breakpoint? Like are you running it in a virtual machine (VMware) or in the baremetal?
  • @6695510551 #8199 12:38 PM, 13 Nov 2024
    I didn't do any additional processing, I just wanted to observe the phenomenon of EPT working
  • @HughEverett ↶ Reply to #8199 #8200 12:39 PM, 13 Nov 2024
    Then, why don't you use the command line (scripts) for that?

    https://docs.hyperdbg.org/commands/extension-commands/epthook
    !epthook (hidden hook with EPT - stealth breakpoints) | HyperDbg Documentation

    Description of the '!epthook' command in HyperDbg.

  • @HughEverett ↶ Reply to #8199 #8201 12:41 PM, 13 Nov 2024
    Take a look at this video:
    https://www.youtube.com/watch?v=tjsFRBFGis4&ab_channel=OpenSecurityTraining2
    Dbg3301: HyperDbg 05 01 Intro and Classic Hidden Hooks

    View the full free MOOC at https://ost2.fyi/Dbg3301. This course is an introductory guide to HyperDbg debugger, guiding you through the initial steps of using HyperDbg, covering essential concepts, principles, debugging functionalities, along with practical examples and numerous reverse engineering methods that are unique to HyperDbg. Whether you have an interest in reverse engineering or seek to elevate your reverse engineering skills with hypervisor-assisted approaches, this course provides a solid foundation for starting your journey.

  • @6695510551 #8202 12:41 PM, 13 Nov 2024
    This command has no effect.😢
  • @HughEverett ↶ Reply to #8202 #8203 12:41 PM, 13 Nov 2024
    What was the command? Maybe you wrote an incorrect script.
  • @6695510551 #8204 12:41 PM, 13 Nov 2024
    !epthook 7ff7a0bc13f0 pid 1ec4 asm code {ret} this is my code.
  • @HughEverett ↶ Reply to #8204 #8205 12:42 PM, 13 Nov 2024
    This code, won't do anything!
  • @HughEverett #8206 12:42 PM, 13 Nov 2024
    The 'ret' is executed in the VMX-root mode as additional assembly code, it's not running in the target executable file!
  • @HughEverett #8207 12:42 PM, 13 Nov 2024
    Are you trying to bypass a 'CALL' instruction?
  • @6695510551 #8208 12:43 PM, 13 Nov 2024
    Yes, I tried to make a function return directly
  • @HughEverett ↶ Reply to #8208 #8209 12:44 PM, 13 Nov 2024
    okay, let me find the correct example. I'll send it here in a bit.
  • @6695510551 #8210 12:44 PM, 13 Nov 2024
    i love you , bro 😂
  • @HughEverett ↶ Reply to #8210 #8212 12:49 PM, 13 Nov 2024
    You need a script like this:

    !epthook 7ff7a0bc13f0 pid 1ec4 script {

    @rip = poi(@rsp); // pop the return address from stack
    @rsp = @rsp + 8; // adjust the stack

    printf("Function call ignored!\n");

    }
  • @HughEverett ↶ Reply to #8212 #8213 12:50 PM, 13 Nov 2024
    Put it on the target function that is called (not the 'CALL' instruction that tries to call the target function).
  • @6695510551 #8214 12:50 PM, 13 Nov 2024
    thank you so much
  • @6695510551 #8215 01:01 PM, 13 Nov 2024
    This error has occurred now😢

    photo_2024-11-13_13-01-35.jpg
  • @6695510551 #8216 01:02 PM, 13 Nov 2024
    vmware 17.5.1
  • @HughEverett ↶ Reply to #8215 #8217 01:03 PM, 13 Nov 2024
    Is the process id still valid?
  • @6695510551 #8218 01:03 PM, 13 Nov 2024
    I used 1 CPU core
  • @HughEverett #8219 01:03 PM, 13 Nov 2024
    pid 1ec4
  • @HughEverett ↶ Reply to #8219 #8220 01:03 PM, 13 Nov 2024
    I mean this one.
  • @6695510551 #8221 01:04 PM, 13 Nov 2024
    yes, pid still valid
  • @HughEverett #8222 01:05 PM, 13 Nov 2024
    Could you check it with:
    eb 7ff7a0bc13f0 pid 1ec4
  • @HughEverett ↶ Reply to #8222 #8223 01:05 PM, 13 Nov 2024
    Does it show anything?
  • @6695510551 #8224 01:06 PM, 13 Nov 2024

    photo_2024-11-13_13-06-04.jpg
  • @HughEverett #8225 01:06 PM, 13 Nov 2024
    Oh sorry
  • @HughEverett #8226 01:06 PM, 13 Nov 2024
    db instead of eb
  • @HughEverett #8227 01:06 PM, 13 Nov 2024
    db 7ff7a0bc13f0 pid 1ec4
  • @HughEverett ↶ Reply to #8227 #8228 01:06 PM, 13 Nov 2024
    My mistake.
  • @HughEverett ↶ Reply to #8227 #8229 01:07 PM, 13 Nov 2024
    This one is the correct command.
  • @6695510551 #8230 01:07 PM, 13 Nov 2024
    It seems that the process's memory cannot be read
  • @6695510551 #8231 01:07 PM, 13 Nov 2024

    photo_2024-11-13_13-07-27.jpg
  • @HughEverett ↶ Reply to #8231 #8232 01:07 PM, 13 Nov 2024
    The target is not valid?
  • @6695510551 #8233 01:08 PM, 13 Nov 2024
    yes, but ... emm...... let me see
  • @6695510551 #8234 01:12 PM, 13 Nov 2024
    I don't know what happened, it used to work😂

    photo_2024-11-13_13-12-15.jpg
  • @HughEverett ↶ Reply to #8234 #8235 01:13 PM, 13 Nov 2024
    The address is invalid (probably because of KASLR?).
  • @6695510551 #8236 01:15 PM, 13 Nov 2024
    I don't know.
    I will try restarting VMware first, and then I will try to solve the problem with invalid address
  • @6695510551 #8237 01:15 PM, 13 Nov 2024
    thanks
  • @HughEverett ↶ Reply to #8236 #8238 01:15 PM, 13 Nov 2024
    Let me know, what happened if you find a way around it.
  • @6695510551 #8239 01:16 PM, 13 Nov 2024
    ok
  • @6695510551 #8240 01:25 PM, 13 Nov 2024
    This code can only work on the first attempt
    The second time it stopped working

    photo_2024-11-13_13-25-24.jpg
  • @HughEverett ↶ Reply to #8240 #8241 01:26 PM, 13 Nov 2024
    Let me check it on my system.
  • @6695510551 #8242 01:29 PM, 13 Nov 2024
    maybe i should pull HyperDbg from GhuHub again?
  • @HughEverett ↶ Reply to #8242 #8243 01:29 PM, 13 Nov 2024
    Which version of HyperDbg do you use?
  • @6695510551 #8244 01:30 PM, 13 Nov 2024
    0.10.2
  • @HughEverett ↶ Reply to #8244 #8245 01:30 PM, 13 Nov 2024
    Nope, no need to pull. Give me a bit to test it.
  • @6695510551 #8246 01:31 PM, 13 Nov 2024
    👍
  • @HughEverett ↶ Reply to #8240 #8247 01:33 PM, 13 Nov 2024
    I test it with a custom application:

    photo_2024-11-13_13-33-49.jpg
  • @HughEverett #8248 01:34 PM, 13 Nov 2024

    photo_2024-11-13_13-34-05.jpg
  • @HughEverett #8249 01:34 PM, 13 Nov 2024
    Is there any anti-debugging method in your target application that leads to this behavior?
  • @6695510551 #8250 01:35 PM, 13 Nov 2024

    photo_2024-11-13_13-35-44.jpg
  • @6695510551 #8251 01:35 PM, 13 Nov 2024
    this is my demo
  • @HughEverett ↶ Reply to #8250 #8252 01:37 PM, 13 Nov 2024
    what is &test?
  • @6695510551 #8253 01:37 PM, 13 Nov 2024

    photo_2024-11-13_13-37-59.jpg
  • @HughEverett #8254 01:38 PM, 13 Nov 2024
    Could you please copy-paste these two functions here?
  • @HughEverett #8255 01:38 PM, 13 Nov 2024
    I'm gonna test it.
  • @6695510551 #8256 01:39 PM, 13 Nov 2024
    functions?
  • @HughEverett ↶ Reply to #8256 #8257 01:39 PM, 13 Nov 2024
    test() and main()
  • @6695510551 #8258 01:39 PM, 13 Nov 2024
    int test()
    {
    cout << "\tinput text, and messagebox" << endl;
    string str;
    cin >> str;
    return MessageBoxA(0, str.c_str(), 0, 0);
    }
  • @6695510551 #8259 01:39 PM, 13 Nov 2024
    int main()
    {
    {
    BYTE* pCode = (BYTE*)&test;
    cout << "pid:0x" << std::hex << GetCurrentProcessId() << ", proc:0x" << (PVOID)pCode << endl;
    help();
    }
  • @HughEverett #8260 01:40 PM, 13 Nov 2024
    Thanks, lemme check it
  • @6695510551 #8261 01:40 PM, 13 Nov 2024
    I don't think it has anything to do with functions
  • @6695510551 #8262 01:44 PM, 13 Nov 2024
    Can you reproduce this phenomenon?
  • @HughEverett #8263 01:44 PM, 13 Nov 2024

    photo_2024-11-13_13-44-59.jpg
  • @HughEverett #8264 01:44 PM, 13 Nov 2024

    photo_2024-11-13_13-44-59.jpg
  • @HughEverett ↶ Reply to #8262 #8265 01:45 PM, 13 Nov 2024
    I think the problem is not because of HyperDbg as it works for me.
  • @6695510551 #8266 01:45 PM, 13 Nov 2024
    Yes, I think so too
  • @HughEverett ↶ Reply to #8266 #8267 01:46 PM, 13 Nov 2024
    It's probably because at some points the pCode is no longer valid.
  • @6695510551 #8268 01:46 PM, 13 Nov 2024
    Perhaps I accidentally modified the hyperhv code
  • @HughEverett ↶ Reply to #8268 #8269 01:47 PM, 13 Nov 2024
    You can remove your modifications and recompile HyperDbg.
  • @6695510551 #8270 01:47 PM, 13 Nov 2024
    ok, i do it now
  • @HughEverett ↶ Reply to #8270 #8271 01:47 PM, 13 Nov 2024
    Other than that, shouldn't it be like this?

    photo_2024-11-13_13-47-53.jpg
  • @HughEverett #8272 01:48 PM, 13 Nov 2024
    I mean I removed the the '&'.
  • @HughEverett #8273 01:48 PM, 13 Nov 2024
    Because you're creating a reference to the address of the 'test'. It's not the address of the 'test'. Am I right?
  • @HughEverett #8274 01:48 PM, 13 Nov 2024
    Could you check it as well?
  • @6695510551 #8275 01:49 PM, 13 Nov 2024
    ok
  • @6695510551 #8276 01:49 PM, 13 Nov 2024
    i test remove &, but I don't think this has anything to do with it
  • @6695510551 #8277 01:50 PM, 13 Nov 2024

    photo_2024-11-13_13-50-28.jpg
  • @6695510551 #8278 01:51 PM, 13 Nov 2024
    image_2024-11-13_21-51-19.png
  • @6695510551 #8279 01:51 PM, 13 Nov 2024
    🤣
  • @HughEverett ↶ Reply to #8279 #8280 01:51 PM, 13 Nov 2024
    Fixed?
  • @6695510551 #8281 01:52 PM, 13 Nov 2024

    photo_2024-11-13_13-52-04.jpg
  • @HughEverett ↶ Reply to #8281 #8282 01:52 PM, 13 Nov 2024
    Why these two variables are the same? Is there any optimization? 😳
  • @6695510551 #8283 01:53 PM, 13 Nov 2024
    I don't know how to say this
  • @6695510551 #8284 01:54 PM, 13 Nov 2024
    There is no problem with using&for functions
  • @6695510551 #8285 02:00 PM, 13 Nov 2024
    Maybe we'll have to test it later, con't connect to github.

    photo_2024-11-13_14-00-08.jpg
  • @6695510551 #8286 02:00 PM, 13 Nov 2024
    😂
  • @HughEverett ↶ Reply to #8281 #8287 02:04 PM, 13 Nov 2024

    photo_2024-11-13_14-04-25.jpg
  • @HughEverett ↶ Reply to #8281 #8288 02:04 PM, 13 Nov 2024

    photo_2024-11-13_14-04-25.jpg
  • @HughEverett ↶ Reply to #8287 #8289 02:05 PM, 13 Nov 2024
    The only difference between your code and my code is that I commented the 'help' function. Could you add a '_getch()' before the help function and try it again?
  • @6695510551 #8290 02:06 PM, 13 Nov 2024
    of course
  • @6695510551 #8291 02:06 PM, 13 Nov 2024
    Alternatively, I can rewrite a clean demo
  • @6695510551 #8292 02:15 PM, 13 Nov 2024
    emmm.....

    photo_2024-11-13_14-15-02.jpg
  • @6695510551 #8293 02:15 PM, 13 Nov 2024
    let me try again
  • @6695510551 #8294 02:20 PM, 13 Nov 2024
    I don't know what happened

    photo_2024-11-13_14-20-28.jpg
  • @6695510551 #8295 02:20 PM, 13 Nov 2024
    I just restarted the system in VMware
  • @6695510551 #8296 02:21 PM, 13 Nov 2024

    photo_2024-11-13_14-21-21.jpg
  • @6695510551 #8297 02:21 PM, 13 Nov 2024
    i do nothing
  • @HughEverett ↶ Reply to #8296 #8298 02:22 PM, 13 Nov 2024
    Did you add _getch() to your code?
  • @6695510551 #8299 02:22 PM, 13 Nov 2024

    photo_2024-11-13_14-22-22.jpg
  • @HughEverett #8300 02:23 PM, 13 Nov 2024
    🤔🤔
  • @6695510551 #8301 02:24 PM, 13 Nov 2024
    I switched to Win11 and tried again
  • @HughEverett ↶ Reply to #8299 #8302 02:24 PM, 13 Nov 2024
    I test this code one hundred time, it's still valid on my system. It's really weird.
  • @6695510551 #8303 02:25 PM, 13 Nov 2024
    Maybe you should try my exe
  • @6695510551 #8304 02:26 PM, 13 Nov 2024
    Wait a moment, I'll try Win11
  • @6695510551 #8305 02:32 PM, 13 Nov 2024
    Currently, it can work on Win11

    photo_2024-11-13_14-32-25.jpg
  • @HughEverett ↶ Reply to #8305 #8306 02:33 PM, 13 Nov 2024
    Okay, but on the Windows 10 where it didn't work. Is it a very old (before meltdown) processor?
  • @6695510551 #8307 02:34 PM, 13 Nov 2024
    no, it is 14900k
  • @6695510551 #8308 02:34 PM, 13 Nov 2024
    Intel(R) Core(TM) i9-14900K 3.20 GHz
  • @HughEverett #8309 02:35 PM, 13 Nov 2024
    So, it worked on your Windows 11 machine and didn't work on Windows 10 machine? Am I right?
  • @6695510551 #8310 02:36 PM, 13 Nov 2024
    yes , you are right
  • @6695510551 #8311 02:36 PM, 13 Nov 2024
    10.0.19045.2486
  • @6695510551 #8312 02:36 PM, 13 Nov 2024
    This is the version number of Win10
  • @HughEverett #8313 02:36 PM, 13 Nov 2024
    That's super weird. I have a Win 10 here, I'm gonna test on it too.
  • @HughEverett #8314 02:37 PM, 13 Nov 2024
    But, probably, it would take a while. So, meanwhile you could enjoy using HyperDbg on your Win11, meanwhile I try to understand what goes wrong with this command in the Windows 10.
  • @6695510551 #8315 02:39 PM, 13 Nov 2024
    You have already helped me a lot, thank you for your software, it's great
  • @HughEverett ↶ Reply to #8315 #8316 02:54 PM, 13 Nov 2024
    Wait, I think I find the error.

    photo_2024-11-13_14-54-39.jpg
  • @6695510551 #8317 02:55 PM, 13 Nov 2024
    great
  • @HughEverett #8318 02:56 PM, 13 Nov 2024
    After some time (around 30 minutes), it started to show the invalid error to me. I checked it with x64dbg as well). I accessed it from x64dbg and the address becomes available in HyperDbg.
  • @HughEverett #8319 02:56 PM, 13 Nov 2024
    So, it seems to be because of Windows paging.
  • @6695510551 #8320 02:57 PM, 13 Nov 2024
    That means the page has been replaced?
  • @HughEverett #8321 02:57 PM, 13 Nov 2024
    Once the RAM is full, Windows tries to page-out that page and that's why you get this error. (I assume that you didn't give your virtual machine enough RAM?).
  • @HughEverett ↶ Reply to #8320 #8322 02:58 PM, 13 Nov 2024
    Yes
  • @6695510551 #8323 02:58 PM, 13 Nov 2024
    o... you are right
  • @6695510551 #8324 02:58 PM, 13 Nov 2024
    I only allocated 2g to Win10
  • @6695510551 #8325 02:59 PM, 13 Nov 2024
    Allocated 4G to Win11
  • @6695510551 #8326 02:59 PM, 13 Nov 2024
    Perhaps this is the reason for the problem
  • @HughEverett ↶ Reply to #8324 #8327 02:59 PM, 13 Nov 2024
    That's the reason.
  • @6695510551 #8328 02:59 PM, 13 Nov 2024
    Now I will try to allocate more memory
  • @6695510551 #8329 03:04 PM, 13 Nov 2024
    Yes, that's right. After I allocated 4G of memory, the problem disappeared
  • @HughEverett ↶ Reply to #8329 #8330 03:04 PM, 13 Nov 2024
    👍
  • @6695510551 #8331 03:05 PM, 13 Nov 2024
    👍
  • @HughEverett #8332 03:05 PM, 13 Nov 2024
    I have to put a note in the documentation to tell this behavior to the users.
  • @6695510551 #8333 03:06 PM, 13 Nov 2024
    I can't help but say one more thing, brother. You're amazing
  • @HughEverett ↶ Reply to #8333 #8334 03:07 PM, 13 Nov 2024
    Hand shake 1_1.mp4
  • @8137199850 #8335 04:45 PM, 13 Nov 2024
    Joined.
  • 14 November 2024 (1 messages)
  • @7864839152 #8336 09:22 AM, 14 Nov 2024
    Joined.
  • 15 November 2024 (2 messages)
  • @1181687568 #8337 02:09 AM, 15 Nov 2024
    Joined.
  • @333224414 #8338 06:47 AM, 15 Nov 2024
    Joined.
  • 19 November 2024 (2 messages)
  • @sw_cad #8339 01:28 PM, 19 Nov 2024
    Joined.
  • @sw_cad #8340 01:28 PM, 19 Nov 2024
    Hi all
  • 20 November 2024 (6 messages)
  • @Arvind4IND #8341 02:17 PM, 20 Nov 2024
    Joined.
  • @HughEverett #8342 03:19 PM, 20 Nov 2024
    Two new commands are now documented (and merged to the 'dev' branch) for dumping I/O APIC and Local APIC (in both XAPIC and X2APIC mode). If you want to test it before the official v0.11 release, you can switch to the 'dev' branch.

    https://docs.hyperdbg.org/commands/extension-commands/apic
    https://docs.hyperdbg.org/commands/extension-commands/ioapic
    !apic (dump local APIC entries in XAPIC and X2APIC modes) | HyperDbg Documentation

    Description of '!apic' command in HyperDbg.

  • @HughEverett ↶ Reply to #8342 #8343 03:22 PM, 20 Nov 2024
    Also, two other new commands for enumerating PCI Express devices + Reading/writing into PCI/PCI-e Config Address Space (CAM) will soon be available.
  • @HyperDbgChannel #8344 03:55 PM, 20 Nov 2024
    We're sharing updates on #HyperDbg releases and debugging tips on #Bluesky and #Mastodon too!

    You can also follow us there. 😊

    - https://bsky.app/profile/hyperdbg.bsky.social
    - https://infosec.exchange/@hyperdbg

    photo_2024-11-20_15-55-34.jpg
  • @HyperDbgChannel #8345 03:55 PM, 20 Nov 2024

    photo_2024-11-20_15-55-34.jpg
  • @333224414 #8346 06:19 PM, 20 Nov 2024
    Amazing project! Keep it up!
  • 21 November 2024 (1 messages)
  • @7975887634 #8347 03:57 PM, 21 Nov 2024
    Joined.
  • 22 November 2024 (2 messages)
  • @HyperDbgBot #8348 b o t 04:48 AM, 22 Nov 2024
    [discord] <adam235513> Hi, Im trying to debug a process with anti debug. So I thought I use HyperDbg to avoid being detecting. So when I start the process in the VM HyperDbg will directly break in the process. When I press `g` it will break on the next instruction ... Is there a way to disable the behavior or at least some kind of logging to see why HyperDbg is breaking ? Is it page guard?!
  • @HughEverett ↶ Reply to #8348 #8349 10:29 PM, 22 Nov 2024
    Once you press 'g' it stops at the PE entrypoint, unless there is an anti debugging method (maybe TLS?) that breaks the debugging?
  • 23 November 2024 (11 messages)
  • @HyperDbgBot #8350 b o t 01:52 AM, 23 Nov 2024
    [discord] <adam235513> Yeah, it has TLS. Can I disable the behavior? It doesn't have to break at the EP. I can set a breakpoint on one of the Windows APIs
  • @HughEverett ↶ Reply to #8350 #8351 06:05 PM, 23 Nov 2024
    It's actually possible but if you could modify the source code (and recompile HyperDbg), but could you run the PE and then attach to it? It would be easier.
  • @HughEverett ↶ Reply to #8350 #8352 06:06 PM, 23 Nov 2024
    Or another option that you have is putting some hooks in some APIs or system-calls and intercept it this way. It's probably a better approach.
  • @HyperDbgBot #8353 b o t 06:06 PM, 23 Nov 2024
    [discord] <adam235513> No, because it directly breaks in HyperDbg even when I don't launch it through hyperdbg. Can modify the code, already compiled it myself
  • @HughEverett ↶ Reply to #8353 #8354 06:08 PM, 23 Nov 2024
    What do you mean by "breaks HyperDbg"? Is it something like triggering infinite number of breakpoints?
  • @HyperDbgBot #8355 b o t 06:09 PM, 23 Nov 2024
    [discord] <adam235513> Yes, exactly. After each instruction is executed it breaks. So hyperdbg becomes useless
  • @HyperDbgBot #8356 b o t 06:10 PM, 23 Nov 2024
    [discord] <adam235513> Like a page guard is set on the memory page and hyprdbg is catching the exception
  • @HughEverett ↶ Reply to #8355 #8357 06:10 PM, 23 Nov 2024
    You can disable triggering (intercepting breakpoints by HyperDbg) using this command:

    test breakpoint off
  • @HughEverett ↶ Reply to #8355 #8359 06:11 PM, 23 Nov 2024
    If you need to disable intercepting traps (single stepping) like #DB, you could use this command:

    test trap off
  • @HyperDbgBot #8360 b o t 06:13 PM, 23 Nov 2024
    [discord] <adam235513> Ok, I will give it a try tomorrow. Thanks
  • @HughEverett ↶ Reply to #8360 #8361 06:14 PM, 23 Nov 2024
    Sure thing. Let me know about the results. If it didn't work, probably there are other options like ignoring exceptions (using the !exception command).
  • 24 November 2024 (5 messages)
  • @HyperDbgBot #8362 b o t 02:02 PM, 24 Nov 2024
    [discord] <adam235513> Test trap works. Now I can attach to the process and break on a Windows API.
  • @HyperDbgBot #8363 b o t 02:02 PM, 24 Nov 2024
    [discord] <adam235513> Thanks a lot
  • @HyperDbgBot #8364 b o t 02:03 PM, 24 Nov 2024
    [discord] <adam235513> Did you ever thought to put a gdb server into it ? So one can easily attach with IDA?
  • @HughEverett ↶ Reply to #8362 #8365 03:35 PM, 24 Nov 2024
    Great. 👍
  • @HughEverett ↶ Reply to #8364 #8366 03:36 PM, 24 Nov 2024
    Nope, unfortunately HyperDbg only uses its custom protocol, not gdb stub.
  • 26 November 2024 (1 messages)
  • @8014109179 #8367 11:58 AM, 26 Nov 2024
    Joined.
  • 28 November 2024 (4 messages)
  • @roboltelegram #8368 08:01 AM, 28 Nov 2024
    Joined.
  • @HyperDbgBot #8369 b o t 06:19 PM, 28 Nov 2024
    [discord] <jamlee7879> Hi. What's the working principle of the EPT classic hook? I really can't figure out why a Windows running on a physical machine can also trigger an EPT violation.
  • @HyperDbgBot #8370 b o t 06:20 PM, 28 Nov 2024
    [discord] <jamlee7879> How does an EPT violation trigger a VM Exit event? Windows isn't running in a virtual machine. Can't it be handled directly in a driver?
  • @HyperDbgBot #8371 b o t 06:21 PM, 28 Nov 2024
    [discord] <jamlee7879> https://tenor.com/view/hot-summer-scary-scared-creepy-gif-17494278817868935582
    None
  • 29 November 2024 (9 messages)
  • @HughEverett ↶ Reply to #8369 #8372 08:44 AM, 29 Nov 2024
    HyperDbg is a bluepill style hypervisor, which means it virtualizes and already running system. Think of it as a system that is running and then you virtualize all system resources (starting from kernel).
  • @HughEverett ↶ Reply to #8370 #8373 08:45 AM, 29 Nov 2024
    EPT Violation is a form of VM-exit.
  • @HughEverett ↶ Reply to #8370 #8374 08:48 AM, 29 Nov 2024
    Generally, VT-x is consist of some instructions, which gives you (VMM) the ability to control critical CPU components (like memory, interrupts, IO ports, PCIe bars) by triggering VM-exits.
  • @HughEverett ↶ Reply to #8371 #8375 08:49 AM, 29 Nov 2024
    If you're curious about these topics, you might be interested in checking Hypervisor From Scratch series which describes how HyperDbg works internally:

    https://rayanfam.com/tutorials/
    Tutorials

    We write about Windows Internals, Hypervisors, Linux, and Networks.

  • @HyperDbgBot #8377 b o t 09:44 AM, 29 Nov 2024
    [discord] <jamlee7879> Yes, I've briefly read through the "Hypervisor From Scratch" series, but I didn't quite understand it. I can't imagine what a bluepill style hypervisor program is like. Here's what I know:
    1. When the Virtual Machine Monitor (VMM) enters the VMX (Virtual Machine eXtensions) mode, it has already set up the conversions for the Virtual Machine Control Structure (VMCS) and Extended Page Table (EPT).
    2. The state of the CPU that enters the operation will be stored in the VMCS. At this time, the virtualized CPU is being used.
    3. Then it exits the VMX mode. The code runs on the physical CPU again.

    The CPU running in VT (Virtualization Technology) and the physical CPU are like two completely different worlds. Why is it related to the MSR (Model Specific Register) hook? I must have missed some crucial information.
  • @honorary_bot ↶ Reply to #8377 #8378 09:57 AM, 29 Nov 2024
    It’s the same cpu all the time, it just has different modes of operation. Depending on the mode of execution the CPU has either additional features or otherwise a reduced set of them. VMX root mode pretty much just allows the execution of VMX instructions. VMX guest mode allows auxiliary control structures (like vmcs) to back up its execution. The whole idea of trapping various events in the guest mode is to allow the hypervisor to properly emulate the platform. MSRs for example are shared between all modes, but you don’t want the guest to mess with MsRs that could affect VMX root mode, right? That’s why you have the ability to intercept them and manually handle in the root mode. If that’s your question.
  • @HyperDbgBot #8379 b o t 10:05 AM, 29 Nov 2024
    [discord] <jamlee7879> Yes, this is exactly the answer I was looking for. Actually, I asked ChatGPT to write example code like this before, but I can't be 100% sure that the MSR registers are shareable. I didn't have a deep enough understanding of virtualization before. Thank you. You've been a great help.
  • @HyperDbgBot #8380 b o t 10:07 AM, 29 Nov 2024
    [discord] <jamlee7879> Next, I'll go on to read "Hypervisor From Scratch" in more depth.
  • @HyperDbgBot #8381 b o t 10:07 AM, 29 Nov 2024
    [discord] <jamlee7879> https://tenor.com/view/high-five-patrick-star-spongebob-squarepants-the-patrick-star-show-yes-gif-2201400520488940521
    High Five Patrick Star GIF - High Five Patrick Star Spongebob Squarepants - Discover & Share GIFs

    The perfect High Five Patrick Star Spongebob Squarepants Animated GIF for your conversation. Discover and Share the best GIFs on Tenor.

  • 30 November 2024 (1 messages)
  • @6817320794 #8382 08:18 PM, 30 Nov 2024
    Joined.
  • 04 Nov 2024 (1)
  • 05 Nov 2024 (5)
  • 06 Nov 2024 (1)
  • 07 Nov 2024 (1)
  • 08 Nov 2024 (3)
  • 09 Nov 2024 (15)
  • 10 Nov 2024 (3)
  • 11 Nov 2024 (1)
  • 12 Nov 2024 (9)
  • 13 Nov 2024 (151)
  • 14 Nov 2024 (1)
  • 15 Nov 2024 (2)
  • 19 Nov 2024 (2)
  • 20 Nov 2024 (6)
  • 21 Nov 2024 (1)
  • 22 Nov 2024 (2)
  • 23 Nov 2024 (11)
  • 24 Nov 2024 (5)
  • 26 Nov 2024 (1)
  • 28 Nov 2024 (4)
  • 29 Nov 2024 (9)
  • 30 Nov 2024 (1)