sttz / expresso

expresso is a command line interface to control the ExpressVPN app
MIT License
63 stars 11 forks source link

can not use ,or maybe i'm wrong #18

Open helmuteke opened 2 years ago

helmuteke commented 2 years ago

when i do command

C:\expresso>expresso locations

i get this message

No manifest found with name: com.expressvpn.helper.firefox

what's wrong ??

jhertel commented 2 years ago

I get the same error when I try to connect:

> expresso.exe connect "Germany"
No manifest found with name: com.expressvpn.helper.firefox

It even happens when I just run expresso without parameters:

> expresso.exe
No manifest found with name: com.expressvpn.helper.firefox

With verbose information at "Trace" level:

> expresso.exe -v -v -v
expresso v1.3.0
Log level set to Trace
No manifest found with name: com.expressvpn.helper.firefox
   at sttz.expresso.NativeMessagingClient..ctor(String name, ILogger logger)
   at sttz.expresso.ExpressVPNClient..ctor(ILogger logger)
   at sttz.expresso.ExpressoCLI.Setup()
   at sttz.expresso.ExpressoCLI.Main(String[] args)

So something is suddenly fundamentally wrong, with a version of expresso that I believe previously worked fine. It seems like expresso doesn't work at all now. I guess ExpressVPN made an update that changed something. I am using ExpressVPN version "12.26.0 (68)".

I have been seeing this bug for at least a week, maybe longer, but I didn't get around to filing a bug report until now.

jhertel commented 2 years ago

I looked a bit more into it, and I'm thinking ExpressVPN might have changed the name "com.expressvpn.helper.firefox" to just "com.expressvpn.helper" on Windows. It seems like that was the name on other platforms before at least:

public static readonly string DefaultManifestName = 
    RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "com.expressvpn.helper.firefox" 
    : "com.expressvpn.helper";

(https://github.com/sttz/expresso/blob/master/ExpressVPNClient.cs#L218)

The file C:\Program Files (x86)\ExpressVPN\services\com.expressvpn.helper.firefox.json now says:

{
  "name": "com.expressvpn.helper",
  "description": "ExpressVPN Chrome Helper",
  ...

So my guess (not tested!) is that changing the lines 218-220 in ExpressVPNClient.cs:

public static readonly string DefaultManifestName = 
    RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "com.expressvpn.helper.firefox" 
    : "com.expressvpn.helper";

to

public static readonly string DefaultManifestName = "com.expressvpn.helper";

could solve the problem, at least for the newest versions of ExpressVPN.

But again, I'm just guessing here without actually testing, and pretty much also without knowing what I am talking about.

jhertel commented 2 years ago

public static readonly string DefaultManifestName = "com.expressvpn.helper";

I tried this now, but that did not work:

No manifest found with name: com.expressvpn.helper

jhertel commented 2 years ago

Found the culprit: The ExpressVPN developers seem to have renamed the folder "/ExpressVPN/expressvpnd" to "/ExpressVPN/services" or moved the relevant files into that folder.

When I change this code:

        RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? new string[] {
                Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + "/ExpressVPN/expressvpnd",
                Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "/ExpressVPN/expressvpnd",

(https://github.com/sttz/expresso/blob/master/NativeMessagingClient.cs#L35) into

        RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? new string[] {
                Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + "/ExpressVPN/expressvpnd",
                Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "/ExpressVPN/expressvpnd",
                Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + "/ExpressVPN/services",
                Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "/ExpressVPN/services",

the error goes away and I just get the usual

> expresso.exe locations
Reached end of stream but expected 4 more bytes.

which is related to another bug.

Internaler commented 2 years ago

Hmm yes, I am having this same issue :(. Could you send me the fixed Version jhertel?

jhertel commented 2 years ago

Hmm yes, I am having this same issue :(. Could you send me the fixed Version jhertel?

The problem is that it didn't really make expresso work again, because now I just constantly get "Reached end of stream but expected 4 more bytes" no matter what command I try to send and how many times I do it; before I only got that error message quite often, but not always. Now I always get it, so nothing works. :-( I forgot to mention that here – sorry about that.

ExpressVPN must have changed something that needs more investigation. They seem to have both changed the name of the helper and something else in their client.

Perhaps downgrading ExpressVPN to an earlier version before that change can "solve" it temporarily until expresso is fixed, but then you'll probably lose your ExpressVPN settings, so I haven't tried that.

Internaler commented 2 years ago

Hmm yes, I am having this same issue :(. Could you send me the fixed Version jhertel?

The problem is that it didn't really make expresso work again, because now I just constantly get "Reached end of stream but expected 4 more bytes" no matter what command I try to send and how many times I do it; before I only got that error message quite often, but not always. Now I always get it, so nothing works. :-( I forgot to mention that here – sorry about that.

ExpressVPN must have changed something that needs more investigation. They seem to have both changed the name of the helper and something else in their client.

Perhaps downgrading ExpressVPN to an earlier version before that change can "solve" it temporarily until expresso is fixed, but then you'll probably lose your ExpressVPN settings, so I haven't tried that.

Ah okay- Thank you for the help. I do hope this does get fixed soon.

Internaler commented 2 years ago

Oh, and how can I revert/downgrade ExpresssVPN To an Earlier version?

jhertel commented 2 years ago

Hm, yeah, you have to find some place where you can find old versions. Not so easy as I thought it would be... But there are some here, although the dates are wrong; I would check them for viruses before running them: https://filehippo.com/download_expressvpn/history/

Internaler commented 2 years ago

Hm, yeah, you have to find some place where you can find old versions. Not so easy as I thought it would be... But there are some here, although the dates are wrong; I would check them for viruses before running them: https://filehippo.com/download_expressvpn/history/

I found a 1 month old version on the Official expressvpn site. https://www.expressvpn.works/clients/windows/expressvpn_windows_10.27.0.22_release.exe

I'm going to test this and see if it works, I will let you know.

EDIT:

I just tested this and it works fine! You can contact ExpressVPN Support and they will give you an older version installer.

jhertel commented 2 years ago

I just tested this and it works fine!

Super! Thanks for telling me (and others reading this)! :-)

jordibonastrem commented 1 year ago

Thanks brother

JonathansDCI commented 1 year ago

This is still broken 4/10/2023. I actually contacted ExpressVPN customer service and made a request for them to release a commandline support for Windows. They provide command line support for Linux.