Now want to add licenses to my scope. Try to disassembly the dll extracted from last update pack for my MSOX3000. I see that now this DLL have much increased size against same DLL by pack 2.42 for MSOX3000A (40mb against just 10mb)...
Are you working with firmware version 4.08.2016071801?
I've been trying at this, but even an unpatched infiniiVisionCore.dll from the firmware image is giving me issues. With CFF Explorer, you can see its header has the machine type set to MIPS R4000, yet the disassembled instructions only make sense if you treat it as ARM.
Putting the DLL as-is into \program files\infiniiVision\ and re-launching infiniiVisionLauncher.exe gives this error:
System.MissingMethodException: Can't find PInvoke DLL 'infiniiVisionCore.dll'.
at Agilent.InfiniiVision.infiniiVisionLauncher.Main(String[] args)
Forcibly setting the machine type to ARM Thumb in the DLL header (matching the DLL for the 2000X series) with no other changes and re-launching causes an immediate crash with the scope rebooting after checking file system integrity.
The file size of the DLL from the firmware image is actually slightly smaller than what's on the scope in ROM under \windows\ (36315896 bytes vs. 37348672). Unfortunately with the scope's copy in ROM, there's no easy way to copy it off. I haven't yet found a recovery program compiled for windows CE on ARM that can do this successfully.
I've found what appears to be the correct place in the file to patch, but that's useless without without being able to run it.
Can anyone theorize on why the DLL from the firmware image appears slightly malformed? Most other DLLs are like that as well, but some of them have the correct ARM Thumb header. There's also some infiniivision stuff on .NET that's completely intact which I've been able to patch and make the scope run successfully, but I haven't yet found anything actually useful to patch there.