Want to try VirtualHere before you buy the Steam version? One transferred USB device is enough for you? Then this maybe just for you. I build a small SteamLink Native App which enables you to use free VirtualHere USB Clients for one USB device at a time. Be aware that someone (guess who) is deleting post concerning this topic/possibility in the VH for SL discussions. A few details The first. Removing the Protection. VirtualHere USB seems to rely on some inline Base64 encoded data to mark the software as unlicensed when running the program in trial mode. In case the Base64 data is modified, then VirtualHere USB will announce that the license is invalid. This behaviour can be observed in sub422c90 in the decompiled source: The code. Virtualhere Keygen. It is written as a C native complied binary (not java) for increased performance. It will utilize multiple CPU cores if available and supports all USB transfer modes, control, bulk, interrupt and isochronous. NOW AUTOMATICALLY INTEGRATES WITH THE VALVE STEAM LINK APP In Trial mode, this app will support sharing one USB.
VirtualHere USB seems to rely on some inline Base64 encoded data to mark the software as unlicensed when running the program in trial mode. In case the Base64 data is modified, then VirtualHere USB will announce that the license is invalid. This behaviour can be observed in sub_422c90
in the decompiled source:
The code calls the soubroutine sub_405340
with function parameters: License
, unlicensed,1,MCACDkn0jww6R5WOIjFqU/apAg4Um+mDkU2TBcC7fA1FrA
and 1
. In case the second parameter (unlicensed,1,MCACDkn0jww6R5WOIjFqU/apAg4Um+mDkU2TBcC7fA1FrA
) passed to sub_405340
is tampered with, then VirtualHere USB will display on startup:
The latter behaviour can be traced to subroutine sub_420150
of the decompiled code that performs various licensing checks resulting (most likely, if unfavourable) to a jump into the segment:
that is responsible for marking the license as invalid and hence enforcing all trial limitations. However, if the code segment starting at 0x420338
, then VirtualHere USB has no way to determine whether the license is invalid or not. Following the latter reasoning, a jump is injected at the very start of the code segment 0x420338
and up to 0x42039b
, after the code segment.
Now VirtualHere USB cannot set itself as using an invalid license however, the code is not reached unless the license is indeed invalid such that the unlicensed hash unlicensed,1,MCACDkn0jww6R5WOIjFqU/apAg4Um+mDkU2TBcC7fA1FrA
has to be destroyed to trigger the now modified invalid license code. To do so, the string is contained within the program starting with address 0x5dd1f8
:
and it is sufficient to just modify a single byte to trigger the invalid license code.
When running VirtualHere USB, the program will now display:
which is not vary pretty and just begs for a vanity fix.