-
-
Notifications
You must be signed in to change notification settings - Fork 573
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: ARM64 build for Windows 10 #1488
Comments
Detours offers ARM64 support: |
Definitely, I need to check Detours and compare them with Minhook. If there will no speed drawbacks, I may use this package. |
@Maximus5 if ConEmu uses IAT style hooking, then Detours might not be a viable alternative: I made Clink use Detours, but eventually had to disable the Detours support and go back to IAT hooking because they have different side effects and the order that hooks are called is different.
Switching libraries changes the relative order of hooks being injected, and so if other things are using IAT style hooks on the same APIs ConEmu is hooking, then if ConEmu uses Detours then they will precede ConEmu's hooks. That may or may not cause problems for ConEmu. For Clink, it definitely caused problems. |
Thanks for the info @chrisant996 |
@Maximus5 @DRSDavidSoft oh, my mistake -- I got minhook mixed up. Yes, both minhook and Detours do jmp hooking, not IAT hooking. In that case, Detours should be compatible. I thought I read that ARM hooking was the only/main thing preventing an ARM version of ConEmu. But it sounds like Detours should be compatible, so maybe the only thing standing in the way is some time investment? And if necessary I could probably make Clink use Detours for ARM, since incompatibilities like AnsiCon won't be a problem on ARM (since they don't have ARM versions anyway). |
@chrisant996 I appreciate it nonetheless, this appears to be a (somewhat) straightforward thing to do, I'm willing to spend some time to see if I can make some examples to work on ARM. P.S. A great ARM64 device to run Windows 11 ARM (albeit, a bit slower than Apple M1) is a Raspberry Pi 4. If interested, see the Windows on Raspberry Pi project. It certainly beats using an emulator, as it's bare metal hardware, and reasonably priced. @Maximus5 Sorry to bother you, but may I ask if you could take a look at or do some tests with Detour on x86_64? Unfortunately I don't think that I have enough experience or expertise to modify the existing implementation, without some working reference code. |
Any update here? many new WoA devices comming into the picture, like MS DevKit and Thinkpad X13s (both on Qualcomm Snapdragon) |
I have notebook with Snapdragon X Elite processor. |
ConEmu in current state is buildable for ARM64EC, process is basically straightforward. Two things were issue:
EXPORTS ; LLKeyHooks (ConEmu GUI)
|
Windows 10 for ARM64 is out, and it has proper Windows desktop development support (none of this "Windows RT" nonsense). It even runs x86 (and on Windows 11, x86_64) apps under a transparent emulation layer. So ConEmu can sort of run on my ARM64 device, but it's slow and it's not able to hook into the ARM native conhost or anything like that.
It would be very nice to have support for the new architecture. The big things blocking this from what I can see are:
This patch was pretty close. Managed to build all but 2 of the projects (ConEmuHk, ConEmuCD). I don't know why I had to add the gdi32/shell32/comdlg32/advapi32/ole32 libs to the "links" sections -- or rather, I don't know why it worked previously without them listed there.
The MinHook stuff looks rather hairy and I don't know where to begin on that.
EDIT: Corrected statements about emulation capabilities.
The text was updated successfully, but these errors were encountered: