@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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 01 July 2023 (23 messages)
  • @5719659131 #1567 09:43 AM, 01 Jul 2023
    Joined.
  • @blackjustinFR #1568 09:56 AM, 01 Jul 2023
    Joined.
  • @blackjustinFR #1569 09:57 AM, 01 Jul 2023
    Hey anyone can write bypass for anticheat (read/write) like hypervisor
  • @HughEverett ↶ Reply to #1569 #1570 09:59 AM, 01 Jul 2023
    Hey,
    You can easily use HyperDbg along with short-circuiting commands.
  • @HughEverett #1571 09:59 AM, 01 Jul 2023
    Do you know where you want to bypass read/writes? I mean the exact address.
  • @blackjustinFR ↶ Reply to #1571 #1572 10:00 AM, 01 Jul 2023
    Ya its like game offset
  • @blackjustinFR #1573 10:00 AM, 01 Jul 2023
    But not would like use direclty hyperdbg,
  • @blackjustinFR #1574 10:00 AM, 01 Jul 2023
    https://youtu.be/LO1p8xwbDoQ
    Windows Hypervisor Development | Bypass Anti-Cheats

    This YouTube video is ONLY for educational purposes. Only make game cheats on your own games that you have made or have explicit permission to cheat on. Do not break TOS of the software you use your Hypervisor knowledge on. I am not responsible for any of your actions. In this video you will be introduced to the concept of Hypervisors. They are used in Virtual Machines, and you will be able to create your own thus allowing you FULL control over the system. This series will lead deeper into the topic eventually bypassing Anti-Hypervisor detections. If you enjoyed this video or have any questions please comment below! This is a new series and I will continue if you request. Prerequisites: 3 years of game cheat knowledge. Good understanding of C++, C, and x64 Assembly. Knowledge of Windows internals such as NT API, Win32 API, Handles, Threads, Processes. Patience and lots of reading intel manual. Series: https://rayanfam.com/topics/hypervisor-from-scratch-part-1/

  • @blackjustinFR #1575 10:00 AM, 01 Jul 2023
    Have see this in youtube
  • @invlpg #1576 10:01 AM, 01 Jul 2023
    i'm not sure if this question is related to hyperdbg
  • @blackjustinFR #1577 10:02 AM, 01 Jul 2023
    Have ask founder he say me lot of anticheat enthusiasts
  • @HughEverett #1579 10:02 AM, 01 Jul 2023
    Generally, in HyperDbg you need to use !monitor
    https://docs.hyperdbg.org/commands/extension-commands/monitor
    and use short-circuiting:
    https://docs.hyperdbg.org/tips-and-tricks/misc/event-short-circuiting
    !monitor (monitor read/write/execute to a range of memory)

    Description of the '!monitor' command in HyperDbg.

  • @HughEverett ↶ Reply to #1578 #1580 10:02 AM, 01 Jul 2023
    No, this is not allowed btw.
  • @5539033269 #1581 10:03 AM, 01 Jul 2023
    Lol
  • @HughEverett #1582 10:03 AM, 01 Jul 2023
    If you want to do it, by HyperDbg, you can do it with short-circuting.
  • @5539033269 #1583 10:03 AM, 01 Jul 2023
    What’s happening
  • @5368845718 #1584 10:03 AM, 01 Jul 2023
    We got some cheaters here
  • @invlpg #1585 10:03 AM, 01 Jul 2023
    some bro tried to hire a dev for his p2c it seems
  • @HughEverett ↶ Reply to #1574 #1586 10:06 AM, 01 Jul 2023
    This link is Hypervisor From Scratch. HyperDbg is an extension to this hypervisor. The code base is the same.
  • @blackjustinFR ↶ Reply to #1585 #1587 10:09 AM, 01 Jul 2023
    Exactly
  • @HughEverett #1588 10:09 AM, 01 Jul 2023
    Guys, do not try to hire anyone in the group please.
  • @blackjustinFR #1589 10:09 AM, 01 Jul 2023
    Its not allowed?
  • @invlpg ↶ Reply to #1587 #1590 10:09 AM, 01 Jul 2023
    nah this chat is for hyperdbg related stuff, go look somewhere else
  • 02 July 2023 (9 messages)
  • @ricnar #1591 11:48 AM, 02 Jul 2023
    https://www.youtube.com/watch?v=BBp5kGL1qoI
    Hyperdbg instalacion y primeros pasos (Hyperdbg installation and first steps)

    HyperDbg Debugger es un depurador de Windows de código abierto, impulsado por la comunidad, asistido por hipervisor, en modo usuario y en modo kernel que se centra en el uso de tecnologías de hardware modernas. HyperDbg viene con funciones como hooks ocultos, que son tan rápidos como los viejos hooks inline, pero también sigilosos. Imita los hardware debug breakpoints para (lectura y escritura) en una ubicación específica, pero esta vez completamente invisible tanto para el kernel de Windows como para los programas y, por supuesto, ¡sin ninguna limitación en tamaño o cantidad! El uso de la división de TLB y las características como la medición de la cobertura del código y la supervisión de todos los movimientos hacia/desde la memoria mediante una función hacen de HyperDbg un depurador único. Aunque tiene características novedosas, HyperDbg intenta ser lo más sigiloso posible. No utiliza ninguna API de depuración para depurar Windows ni ninguna aplicación, por lo que los métodos antidepuración clásicos no lo detectarán. Además, resiste la explotación de los métodos delta de tiempo (p. ej., RDTSC/RDTSCP) para detectar la presencia de hipervisores, lo que dificulta mucho que las aplicaciones, los empaquetadores, los protectores, el malware, los motores antitrampa, etc., descubran el depurador. https://github.com/HyperDbg/HyperDbg/releases

  • @ricnar #1592 11:48 AM, 02 Jul 2023
    spanish only by now
  • @HughEverett ↶ Reply to #1591 #1593 12:02 PM, 02 Jul 2023
    Wow, it's great. 👍
  • @5756909489 #1594 12:06 PM, 02 Jul 2023
    Joined.
  • @hikawaruriwo #1595 02:23 PM, 02 Jul 2023
    Joined.
  • @ricnar #1596 10:34 PM, 02 Jul 2023
    One more question
  • @ricnar #1597 10:35 PM, 02 Jul 2023
    There is a command like windbg dt
  • @ricnar #1598 10:35 PM, 02 Jul 2023
    To display documented structures?
  • @ricnar #1599 10:35 PM, 02 Jul 2023
    Included in symbols?
  • 03 July 2023 (238 messages)
  • @HughEverett #1600 03:45 AM, 03 Jul 2023
    Hi,
    The 'dt' command is supported, but what do you mean by 'documented structure'? Do you mean the structures in WDK, SDK? 🤨

    https://docs.hyperdbg.org/commands/debugging-commands/dt
    dt (display and map virtual memory to structures)

    Description of the 'dt' command in HyperDbg.

  • @ricnar #1601 07:59 AM, 03 Jul 2023
    You can't display an undocumented structure he
  • @ricnar #1602 07:59 AM, 03 Jul 2023
    Thanks
  • @invlpg ↶ Reply to #1600 #1603 08:00 AM, 03 Jul 2023
    Nah, he means like the structures from PDB
  • @ricnar #1604 08:00 AM, 03 Jul 2023
    Yes
  • @invlpg #1605 08:00 AM, 03 Jul 2023
    Windbg loads them by default and you can search for the struct in loaded symbols
  • @HughEverett #1606 08:01 AM, 03 Jul 2023
    🤨🤨
  • @HughEverett #1607 08:02 AM, 03 Jul 2023
    Still didn't get the point. Can you give me an example? Does Windbg load it from PDBs?
  • @invlpg ↶ Reply to #1607 #1608 08:02 AM, 03 Jul 2023
    Yea, it loads symbols from PDB and lets you search for the type you need and display it
  • @invlpg #1609 08:02 AM, 03 Jul 2023
    https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/dt--display-type-
    dt (Display Type) - Windows drivers

    The dt command displays information about a local variable, global variable or data type. This can display information about simple data types, as well as structures and unions.

  • @HughEverett ↶ Reply to #1609 #1610 08:04 AM, 03 Jul 2023
    You mean '-y'?
  • @ricnar #1611 08:04 AM, 03 Jul 2023
    You can see the fields of an structure like eprocess krdp kprocess etc
  • @HughEverett ↶ Reply to #1611 #1612 08:05 AM, 03 Jul 2023
    By using '-y SthToSearch' option?
  • @invlpg ↶ Reply to #1610 #1613 08:05 AM, 03 Jul 2023
    I didn't mean any option, just the command in general
  • @invlpg #1614 08:05 AM, 03 Jul 2023
    You can either search for the struct, or type the full name
  • @invlpg #1615 08:05 AM, 03 Jul 2023
    Also you can set the start address of the struct and it will parse it and display nicely
  • @invlpg #1616 08:06 AM, 03 Jul 2023
    You can just check examples at the bottom of msdn I guess
  • @invlpg #1617 08:06 AM, 03 Jul 2023
    It will make much more sense than any of my explanations aha
  • @ricnar #1618 08:06 AM, 03 Jul 2023
    I don't have windbg loaded now
  • @ricnar #1619 08:08 AM, 03 Jul 2023

    photo_2023-07-03_08-08-33.jpg
  • @HughEverett ↶ Reply to #1616 #1620 08:09 AM, 03 Jul 2023
    this one ?

    photo_2023-07-03_08-09-08.jpg
  • @invlpg ↶ Reply to #1619 #1621 08:09 AM, 03 Jul 2023
    ^^
  • @ricnar #1622 08:09 AM, 03 Jul 2023

    photo_2023-07-03_08-09-46.jpg
  • @ricnar #1623 08:11 AM, 03 Jul 2023

    photo_2023-07-03_08-11-37.jpg
  • @HughEverett ↶ Reply to #1619 #1624 08:15 AM, 03 Jul 2023

    photo_2023-07-03_08-15-18.jpg
  • @ricnar #1625 08:15 AM, 03 Jul 2023
    And using -r
  • @ricnar #1626 08:15 AM, 03 Jul 2023
    dt -r _EPROCESS 
  • @HughEverett ↶ Reply to #1622 #1627 08:16 AM, 03 Jul 2023

    photo_2023-07-03_08-16-13.jpg
  • @ricnar #1628 08:17 AM, 03 Jul 2023
    Perfect it's similar
  • @HughEverett ↶ Reply to #1625 #1629 08:17 AM, 03 Jul 2023
    yep, '-r' is not supported, but generally it shouldn't be hard. I'll add it to the todo-list.
  • @HughEverett #1630 08:18 AM, 03 Jul 2023
    Also, make sure to check the 'struct' command. @ricnar @invlpg
    https://docs.hyperdbg.org/commands/debugging-commands/struct
    struct (make structures, enums, data types from symbols)

    Description of the 'struct' command in HyperDbg.

  • @invlpg ↶ Reply to #1630 #1631 08:18 AM, 03 Jul 2023
    Perfect, tysm
  • @ricnar #1632 08:19 AM, 03 Jul 2023
    -r show the nested structures
  • @HughEverett ↶ Reply to #1630 #1633 08:20 AM, 03 Jul 2023
    This command is the integration of 'pdbex' by Petr Benes into the HyperDbg and it combines HyperDbg's symbol server to be a C compileable structure generator.
  • @ricnar #1634 08:20 AM, 03 Jul 2023
    Perfect thanks
  • @HughEverett ↶ Reply to #1632 #1635 08:22 AM, 03 Jul 2023
    Sure. I'll try to add it ASAP. Additionally, since HyperDbg is an open-source project, feel free to open pull requests on GitHub and contribute any interesting findings or additions you come across.
  • @ricnar ↶ Reply to #1633 #1636 08:24 AM, 03 Jul 2023
    good to export the structure to ida
  • @ricnar #1637 08:24 AM, 03 Jul 2023
    for static analsis
  • @ricnar #1638 08:25 AM, 03 Jul 2023
    if ida does not have but loading the pdb in ida works too
  • @HughEverett #1639 08:25 AM, 03 Jul 2023
    The credits for this command all goes to my friend, Petr.
  • @ricnar #1640 08:26 AM, 03 Jul 2023
    very util
  • @ricnar #1641 08:27 AM, 03 Jul 2023
    sorry about my english, I barely can explain me
  • @HughEverett ↶ Reply to #1641 #1642 08:27 AM, 03 Jul 2023
    It's perfectly okay.
  • @ricnar #1643 08:27 AM, 03 Jul 2023
    and i can't talk fluidly in english
  • @ricnar #1644 08:27 AM, 03 Jul 2023
    for this reason my videos are in spanish only
  • @ricnar #1645 08:28 AM, 03 Jul 2023
    when the ia translate the audio to english automatically i will use hehe
  • @HughEverett ↶ Reply to #1645 #1646 08:28 AM, 03 Jul 2023
    😅😅😅
  • @HughEverett #1647 08:28 AM, 03 Jul 2023
    you're a legend.
  • @ricnar #1648 08:28 AM, 03 Jul 2023
    shame.mp4
  • @ricnar #1649 08:46 AM, 03 Jul 2023

    photo_2023-07-03_08-46-35.jpg
  • @ricnar #1650 08:46 AM, 03 Jul 2023
    very good
  • @ricnar #1651 08:47 AM, 03 Jul 2023

    photo_2023-07-03_08-47-24.jpg
  • @ricnar #1652 08:49 AM, 03 Jul 2023
    you can add the dp command is a variant of db dd etc
  • @ricnar #1653 08:49 AM, 03 Jul 2023
    to display like pointers
  • @ricnar #1654 08:49 AM, 03 Jul 2023
    hexadecimal pointers not sequences of bytes etc
  • @ricnar #1655 08:50 AM, 03 Jul 2023
    like
  • @ricnar #1656 08:51 AM, 03 Jul 2023

    photo_2023-07-03_08-51-21.jpg
  • @HughEverett ↶ Reply to #1656 #1657 08:52 AM, 03 Jul 2023
    Isn't it same as the 'k' command?
  • @ricnar #1658 08:52 AM, 03 Jul 2023

    photo_2023-07-03_08-52-19.jpg
  • @ricnar #1659 08:53 AM, 03 Jul 2023
    but k can be applied to any register and address?
  • @HughEverett ↶ Reply to #1657 #1660 08:53 AM, 03 Jul 2023
    https://docs.hyperdbg.org/commands/debugging-commands/k
    k, kd, kq (display stack backtrace)

    Description of 'k, kd, kq' commands in HyperDbg.

  • @HughEverett ↶ Reply to #1659 #1661 08:53 AM, 03 Jul 2023
    Yes
  • @ricnar #1662 08:53 AM, 03 Jul 2023
    in windbg is some call stack
  • @HughEverett #1663 08:53 AM, 03 Jul 2023

    photo_2023-07-03_08-53-34.jpg
  • @HughEverett #1664 08:53 AM, 03 Jul 2023
    You can specify the 'base' for the 'k' command.
  • @ricnar #1665 08:54 AM, 03 Jul 2023
    not so confortable like dps i think
  • @ricnar #1666 08:54 AM, 03 Jul 2023
    dps rax
  • @ricnar #1667 08:54 AM, 03 Jul 2023
    only
  • @ricnar #1668 08:54 AM, 03 Jul 2023
    dps 0x50000
  • @ricnar #1669 08:55 AM, 03 Jul 2023
    and you can add the L option if you want
  • @ricnar #1670 08:55 AM, 03 Jul 2023
    is not mandatory
  • @HughEverett ↶ Reply to #1665 #1671 08:55 AM, 03 Jul 2023
    That would be easy to add.
  • @HughEverett #1672 08:55 AM, 03 Jul 2023
    I'll add it.
  • @ricnar #1673 08:55 AM, 03 Jul 2023

    photo_2023-07-03_08-55-29.jpg
  • @ricnar #1674 08:55 AM, 03 Jul 2023
    which is the base?
  • @HughEverett ↶ Reply to #1669 #1675 08:55 AM, 03 Jul 2023
    https://docs.hyperdbg.org/commands/debugging-commands/k#parameters

    The 'k' command also gets the size as 'l'.
    k, kd, kq (display stack backtrace)

    Description of 'k, kd, kq' commands in HyperDbg.

  • @ricnar #1676 08:55 AM, 03 Jul 2023
    i want to display the memory pointed by rax
  • @HughEverett #1677 08:56 AM, 03 Jul 2023
    kq base @rax
  • @ricnar #1678 08:56 AM, 03 Jul 2023

    photo_2023-07-03_08-56-32.jpg
  • @HughEverett #1679 08:56 AM, 03 Jul 2023
    or in 32-bit pointers:

    kd base @eax
  • @ricnar #1680 08:57 AM, 03 Jul 2023

    photo_2023-07-03_08-57-09.jpg
  • @HughEverett ↶ Reply to #1678 #1681 08:57 AM, 03 Jul 2023
    is @rax a valid pointer?
  • @ricnar #1682 08:57 AM, 03 Jul 2023
    not
  • @ricnar #1683 08:57 AM, 03 Jul 2023
    rsp yes
  • @ricnar #1684 08:57 AM, 03 Jul 2023
    at the moment
  • @HughEverett #1685 08:57 AM, 03 Jul 2023
    the base should be a valid (and safe) address.
  • @ricnar #1686 08:57 AM, 03 Jul 2023
    but this is confusing
  • @HughEverett ↶ Reply to #1678 #1687 08:58 AM, 03 Jul 2023
    So, this error is supposed to be displayed. Yeah?
  • @HughEverett ↶ Reply to #1686 #1688 08:58 AM, 03 Jul 2023
    Agree.
  • @HughEverett #1689 08:58 AM, 03 Jul 2023
    I'll try to add 'dps' for the next version.
  • @ricnar #1690 08:58 AM, 03 Jul 2023
    dps rax display the content in pointers if itcan
  • @ricnar #1691 08:58 AM, 03 Jul 2023
    thanks
  • @ricnar #1692 08:59 AM, 03 Jul 2023
    is only for confortability
  • @ricnar #1693 08:59 AM, 03 Jul 2023
    i'm annoying hehe
  • @ricnar #1694 09:00 AM, 03 Jul 2023
    i try to collaborate sorry
  • @ricnar #1695 09:01 AM, 03 Jul 2023
    the other thing coming to me when using is if shortcut key can be used to trace step over and step into
  • @ricnar #1696 09:01 AM, 03 Jul 2023
    trace typing t-t-t
  • @ricnar #1697 09:01 AM, 03 Jul 2023
    is a pain hehe
  • @ricnar #1698 09:02 AM, 03 Jul 2023
    some shortcuts
  • @ricnar #1699 09:03 AM, 03 Jul 2023
    i-might-have-to-kill-him-real-housewives-of-atlanta.mp4
  • @ricnar #1700 09:03 AM, 03 Jul 2023
    hehehe
  • @HughEverett ↶ Reply to #1696 #1701 09:03 AM, 03 Jul 2023
    Some command are just repeating in HyperDbg. Like 't'.
  • @HughEverett #1702 09:03 AM, 03 Jul 2023
    Just press 'enter' after running one 't'.
  • @HughEverett #1703 09:03 AM, 03 Jul 2023
    It continues to run the previous command.
  • @ricnar #1704 09:03 AM, 03 Jul 2023
    good one
  • @ricnar #1705 09:04 AM, 03 Jul 2023
    thanks
  • @HughEverett #1708 09:07 AM, 03 Jul 2023
    Please check this one:
    https://github.com/HyperDbg/HyperDbg/blob/master/hyperdbg/hprdbgctrl/header/commands.h
    HyperDbg/hyperdbg/hprdbgctrl/header/commands.h at master · HyperDbg/HyperDbg

    State-of-the-art native debugging tool. Contribute to HyperDbg/HyperDbg development by creating an account on GitHub.

  • @HughEverett #1709 09:09 AM, 03 Jul 2023
    Those commands that have this attribute (DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER), will be repeated after pressing 'enter'.

    photo_2023-07-03_09-09-07.jpg
  • @HughEverett ↶ Reply to #1709 #1710 09:09 AM, 03 Jul 2023
    This is one of the hidden features of HyperDbg that I never told anyone about it. 😁
  • @invlpg ↶ Reply to #1629 #1711 09:15 AM, 03 Jul 2023
    i quickly looked on it and it seems that we'd have to implement this stuff in pdbex first, i'll see what can be done
  • @HughEverett ↶ Reply to #1711 #1712 09:16 AM, 03 Jul 2023
    No, as long as I know, pdbex already supports it.
  • @invlpg #1713 09:16 AM, 03 Jul 2023
    oh yea, maybe im just tripping
  • @invlpg #1714 09:16 AM, 03 Jul 2023
    lemme check
  • @HughEverett #1715 09:17 AM, 03 Jul 2023
    The only thing that needs to be supported is in HyperDbg side, where we have to derefrence and query memory multiple times to show the pointers recursively.
  • @HughEverett #1716 09:18 AM, 03 Jul 2023
    Or, maybe I'm wrong, is it even necessary to dereference pointers? Or should we just show the structure that are embedded into other structures (not pointers)?
  • @invlpg #1717 09:19 AM, 03 Jul 2023
    well, if we want to replicate 1:1 windbg's dt -r option then yea we should

    photo_2023-07-03_09-19-32.jpg
  • @HughEverett ↶ Reply to #1717 #1718 09:20 AM, 03 Jul 2023
    So, we need to query the memory multiple times to show it.
  • @invlpg #1719 09:21 AM, 03 Jul 2023
    yeah, i think so
  • @invlpg ↶ Reply to #1712 #1720 09:26 AM, 03 Jul 2023
    Oh yeah, you are right. Neat

    photo_2023-07-03_09-26-29.jpg
  • @invlpg #1721 09:28 AM, 03 Jul 2023
    also shouldn't we initially set sympath to the default msft one? kinda annoying to set it everytime
  • @HughEverett ↶ Reply to #1721 #1722 09:30 AM, 03 Jul 2023
    Kinda agree, but honestly I believe there is a concern regarding user privacy here. Someone might not want to set it to default.
  • @invlpg #1723 09:31 AM, 03 Jul 2023
    or maybe we should just save it to some sort of config file then?
  • @HughEverett #1724 09:31 AM, 03 Jul 2023
    It's saved. All the setting and symbol path is saved.
  • @invlpg #1725 09:31 AM, 03 Jul 2023
    uhm
  • @HughEverett ↶ Reply to #1725 #1726 09:32 AM, 03 Jul 2023

    photo_2023-07-03_09-32-07.jpg
  • @invlpg #1727 09:32 AM, 03 Jul 2023
    oh yea it saves for me too, but it doesn't apply it
  • @invlpg #1728 09:32 AM, 03 Jul 2023
    weird
  • @invlpg #1729 09:32 AM, 03 Jul 2023
    or maybe its just because of the debug build
  • @HughEverett ↶ Reply to #1727 #1730 09:32 AM, 03 Jul 2023
    What do you mean?
  • @HughEverett #1731 09:32 AM, 03 Jul 2023
    No, it should be applied, otherwise, it's a bug.
  • @invlpg #1732 09:33 AM, 03 Jul 2023
    yeah sorry it saves it, i was just overwriting the file
  • @ricnar #1733 09:34 AM, 03 Jul 2023
    i need to reapply every time
  • @HughEverett ↶ Reply to #1733 #1734 09:34 AM, 03 Jul 2023
    😳
  • @ricnar #1735 09:34 AM, 03 Jul 2023
    i am using the debug version
  • @ricnar #1736 09:34 AM, 03 Jul 2023
    i compiled in debug mode
  • @HughEverett #1737 09:35 AM, 03 Jul 2023
    What do you mean? Once you set the symbol path, one file 'config.ini' should be created there beside the exe file.
  • @invlpg ↶ Reply to #1736 #1738 09:35 AM, 03 Jul 2023
    yeah that's what happened to me too
  • @invlpg #1739 09:35 AM, 03 Jul 2023
    in debug mode
  • @HughEverett #1740 09:36 AM, 03 Jul 2023
    As long as that ini file is there, HyperDbg uses that file. But if you remove that file (recompile & clean everything), then you should set it again.
  • @HughEverett #1741 09:36 AM, 03 Jul 2023
    Isn't it like this?
  • @invlpg #1742 09:37 AM, 03 Jul 2023
    yea it is, im unable to reproduce it now 😅
  • @HughEverett ↶ Reply to #1742 #1743 09:40 AM, 03 Jul 2023
    yeah, there isn't any bug in HyperDbg. Being HyperDbg and having bugs is a contradiction itself. How could a debugger have a bug? Not possible. 🙂😅😁
  • @invlpg #1744 09:40 AM, 03 Jul 2023
    exactly
  • @ricnar #1745 09:42 AM, 03 Jul 2023
    seems to work now but in some moment it makes me type the sympath again
  • @ricnar #1746 09:45 AM, 03 Jul 2023
    If it happens again i will tell you
  • @ricnar #1748 11:46 AM, 03 Jul 2023

    photo_2023-07-03_11-46-11.jpg
  • @ricnar #1749 11:46 AM, 03 Jul 2023
    i think
  • @ricnar #1750 11:47 AM, 03 Jul 2023
    for confortability the second time to use debug in target or the host could be repeat the last command debug
  • @ricnar #1751 11:47 AM, 03 Jul 2023
    only connecting with debug only
  • @ricnar #1752 11:47 AM, 03 Jul 2023
    repeating internally .debug prepare serial 115200 com2
  • @ricnar #1753 11:48 AM, 03 Jul 2023
    or .debug remote namedpipe \\.\pipe\HyperDbgPipe
  • @ricnar #1754 11:49 AM, 03 Jul 2023
    if you want to change you can type the complete command
  • @ricnar #1755 11:49 AM, 03 Jul 2023
    it remains stored the last debug command
  • @HughEverett ↶ Reply to #1752 #1756 11:49 AM, 03 Jul 2023
    What if the the target COMx port is different in the target machine? It happens to me a lot, where COM2 is not valid and I used COM1. How can we verify the correct COM port?
  • @ricnar #1757 11:50 AM, 03 Jul 2023
    an error will be returned and you can type the entire command
  • @ricnar #1758 11:50 AM, 03 Jul 2023
    but you can type the entire command if you want
  • @ricnar #1759 11:50 AM, 03 Jul 2023
    if you type only debug the last command is used
  • @ricnar #1760 11:51 AM, 03 Jul 2023
    if you type the entire command it will be used and stored
  • @ricnar #1761 11:52 AM, 03 Jul 2023
    it stored the last typed
  • @HughEverett #1762 11:52 AM, 03 Jul 2023
    isn't it better to handle it with some 'alias'ing commands?
  • @ricnar #1763 11:52 AM, 03 Jul 2023
    i have a scenario stored
  • @ricnar #1764 11:52 AM, 03 Jul 2023
    and the debug command is the same
  • @ricnar #1765 11:52 AM, 03 Jul 2023
    always
  • @ricnar #1766 11:53 AM, 03 Jul 2023
    if it changes i can type the complete command
  • @ricnar #1767 11:53 AM, 03 Jul 2023
    but this is not common
  • @HughEverett #1768 11:53 AM, 03 Jul 2023
    for example, one might create an alias (called 'alias1'), let say ' .debug prepare serial 115200 com2'. After that, whenever the use types 'alias1', the same command will be executed. What do you think of it?
  • @ricnar #1769 11:54 AM, 03 Jul 2023
    yes
  • @ricnar #1770 11:54 AM, 03 Jul 2023
    can be useful too
  • @ricnar #1771 11:54 AM, 03 Jul 2023
    maybe debug1
  • @HughEverett #1772 11:54 AM, 03 Jul 2023
    yes.
  • @ricnar #1773 11:54 AM, 03 Jul 2023
    to remember
  • @HughEverett #1774 11:54 AM, 03 Jul 2023
    and aliases will be saved into the config file.
  • @ricnar #1775 11:55 AM, 03 Jul 2023
    yes
  • @ricnar #1776 11:55 AM, 03 Jul 2023
    perfect
  • @HughEverett #1777 11:55 AM, 03 Jul 2023
    I'll add it to the todo list.
  • @ricnar #1778 11:55 AM, 03 Jul 2023
    i am adding you lot of job sorry
  • @ricnar #1779 11:56 AM, 03 Jul 2023
    there are only suggestions
  • @HughEverett ↶ Reply to #1778 #1780 11:56 AM, 03 Jul 2023
    No, that's pretty okay. You feedback are really valuable.
  • @HughEverett #1781 11:56 AM, 03 Jul 2023
    Currently, I spent a entire week on fixing the '.start' command. Still no chance. 😞
  • @ricnar #1782 11:56 AM, 03 Jul 2023
    but it works to me
  • @ricnar #1783 11:57 AM, 03 Jul 2023
    the last version i compiled
  • @ricnar #1784 11:57 AM, 03 Jul 2023
    it does not fail
  • @HughEverett #1785 11:57 AM, 03 Jul 2023
    I test tens of variants, intercepting #PF page-faults, setting EPT changed breakpoints on read/write. Setting regular OS paging bits. All of them failed.
  • @ricnar #1786 11:57 AM, 03 Jul 2023
    if the path has spaces put " "
  • @ricnar #1787 11:58 AM, 03 Jul 2023
    ah some special cases
  • @HughEverett ↶ Reply to #1784 #1788 11:58 AM, 03 Jul 2023
    This is not working anymore, specially in the latest version of Windows.
  • @HughEverett #1789 11:58 AM, 03 Jul 2023
    It might work but sometime, we might not win the race.
  • @ricnar #1790 11:58 AM, 03 Jul 2023

    photo_2023-07-03_11-58-53.jpg
  • @HughEverett #1791 11:59 AM, 03 Jul 2023
    So, it's not stable. We have to find an alternative way.
  • @ricnar #1792 11:59 AM, 03 Jul 2023
    windows 11
  • @ricnar #1793 11:59 AM, 03 Jul 2023
    updated
  • @HughEverett #1794 11:59 AM, 03 Jul 2023
    Yeah, it works for me too. But I think if you keep testing it and running it, it might fail at some points.
  • @HughEverett #1795 12:00 PM, 03 Jul 2023
    I mean repeatedly testing it.
  • @ricnar #1796 12:00 PM, 03 Jul 2023
    yes
  • @ricnar #1797 12:01 PM, 03 Jul 2023
    and if it starts in TLS code
  • @HughEverett #1798 12:01 PM, 03 Jul 2023
    The problem here is, once the system wants to execute the target entrypoint, the address is not available on the RAM. Thus, it has to throw a #PF page-fault and brings the page in.
  • @HughEverett #1799 12:02 PM, 03 Jul 2023
    Sure we could intercept the page-fault, but there is no PFN (page frame number) available in the #PF handler. Thus, the physical address is unknown and we could not use EPT to intercept it.
  • @HughEverett #1800 12:03 PM, 03 Jul 2023
    For some unknown reasons, Debug Registers (which work with Virtual Addresses) won't work either.
  • @HughEverett #1801 12:04 PM, 03 Jul 2023
    And regular OS page table bits are also not usable. Because the entrypoint will be accessed several time by some functions in ntdll.
  • @ricnar #1802 12:04 PM, 03 Jul 2023
    🙁
  • @HughEverett #1803 12:06 PM, 03 Jul 2023
    I could fix it by using MBEC (mode based execution controls), but MBEC is quite a new feature in Intel processors. Thus, if I implement it like this, we won't support the '.start' command on Skylake (6 gen Intel) and older processors anymore.
  • @HughEverett #1804 12:07 PM, 03 Jul 2023
    Still, we could use Windows APIs to notify us about the entrypoint, but that's not the case. We need to have an API (Debug) independent starting mechanism in HyperDbg.
  • @ricnar #1805 12:10 PM, 03 Jul 2023
    very difficult
  • @ricnar #1807 12:17 PM, 03 Jul 2023

    photo_2023-07-03_12-17-57.jpg
  • @ricnar #1808 12:18 PM, 03 Jul 2023
    the p command does not have the option like t (the i alternative)
  • @ricnar #1809 12:18 PM, 03 Jul 2023
    to step over without all the cores disturbing
  • @ricnar #1810 12:19 PM, 03 Jul 2023
    for this reason i have a one only processor vm with 1 only core to work
  • @ricnar #1811 12:20 PM, 03 Jul 2023
    if i need more cores i change to another vm
  • @ricnar #1812 12:20 PM, 03 Jul 2023
    but the starting point is 1 procesor and 1 core
  • @HughEverett #1813 12:22 PM, 03 Jul 2023
    You got it right but the thing is, it's technically impossible to implement a guaranteed step-over. Because we're not sure what a function wants to do.
  • @ricnar #1814 12:23 PM, 03 Jul 2023
    yes
  • @HughEverett #1815 12:23 PM, 03 Jul 2023
    Imagine this scenario, you want to step-over a function that tries to write into a file.
  • @ricnar #1816 12:23 PM, 03 Jul 2023
    it can be problematic
  • @HughEverett #1817 12:24 PM, 03 Jul 2023
    Based on the implementation, we masked the external interrupts to make this instrumentation step-in possible. No, what happens if a SYSCALL execute in the state when interrupts are masked?
  • @HughEverett #1818 12:24 PM, 03 Jul 2023
    It breaks the system.
  • @ricnar #1819 12:24 PM, 03 Jul 2023
    yes
  • @ricnar #1820 12:25 PM, 03 Jul 2023
    for this reason my 1 procesor 1 core scenario by default is the best to start
  • @ricnar #1821 12:25 PM, 03 Jul 2023
    only if needed i change to other vm with more procesor cores
  • @HughEverett #1822 12:26 PM, 03 Jul 2023
    The details of the implementation is described here: https://research.hyperdbg.org/assets/documents/kernel-debugger-design-1st-edition.pdf

    it might help knowing about some of the technical difficulties regarding this 'instrumentation step-in'.
    None
  • @HughEverett ↶ Reply to #1820 #1823 12:27 PM, 03 Jul 2023
    I didn't get the point. Why do you use one core?
  • @HughEverett #1824 12:30 PM, 03 Jul 2023
    I mean once HyperDbg continues the system (e.g, pressing 'g', or 't') then all other processes might (and will) get the chance to run in the system.
  • @ricnar #1825 12:31 PM, 03 Jul 2023
    in windbg using more than1 procesor 1 core drives you crazy when you are tracing or put breakpoints in kernel
  • @ricnar #1826 12:32 PM, 03 Jul 2023
    you are tracing and a breakpoint is triggered by another core and jumps to its location
  • @HughEverett #1827 12:32 PM, 03 Jul 2023
    yeah, agree. It's really hard to handle multi cores with different TLBs, EPTPs, CR3s, etc.
  • @ricnar #1828 12:32 PM, 03 Jul 2023
    for this reason my start vm has only 1 procesor 1 core
  • @ricnar #1829 12:33 PM, 03 Jul 2023
    to avoid this
  • @ricnar #1830 12:33 PM, 03 Jul 2023
    only if is needed i use another with more cores
  • @HughEverett ↶ Reply to #1830 #1831 12:36 PM, 03 Jul 2023
    Yeah, and also please consider this: In HyperDbg, we won't ignore the interrupts. We just save them somewhere in the memory and once the guest continues (we config VMCS to VM-exit on Interrupt Window Exiting events). So, after we continue HyperDbg from the 'i' command, it immediately re-injects the previous interrupts. Thus, a context-switch will happen right after continuing the core from an instrumented step-in.
  • @waroi #1832 01:20 PM, 03 Jul 2023
    Joined.
  • @ricnar #1833 06:29 PM, 03 Jul 2023
    One more question
  • @ricnar #1834 06:29 PM, 03 Jul 2023
    Monitor
  • @ricnar #1835 06:29 PM, 03 Jul 2023
    Cannot put breakpoint on execution only?
  • @ricnar #1836 06:29 PM, 03 Jul 2023
    To stop in the first line executed in a section by example
  • @ricnar #1837 06:30 PM, 03 Jul 2023
    But avoiding stop on read or write like in unpacking
  • @HughEverett #1838 06:40 PM, 03 Jul 2023
    This is exactly a part of the new project (new version), that we currently working on it. Starting from the next (major) release, 2 new events will be added to HyperDbg. One to detect execution (and mode change from kernel-mode to user mode), and getting events of memory (read/write/exec) on the context of the entire system. So, this feature will be included in the next major release.
  • @HughEverett ↶ Reply to #1836 #1839 06:42 PM, 03 Jul 2023
    Honestly, I already implemented these things in the code base. But, didn't export it as events yet. There multiple other events like !crwrite (control register write) detection which is not yet documented, but implemented.
  • @HughEverett #1840 06:45 PM, 03 Jul 2023
    The problem here is interrupts. For example, the '.start' which is an essential command, works perfectly up until now. Suddenly it starts being buggy and I have to spend weeks to find a solution for it. That's why we're a little bit behind the scheduled plan.
  • @ricnar #1841 07:11 PM, 03 Jul 2023
    You will get a solution
  • 04 July 2023 (6 messages)
  • @HughEverett #1842 04:02 PM, 04 Jul 2023
    https://twitter.com/ricnar456/status/1676268703464267794?t=lvznYBLottD1j8hyvoYD8A&s=19
  • @HughEverett ↶ Reply to #1842 #1843 04:29 PM, 04 Jul 2023
    @ricnar
    Just a simple reminder, there is no need to run HyperDbg as administrator in the host. Only the guest needs administrator privilege because it needs to install the driver but the host doesn't need administrator permission (elevated token).

    photo_2023-07-04_16-29-20.jpg
  • @symeonp #1844 04:36 PM, 04 Jul 2023
    Hey @HughEverett question my side, I've seen a script example at some phase, blocking an IP or something, do you have any plans/examples doing any fuzzing at all? Would be really great to see some examples!
  • @ricnar ↶ Reply to #1843 #1845 04:38 PM, 04 Jul 2023
    Perfect
  • @ricnar #1846 04:49 PM, 04 Jul 2023
    In the next video i Will correct this
  • @HughEverett ↶ Reply to #1844 #1847 05:09 PM, 04 Jul 2023
    Yes, HyperDbg can be used for fuzzing, but we didn't release anything for the fuzzing in the debugger.
  • 05 July 2023 (110 messages)
  • @prekvapko #1848 02:28 PM, 05 Jul 2023
    Hey, I've set up remote debugging over COM, and my debugger seems to be having a spam of err, invalid packet received
  • @prekvapko #1849 02:28 PM, 05 Jul 2023
    the debugee doesn't seem to throw any errors
  • @prekvapko #1850 02:28 PM, 05 Jul 2023

    photo_2023-07-05_14-28-14.jpg
  • @prekvapko #1851 02:39 PM, 05 Jul 2023
    remote vmi seems to work fine
  • @prekvapko #1852 02:39 PM, 05 Jul 2023
    but debugger mode just enters a 10s spam of invalid packets, with the system destabilized during the time
  • @prekvapko #1853 02:39 PM, 05 Jul 2023
    it seems to "fix up" after a while, but debugger isn't able to process any commands..
  • @prekvapko #1854 02:42 PM, 05 Jul 2023
    If it matters at all, debugee is running win10 22h2, all bins signed and debugger is on win11.
  • @HughEverett ↶ Reply to #1848 #1855 02:43 PM, 05 Jul 2023
    Hi,
    Over physical serial cable? Or named pipe VM?
  • @prekvapko #1856 02:44 PM, 05 Jul 2023
    Physical.
  • @prekvapko #1857 02:44 PM, 05 Jul 2023
    RS232 from debugee, and USB on debugger
  • @HughEverett ↶ Reply to #1857 #1858 02:46 PM, 05 Jul 2023
    Yeah, this is a problem that was previously mentioned in issue in GitHub but I don't have a physical serial cable (and port) to test it now. Is there any error message or something there?
  • @prekvapko #1859 02:46 PM, 05 Jul 2023
    Nope, just an invalid packet received spam in debugger.
  • @prekvapko #1860 02:46 PM, 05 Jul 2023
    No errors on debugee
  • @prekvapko #1861 02:46 PM, 05 Jul 2023
    I’ll check again, perhaps burried somewhere in between
  • @HughEverett #1862 02:47 PM, 05 Jul 2023
    And what happens after that? BSOD?
  • @prekvapko #1863 02:47 PM, 05 Jul 2023
    no, it just lags the system for 10s and then just does nothing, system works fine
  • @prekvapko #1864 02:47 PM, 05 Jul 2023
    but no interaction available on debugger
  • @HughEverett #1865 02:47 PM, 05 Jul 2023
    🤔
  • @prekvapko #1866 02:47 PM, 05 Jul 2023
    if it helps, I saw this happen during symbol sync
  • @prekvapko #1867 02:49 PM, 05 Jul 2023
    both ran as admin as well
  • @prekvapko #1868 02:49 PM, 05 Jul 2023
    No problems over TCP in VMI mode
  • @HughEverett ↶ Reply to #1866 #1869 02:50 PM, 05 Jul 2023
    I don't have any idea for this case. The best way is tracing the codes using Visual Studio debugger to see the faulty code.
  • @prekvapko #1870 02:50 PM, 05 Jul 2023
    Got it; will check once I can.
  • @HughEverett #1871 02:50 PM, 05 Jul 2023
    Please keep us informed if you find the problem or you understand anything about it.
  • @HughEverett ↶ Reply to #1870 #1872 02:50 PM, 05 Jul 2023
    Thanks 👍
  • @prekvapko #1873 04:06 PM, 05 Jul 2023
    @HughEverett How's the memory itnrospection extension going by the way?
  • @HughEverett ↶ Reply to #1873 #1874 05:51 PM, 05 Jul 2023
    This extension is called, "HyperDbg's reversing machine" which aims to automate reverse engineering tasks by using the hypervisor core. 2 or 3 new extension commands will be added and several applications. Right now it's under development.
  • @prekvapko #1875 05:52 PM, 05 Jul 2023
    very nice, finished work and will try to see what's up with physical com now hopefully
  • @HughEverett ↶ Reply to #1875 #1877 06:04 PM, 05 Jul 2023
    I'm sure you can find it.
  • @HughEverett #1878 06:04 PM, 05 Jul 2023
    Keep in mind, HyperDbg sends/receives packets in the following file:

    https://github.com/HyperDbg/HyperDbg/blob/master/hyperdbg/hprdbgctrl/code/debugger/kernel-level/kernel-listening.cpp

    Each packet starts with an actual indicator at the top which is checked here:
    https://github.com/HyperDbg/HyperDbg/blob/a571781e8651998b982a9f53edf8f3d3501a6b2e/hyperdbg/hprdbgctrl/code/debugger/kernel-level/kernel-listening.cpp#L133

    First, try to figure out whether you receive the correct data from the debuggee (using tracing facilities in VS debugger), after that you should check whether the communication is okay or erroneous.
    HyperDbg/hyperdbg/hprdbgctrl/code/debugger/kernel-level/kernel-listening.cpp at master · HyperDbg/HyperDbg

    State-of-the-art native debugging tool. Contribute to HyperDbg/HyperDbg development by creating an account on GitHub.

  • @prekvapko #1879 06:04 PM, 05 Jul 2023
    Well just looking at the code, wrong indicator is passed. I'll check whether the packet is corrupted for some reason?
  • @HughEverett ↶ Reply to #1879 #1880 06:05 PM, 05 Jul 2023
    🤨🤨
  • @prekvapko #1881 06:05 PM, 05 Jul 2023
    poking around the hv itself will be fun ig..
  • @HughEverett ↶ Reply to #1879 #1882 06:06 PM, 05 Jul 2023
    The sender is not sending the correct indicator or it's a receiver error?
  • @prekvapko #1883 06:06 PM, 05 Jul 2023
    I'll check in debug.
  • @prekvapko #1884 06:06 PM, 05 Jul 2023
    Just tracing the comms calls rn
  • @HughEverett ↶ Reply to #1884 #1885 06:16 PM, 05 Jul 2023
    Also, using other serial listening tools like putty, XCTU, etc. (maybe changing baudrate) might be helpful to see the actual packet that is received.
  • @prekvapko #1886 06:20 PM, 05 Jul 2023
    well, I could also just build in debug and check the packet header..
  • @prekvapko #1887 06:20 PM, 05 Jul 2023
    I think the issue lies in symbol packets having an invalid header
  • @prekvapko #1888 06:21 PM, 05 Jul 2023
    just have to install wdk on laptop..
  • @prekvapko ↶ Reply to #1887 #1889 06:21 PM, 05 Jul 2023
    (also possibly why it wasn't noticed- if debugger already has all the symbols, then i think nothing would be received?)
  • @prekvapko #1890 06:21 PM, 05 Jul 2023
    I'll have to check out sync logic on that, but I'll just try this wild guess first.
  • @HughEverett ↶ Reply to #1889 #1891 06:22 PM, 05 Jul 2023
    Symbols of what?
  • @HughEverett #1892 06:22 PM, 05 Jul 2023
    🤨🤨🤨
  • @prekvapko #1893 06:23 PM, 05 Jul 2023
    of modules
  • @prekvapko #1894 06:23 PM, 05 Jul 2023
    'synchronizing modules symbol details'
  • @prekvapko #1895 06:23 PM, 05 Jul 2023
    -> this is right where the invalid packet spam starts hitting
  • @HughEverett ↶ Reply to #1894 #1896 06:23 PM, 05 Jul 2023
    🤔🤔🤔
  • @prekvapko #1897 06:24 PM, 05 Jul 2023
    important things to note:

    initialization packets are fine, posts "synchronization" successful packet also sends fine, but debugger is essentially frozen
  • @HughEverett ↶ Reply to #1895 #1898 06:24 PM, 05 Jul 2023
    So, just try to comment those lines to see whether it works or not without symbols.
  • @prekvapko #1899 06:24 PM, 05 Jul 2023
    yeah just waiting on the wdk download..
  • @prekvapko #1900 06:26 PM, 05 Jul 2023
    Oh also, while I've got you on line, if we were to log reads on a specific address is there a prettier way to print the violator? (i.e. module_name.sys+rva instead of 0xffffff33331123)
  • @prekvapko #1901 06:26 PM, 05 Jul 2023
    via the script
  • @prekvapko #1902 06:27 PM, 05 Jul 2023
    Just trying to beautify the logging somewhat, without having to manually edit values for base addresses within scripts as sometimes I'm restricted to only a few minutes of debugging before anti-dbg/anti-hv capabilities kick in :)
  • @prekvapko #1903 06:28 PM, 05 Jul 2023
    Would also nicely show foreign kernel memory (i.e. unsigned/mapped), like PG, interacting with certain structures
  • @prekvapko #1904 06:28 PM, 05 Jul 2023
    since it'd have to fall back to phys address log
  • @prekvapko #1905 06:29 PM, 05 Jul 2023
    I guess this is all possible with the C++ SDK..
  • @HughEverett #1906 06:30 PM, 05 Jul 2023
    Do you want to translate addresses (from symbols) to function names+rva? Am I get it right?
  • @prekvapko #1907 06:30 PM, 05 Jul 2023
    Just image names + rva
  • @prekvapko #1908 06:30 PM, 05 Jul 2023
    No symbols.
  • @prekvapko #1909 06:30 PM, 05 Jul 2023
    I don't want ntoskrnl->ExAllocatePool, just ntoskrnl.exe+0x14456 is enough
  • @prekvapko #1910 06:31 PM, 05 Jul 2023
    because the images I want to dig around in don't have symbols anyway.
  • @prekvapko #1911 06:31 PM, 05 Jul 2023
    -> this is all in KM
  • @prekvapko #1912 06:32 PM, 05 Jul 2023
    A clear example would be a read monitor on ntoskrnl!PsLoadedModuleList
  • @prekvapko #1913 06:32 PM, 05 Jul 2023
    I'm looking to print PG, and foreign driver memory accesses to this structure.
  • @HughEverett #1914 06:32 PM, 05 Jul 2023
    It's kinda hard. Because symbols and module names are all in user-mode. This information is not available in the kernel as the kernel directly communicates with the debugger without any help from user-mode.
  • @HughEverett #1915 06:34 PM, 05 Jul 2023
    But, I'm thinking of a simple way of handling this. Maybe you can change the printf function of the script engine and add these details to it manually.
  • @prekvapko #1916 06:34 PM, 05 Jul 2023
    I guess so, will have to add a parser for some of the stuff myself ig
  • @prekvapko #1917 06:35 PM, 05 Jul 2023
    Problem comes with newly loaded images though- I'd need to place a hook at the end of MmLoadSystemImageEx, to update the module list again with a new driver loaded.
  • @prekvapko #1918 06:35 PM, 05 Jul 2023
    well, not really a problem, just complicates things
  • @prekvapko #1919 06:35 PM, 05 Jul 2023
    (i know I can retrieve it when the memory is touched, but if it's touched frequently, caching is more.. appropriate)
  • @prekvapko #1920 06:36 PM, 05 Jul 2023
    Or I could just loop over PsLoadedModuleList, check the address range and print the module name directly from the struct...
  • @prekvapko #1921 06:36 PM, 05 Jul 2023
    yeah that could work nicely
  • @prekvapko #1922 06:36 PM, 05 Jul 2023
    look ups iffy but at least it doesn't need another hook
  • @prekvapko #1923 06:37 PM, 05 Jul 2023
    unfortunate that this is too complicated for the script engine..
  • @HughEverett #1924 06:37 PM, 05 Jul 2023
    Yes, I think the best way is to modify the script functions manually.
  • @HughEverett ↶ Reply to #1923 #1925 06:37 PM, 05 Jul 2023
    Exactly.
  • @prekvapko #1926 06:38 PM, 05 Jul 2023
    but if I get it to some usable state, perhaps I can push some debugger options for this :)
  • @HughEverett #1927 06:38 PM, 05 Jul 2023
    But I think the kernel mode event triggering is pretty straightforward. You can easily add your codes there. I think it's the 'Dispatch.c' where HyperDbg triggers all the events.
  • @prekvapko #1928 06:47 PM, 05 Jul 2023
    yeah, packet is malformed, indicator, typeofthepacket is wrong
  • @prekvapko #1929 06:49 PM, 05 Jul 2023
    then it hangs at WaitForSingleObject (line: 1297 file: ctrl\code\debugger\kernel-level\kd.cpp
  • @prekvapko #1930 06:49 PM, 05 Jul 2023
    I think the malformed packets might be something else, and that it's all good?
  • @prekvapko #1931 06:50 PM, 05 Jul 2023
    it keeps waiting for another packet
  • @prekvapko #1932 06:51 PM, 05 Jul 2023
    am I supposed to use some other interface to interact with the debugee?
  • @HughEverett #1933 06:51 PM, 05 Jul 2023
    So, you mean at first, packet are received correctly but after sometimes, the debuggee sends malformed packets?
  • @HughEverett #1934 06:51 PM, 05 Jul 2023
    Can you confirm that some packets are received correctly?
  • @prekvapko #1935 06:51 PM, 05 Jul 2023
    Yes
  • @prekvapko #1936 06:52 PM, 05 Jul 2023
    the weird part is; if i break
  • @prekvapko #1937 06:52 PM, 05 Jul 2023
    there isn't really any "spam"
  • @prekvapko #1938 06:52 PM, 05 Jul 2023
    just 2x invalid packet received
  • @prekvapko #1939 06:52 PM, 05 Jul 2023
    and it's waiting for another packet to be received
  • @HughEverett #1940 06:52 PM, 05 Jul 2023
    Is it only for a specific type of packet?
  • @HughEverett #1941 06:53 PM, 05 Jul 2023
    Or randomly starts submitting invalid packets?
  • @prekvapko #1942 06:53 PM, 05 Jul 2023
    Random invalids.
  • @prekvapko #1943 06:54 PM, 05 Jul 2023
    I don't understand why it's waiting for a new packet though.
  • @prekvapko #1944 06:54 PM, 05 Jul 2023
    let me check what's happening on the debugee lol
  • @HughEverett ↶ Reply to #1943 #1945 06:54 PM, 05 Jul 2023
    Once a packet is received incorrectly, it just ignores the packet and waits for another packet.
  • @prekvapko #1946 06:55 PM, 05 Jul 2023
    interesting, attaching onto the ctrl on debugee freezes system..
  • @prekvapko ↶ Reply to #1945 #1947 06:56 PM, 05 Jul 2023
    Yeah but at what state am I able to do anything as in debugging lol
  • @HughEverett ↶ Reply to #1947 #1948 06:59 PM, 05 Jul 2023
    Can you comment those lines that send the symbols data (in debugge)?
  • @prekvapko #1949 06:59 PM, 05 Jul 2023
    yep, checking the actual packet control flow atm
  • @prekvapko #1950 07:00 PM, 05 Jul 2023
    looks fine..
  • @prekvapko #1951 07:03 PM, 05 Jul 2023
    will try commenting
  • @prekvapko #1952 07:04 PM, 05 Jul 2023
    also tried forcing a break in debugee, but that just led to a watchdog bsod unfortunately
  • @HughEverett #1953 07:04 PM, 05 Jul 2023
    I'm feeling pretty sleepy right now. I'll be back to check it with you tomorrow.
  • @HughEverett #1954 07:05 PM, 05 Jul 2023
    😴
  • @prekvapko #1955 07:05 PM, 05 Jul 2023
    sure, thanks for the help
  • @prekvapko #1956 07:05 PM, 05 Jul 2023
    if I manage to get it working I'll throw a message onto the gh issue and here with the fix
  • @prekvapko #1957 07:05 PM, 05 Jul 2023
    — hopefully without breaking some components in the process :)
  • @prekvapko #1958 07:08 PM, 05 Jul 2023
    welp, not related to symbols lmao
  • 06 July 2023 (295 messages)
  • @HughEverett #1959 04:43 AM, 06 Jul 2023
    In case, anyone is interested in contributing or adding new things to HyperDbg, here I made a project source tree overview.

    The original image is available here:
    https://github.com/HyperDbg/graphics/tree/master/Diagrams/source-tree
    graphics/Diagrams/source-tree at master · HyperDbg/graphics

    Graphics and Art Boards of HyperDbg. Contribute to HyperDbg/graphics development by creating an account on GitHub.

  • @HughEverett #1966 04:55 AM, 06 Jul 2023
    source-tree.jpg
  • @HughEverett #1967 04:55 AM, 06 Jul 2023
    source-tree.png
  • @ricnar #1968 09:10 AM, 06 Jul 2023
    hello again
  • @ricnar #1969 09:10 AM, 06 Jul 2023
    i'm looking for a command to dump the memory sections of an executable
  • @ricnar #1970 09:21 AM, 06 Jul 2023

    photo_2023-07-06_09-21-15.jpg
  • @ricnar #1971 09:24 AM, 06 Jul 2023

    photo_2023-07-06_09-24-41.jpg
  • @ricnar #1972 09:27 AM, 06 Jul 2023

    photo_2023-07-06_09-27-34.jpg
  • @HughEverett ↶ Reply to #1970 #1973 09:49 AM, 06 Jul 2023
    Hi,
    You can add 'pid' to the !monitor command, so the hook will be applied into the target process memory layout.

    Like,

    !monitor rwx Addr1 Addr2 pid 1234
  • @ricnar #1974 09:50 AM, 06 Jul 2023
    i tried
  • @ricnar #1975 09:50 AM, 06 Jul 2023
    but it does not work
  • @ricnar #1976 09:50 AM, 06 Jul 2023
    is a wow64 process
  • @HughEverett #1977 09:51 AM, 06 Jul 2023
    What was the error? 🤔
  • @HughEverett ↶ Reply to #1976 #1978 09:51 AM, 06 Jul 2023
    No difference
  • @ricnar #1979 09:53 AM, 06 Jul 2023

    photo_2023-07-06_09-53-01.jpg
  • @HughEverett ↶ Reply to #1979 #1980 09:53 AM, 06 Jul 2023
    !monitor
  • @ricnar #1981 09:53 AM, 06 Jul 2023
    ! is missing wait
  • @ricnar #1982 09:53 AM, 06 Jul 2023

    photo_2023-07-06_09-53-46.jpg
  • @HughEverett #1983 09:54 AM, 06 Jul 2023
    rw is only supported. This command is not supporting 'rwx' currently.
  • @HughEverett ↶ Reply to #1982 #1984 09:54 AM, 06 Jul 2023
    Are you sure that the address is valid in the target process?
    Please try:

    db 401000 pid 1948
  • @HughEverett #1985 09:55 AM, 06 Jul 2023
    Also , is the process id in hex format?
  • @ricnar #1986 09:55 AM, 06 Jul 2023

    photo_2023-07-06_09-55-24.jpg
  • @ricnar #1987 09:55 AM, 06 Jul 2023
    yes
  • @ricnar #1988 09:55 AM, 06 Jul 2023
    401000 is the code section
  • @ricnar #1989 09:56 AM, 06 Jul 2023
    and it does not have aslr enabled
  • @ricnar #1990 09:56 AM, 06 Jul 2023
    always start image base 400000
  • @ricnar #1991 09:56 AM, 06 Jul 2023

    photo_2023-07-06_09-56-44.jpg
  • @ricnar #1992 09:56 AM, 06 Jul 2023
    the header can be read
  • @ricnar #1993 09:57 AM, 06 Jul 2023

    photo_2023-07-06_09-57-05.jpg
  • @HughEverett #1994 09:58 AM, 06 Jul 2023
    Let me see.
  • @ricnar #1995 09:58 AM, 06 Jul 2023

    photo_2023-07-06_09-58-18.jpg
  • @ricnar #1996 09:58 AM, 06 Jul 2023
    this is the lm comamnd
  • @ricnar #1997 09:58 AM, 06 Jul 2023
    the imagebase is 400000
  • @ricnar #1998 09:59 AM, 06 Jul 2023
    till 0622105 is located the executable
  • @ricnar #1999 09:59 AM, 06 Jul 2023
    do you want the unpackme
  • @ricnar #2000 09:59 AM, 06 Jul 2023
    is a public unpackme
  • @HughEverett #2001 09:59 AM, 06 Jul 2023
    Yes, please send it here.
  • @ricnar #2003 10:00 AM, 06 Jul 2023
    its clean but run in a VM
  • @ricnar #2004 10:00 AM, 06 Jul 2023
    always
  • @ricnar #2005 10:00 AM, 06 Jul 2023
    is a test for unpacking themida
  • @HughEverett #2006 10:00 AM, 06 Jul 2023
    Okay, I'll test it now.
  • @ricnar #2007 10:01 AM, 06 Jul 2023
    i run with .start path
  • @ricnar #2008 10:01 AM, 06 Jul 2023
    and next G
  • @ricnar #2009 10:01 AM, 06 Jul 2023
    till it executes
  • @ricnar #2010 10:02 AM, 06 Jul 2023
    and when is running the address 401000 cannot be viewed with db
  • @HughEverett #2011 10:02 AM, 06 Jul 2023
    This error should be easy to investigate. I'll check it now.
  • @ricnar #2012 10:04 AM, 06 Jul 2023

    photo_2023-07-06_10-04-07.jpg
  • @ricnar #2013 10:04 AM, 06 Jul 2023

    photo_2023-07-06_10-04-36.jpg
  • @HughEverett ↶ Reply to #1979 #2014 10:07 AM, 06 Jul 2023
    Address is wrong in the command
  • @HughEverett #2015 10:08 AM, 06 Jul 2023
    It's 400000
  • @HughEverett #2016 10:09 AM, 06 Jul 2023
    Should be 400 000 but you specified 40 000.
  • @ricnar #2017 10:09 AM, 06 Jul 2023
    Nop
  • @ricnar #2018 10:09 AM, 06 Jul 2023
    401000
  • @HughEverett #2019 10:10 AM, 06 Jul 2023
    Oh, yes, you're right.
  • @ricnar #2020 10:11 AM, 06 Jul 2023

    photo_2023-07-06_10-11-00.jpg
  • @ricnar #2021 10:11 AM, 06 Jul 2023
    400000 works( the header)
  • @ricnar #2022 10:11 AM, 06 Jul 2023
    but 401000 does not work
  • @HughEverett ↶ Reply to #2022 #2023 10:16 AM, 06 Jul 2023
    Because it's not loaded yet. Am I right?
  • @ricnar #2024 10:16 AM, 06 Jul 2023
    nope
  • @ricnar #2025 10:16 AM, 06 Jul 2023
    when the proces continue running
  • @ricnar #2026 10:17 AM, 06 Jul 2023
    is the same
  • @ricnar #2027 10:17 AM, 06 Jul 2023

    photo_2023-07-06_10-17-44.jpg
  • @ricnar #2028 10:17 AM, 06 Jul 2023
    now i will break and switch context
  • @HughEverett #2029 10:18 AM, 06 Jul 2023
    Can you use this?

    !va2pa 401000 pid 1948
  • @ricnar #2030 10:19 AM, 06 Jul 2023

    photo_2023-07-06_10-19-04.jpg
  • @ricnar #2031 10:19 AM, 06 Jul 2023
    yes ypu are right
  • @ricnar #2032 10:19 AM, 06 Jul 2023

    photo_2023-07-06_10-19-35.jpg
  • @ricnar #2033 10:19 AM, 06 Jul 2023
    when the process continue running
  • @ricnar #2034 10:19 AM, 06 Jul 2023
    can be viewed
  • @ricnar #2035 10:20 AM, 06 Jul 2023
    but the header can be displayed at the start
  • @HughEverett #2036 10:20 AM, 06 Jul 2023
    You know what happened here? 😅
  • @ricnar #2037 10:20 AM, 06 Jul 2023
    nop
  • @HughEverett #2038 10:20 AM, 06 Jul 2023
    Windows won't load anything to RAM until at least one instruction is executed from the target address.
  • @ricnar #2039 10:20 AM, 06 Jul 2023
    i traced
  • @ricnar #2040 10:21 AM, 06 Jul 2023
    but is another section
  • @HughEverett #2041 10:21 AM, 06 Jul 2023
    So, it's not executed yet thus, there is not PFN allocated for this address.
  • @ricnar #2042 10:21 AM, 06 Jul 2023
    i see
  • @HughEverett #2043 10:21 AM, 06 Jul 2023
    Once, one instruction is executed for it, the address will be valid.
  • @ricnar #2044 10:21 AM, 06 Jul 2023
    the header is not executed but used to start
  • @ricnar #2045 10:22 AM, 06 Jul 2023
    for this reason is displayed
  • @HughEverett #2046 10:22 AM, 06 Jul 2023
    The header is accessed at least one time during the PE loading
  • @ricnar #2047 10:22 AM, 06 Jul 2023
    yes
  • @ricnar #2048 10:22 AM, 06 Jul 2023
    but how can i circunvent this
  • @HughEverett #2049 10:22 AM, 06 Jul 2023
    So, a #pf page fault happens and bring it to the RAM.
  • @HughEverett ↶ Reply to #2048 #2050 10:23 AM, 06 Jul 2023
    Can you trace instructions to execute one instruction in the target address?
  • @ricnar #2051 10:23 AM, 06 Jul 2023
    i traced but it dos not change anything
  • @ricnar #2052 10:23 AM, 06 Jul 2023
    is another section
  • @ricnar #2053 10:24 AM, 06 Jul 2023
    the start instructions are located in another section
  • @ricnar #2054 10:25 AM, 06 Jul 2023

    photo_2023-07-06_10-25-14.jpg
  • @ricnar #2055 10:25 AM, 06 Jul 2023

    photo_2023-07-06_10-25-36.jpg
  • @ricnar #2056 10:25 AM, 06 Jul 2023
    i traced but is the second section
  • @ricnar #2057 10:25 AM, 06 Jul 2023
    not the same section
  • @ricnar #2058 10:26 AM, 06 Jul 2023

    photo_2023-07-06_10-26-28.jpg
  • @ricnar #2059 10:28 AM, 06 Jul 2023

    photo_2023-07-06_10-28-19.jpg
  • @ricnar #2060 10:28 AM, 06 Jul 2023
    i change rip to 401000
  • @ricnar #2061 10:28 AM, 06 Jul 2023
    i execute one line
  • @ricnar #2062 10:28 AM, 06 Jul 2023
    db 401000 works now
  • @HughEverett #2063 10:28 AM, 06 Jul 2023
    There is a clever solution for this.
  • @ricnar #2064 10:29 AM, 06 Jul 2023
    and i returned to the original rip
  • @ricnar #2065 10:29 AM, 06 Jul 2023
    hehe
  • @HughEverett #2066 10:29 AM, 06 Jul 2023
    😁😁
  • @HughEverett #2067 10:29 AM, 06 Jul 2023
    Is the problem solved now?
  • @ricnar #2068 10:29 AM, 06 Jul 2023
    nop
  • @ricnar #2069 10:30 AM, 06 Jul 2023
    is a ugly workaround but it does not run
  • @HughEverett #2070 10:30 AM, 06 Jul 2023
    What's the problem right now?
  • @ricnar #2071 10:30 AM, 06 Jul 2023
    it crashes
  • @ricnar #2072 10:30 AM, 06 Jul 2023
    but i can see the section now
  • @HughEverett #2073 10:30 AM, 06 Jul 2023
    Okay, there is another solution for that.
  • @HughEverett #2074 10:30 AM, 06 Jul 2023
    Let me explain it.
  • @HughEverett #2075 10:31 AM, 06 Jul 2023
    We have to intercept the page-fault for it.
  • @HughEverett #2076 10:32 AM, 06 Jul 2023
    For example,
  • @ricnar #2077 10:32 AM, 06 Jul 2023
    interesting
  • @ricnar #2078 10:32 AM, 06 Jul 2023
    the fault when the system tries to use the section but it does not exist
  • @HughEverett ↶ Reply to #2078 #2079 10:34 AM, 06 Jul 2023
    !exception pid 1484 script {

    if(@cr2 > 401000 && @cr2 < 402000)
    {
    pause();
    }

    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 01 Jul 2023 (23)
  • 02 Jul 2023 (9)
  • 03 Jul 2023 (238)
  • 04 Jul 2023 (6)
  • 05 Jul 2023 (110)
  • 06 Jul 2023 (295)
  • 07 Jul 2023 (141)
  • 08 Jul 2023 (6)
  • 09 Jul 2023 (1)
  • 10 Jul 2023 (225)
  • 11 Jul 2023 (164)
  • 12 Jul 2023 (48)
  • 13 Jul 2023 (114)
  • 14 Jul 2023 (14)
  • 15 Jul 2023 (31)
  • 16 Jul 2023 (34)
  • 17 Jul 2023 (6)
  • 18 Jul 2023 (17)
  • 19 Jul 2023 (22)
  • 20 Jul 2023 (10)
  • 21 Jul 2023 (2)
  • 22 Jul 2023 (14)
  • 23 Jul 2023 (121)
  • 24 Jul 2023 (43)
  • 25 Jul 2023 (5)
  • 26 Jul 2023 (29)
  • 27 Jul 2023 (19)
  • 28 Jul 2023 (1)
  • 29 Jul 2023 (7)
  • 30 Jul 2023 (396)
  • 31 Jul 2023 (64)