How CATSync works under the hood…

I have seen some discussion and speculations on the internet on how my software might be working under the hood. Some people even find it unbelievable that I can control a browser and/or a website externally, and are even concerned that I might be emulating fake keyboard or mouse commands or use other hacking techniques.

In the worst case they may even think I use vodoo or black magic for achieving it.

Well, the truth is very simple:

My program is written in VB.NET language under Visual Studio 2017 Community (the free edition of Visual Studio). My software does not control any external browser installed onto your Windows system, but comes with its own fully blown internal browser engine for rendering the websites. This is unfortunately also the reason why my installer downloads are hefty 53MB in size (otherwise it would be just 2-3MB, hi).

My browser module is based on the Google Chrome engine and therefore natively supporting HTML5 based audio streaming. This is also the reason why you do not need to install any Java Runtimes to see and hear the WebSDR. It will just work out of the box.

Basically my software is a slimmed down Chrome browser with some “smart” addons 🙂

The actual control of the modes and frequency setting is done by injecting Javascript into the running WebSDR server. The Javascript executes the same functions than the user would execute by e.g. typing something or clicking some UI elements. So I am not emulating a keystroke or a mouseclick, but I call the resulting server function directly.

Now, you might think how can someone just inject Javascript into a running website code? Very easy….it’s in principle the same as if you press F12 in Chrome or IE to access the Developer Tools. From there you can just open the Javascript shell and execute any Javascript commands you want on any website (e.g. call functions or read values of UI elements). And that’s exactly how CATSync works (with the exception that I do not need to do the detour via the F12 developer tools).

Currently, I am very busy researching ways of how to reliably react to user events (such as clicking a spot on the bandmap or a button or turning the mouswheel) to allow reading the updated frequency or perhaps even mode changes and sending the changes on the WebSDR via CAT to the radio for bidirectional control. Currently only the radio can control the WebSDR, but not viceversa. So this would be a great enhancement.

So stay tuned for some of my next version updates 🙂

73 de DJ0MY

 

 

 

Advertisements

Why do I strictly separate the Demo from the Full version?

I have received a lot of encouragement and valuable feedback from many hams out there. Thanks to all of you.

Every once in a while I receive a “feature request” for a fully functional demo that would e.g. work for a certain period of time and/or then could be “unlocked” by buying a serial code (like it is common practice with many other software programs).

The other day I even had a mail from a ham that was just moaning about my Demo software to be totally useless.

As a quick reminder – my demo app is fully functional with only one single exception:
It will not automatically retune the rx audio (only the frequency display) in realtime, but the user can still retune it by manual intervention (hitting the Enter key inside the frequency box of the WebSDR). Only the full version does automatic realtime tuning.

Here is the “why”:

Without going into too many technicalities, the reason is that there are very good freeware .NET Decompilers which can restore my full program code including all original variable names and function names.

This makes all efforts of copy protections or demo limitations useless since such protection code written in Microsoft’s .NET programming languages (such as C# and VB.NET) are very easy to crack in less than 5 minutes with those decompilers even with very modest computer knowledge. (unlike programs written in other languages like C++ which are much more difficult to crack and need much higher skills)

This is why I have decided not to make a fully functional (or “unlockable”) demo available, even if it would be more convenient for the user.
It’s just for anti-cracking protection.

 

Having strictly separated demo and full versions is also a common practice nowadays in most apps on e.g.  Android or iOS devices.

Also some Ham radio programs apply a similar principle successfully to reduce the risk of software cracking.

To give you just two examples:
The famous “professional” contest logging software Win-Test as well as Writelog.
Both are around for many years and have not yet been cracked to my knowledge mainly for this reason. (unlike many other ham radio software).

So I hope you understand now why I opted for not building the full version functionality into the demo. The demo will still give you sufficient opportunity to test if the application works with your setup, rigs, etc.

After all it will allow you to judge if you like it or not – and if you do like it I highly appreciate your support.

Thanks for reading and 73…

Why do some features not work with some rigs?

I am getting ocasional questions, specially from users of older radios why some specific  features do not work in CATSync with their system, e.g. “Track TX VFO” or “Mute Audio on TX” functions.

The answer in may cases is very simple:
Either the radio CAT protocol and/or OmniRig command sub-set are not supporting some essential CAT commands for your rig. It has nothing to do with my software. My software uses OmniRig to talk to your radio.

For example, some radios allow simultaneous control of RX and TX VFO via CAT.
Other radios (like many Icoms) do only allow setting/reading the currently active VFO.

In this case the TX VFO field in CATSync will only show 0000.0 as a frequency value and tracking TX VFO is therefore not possible as a logical consequence.

Also some radios do not sent status updates via CAT when the radio changes from RX to TX mode and viceversa. This means if you own such radio without RX/TX CAT status support then it will be impossible to use the “Mute on TX” function as an obvious result.

I hope this explains why for some (specially older) radio models some features may never work, not even with future versions or the full version.

Updating to a newer radio model with a wider CAT command support should be considered in this case.

73 de Oscar DJ0MY

Ideas to improve CATSync

First happy users are using CATSync.
So it didn’t take long to receive feature requests, hi hi.

I would like to use this blog post to collect some of the ideas I may be looking into in the futre. I will be updating this post from time to time in order to add new ideas.

Idea collection:

  • RX/TX Switching the Rig from CATSync
  • Frequency offset correction
  • Do not unmute, if Windows was already muted (mute on TX function)
  • Emulate a CAT radio to other applications (e.g. digital decoder software connected via a virtual serial port)
  • Detect change of default soundcard while CATSync is running (for TX mute)
  • Support for clicking in Kiwi SDR station database labels
  • Update radio via CAT when manually entering WebSDR frequency and hit Enter.
  • Rendering support for Windows 10 High-DPI displays with enabled zoom
  • Bidirectional CAT control to control your rig from a click onto the Web SDR.
    (currently only the Rig can control the WebSDR, not viceversa)
  • Option to switch CAT syncronisation on / off
  • Bookmarks to store and access easily your preferred WebSDRs.
    (inclulding non-public private ones)
  • Update frequency and mode immediately after loading new web-sdr site.
    (overwriting default values of the site)
  • Mute Audio on TX (already started implementing, will come in next version)
  • Remember last Window position and size when relaunching the CATSync

I am getting also feature requests for Windows XP support.
This is technically not possible – sorry guys.

 

Are my installers secure?

I was just made aware by some users that they were uncertain about security implications of installing my software.

When installing this software you may get a warning by your Windows Security System saying that this application is from an “Unknown Publisher” and therefore recommends not to install it, as it may be a malicious program.

This type of warning is very common for ham radio software. Since certificates for digital signatures have usually quite expensive annual fees they are often not feasible for many ham radio programs.

Some people have also reported that some cheaper virus scanners may show false positive findings, which is of course total nonsense.

I can herewith guarantee you that my software if downloaded from my official download sites do not contain any malicious code. It is safe to install them onto your system. You have herewith the personal assurance of the author.

To bypass the Windows security and go ahead installing the software usually you need to follow a couple of steps. These steps are described here for Windows 10, but are very similar from Windows 8 onwards:

  • Open or run the blocked app or file to trigger the Windows SmartScreen warning.
  • Click/tap on the More info link. (see screenshot below)
  • Click/tap on the Run anyway button. (see screenshot below)

This should then allow you to install the software using my provided installers.
This applies for both the Demo and the Full version.

73 de Oscar DJ0MY

.windows protected panel #1

windows protected panel #2