ex4 decompiled

 

ex4 files seem to be getting decompiled and unlocked. Someone sent me an ex4 and then the mql4 file decompiled, the ex4 being recent. Market place EAs are also available via this service.

Does MT4 change it's encryption or is every ex4 now decompilable?

 
Mark Penzer: ex4 files seem to be getting decompiled and unlocked. Someone sent me an ex4 and then the mql4 file decompiled, the ex4 being recent. Market place EAs are also available via this service. Does MT4 change it's encryption or is every ex4 now decompilable?

No! Only the old MQL4 could be decompiled due to it being partially byte-code.

Modern MQL4+ and MQL5 use more native code and are encrypted. They can still be cracked by someone highly knowledgeable, but they can no longer be decompiled (only disassembled, which is something completely different).

So, if you received so-called proof of decompilation of modern MQL4+/MQL5, then it is most probably a scam to sell their services or the cracked versions of products.

 

It’s not correct , many proof . 
 
Yip Sin Hang #:

It’s not correct , many proof . 

Nobody in this forum has ever supplied any proof.

People who have made these claims have claimed that they have proof, but when asked to prove that they have proof, they disappear.

 
Fernando Carreiro #:

No! Only the old MQL4 could be decompiled due to it being partially byte-code.

Modern MQL4+ and MQL5 use more native code and are encrypted. They can still be cracked by someone highly knowledgeable, but they can no longer be decompiled (only disassembled, which is something completely different).

So, if you received so-called proof of decompilation of modern MQL4+/MQL5, then it is most probably a scam to sell their services or the cracked versions of products.

What is the difference between cracked-decompiled-disassemble ?

 
@Lorentzos Roussos #: What is the difference between cracked-decompiled-disassemble ?

Cracked = you don't get the original code (no decompilation to MQL), but you are still able to trick it into working by bypassing the licensing (pirated software).

Decompiled = a close approximation of the original MQL source code.

Disassembled = you don't get the original code (no decompilation to MQL), but you are able to see and alter the functionality of the assembly language representation of the native computer code directly used by the Intel x86 based CPU. Here is an example of Intel x86 based assembly language :

; ----------------------------------------------------------------------------------------
; Writes "Hello, World" to the console using only system calls. Runs on 64-bit Linux only.
; To assemble and run:
;
;     nasm -felf64 hello.asm && ld hello.o && ./a.out
; ----------------------------------------------------------------------------------------

          global    _start

          section   .text
_start:   mov       rax, 1                  ; system call for write
          mov       rdi, 1                  ; file handle 1 is stdout
          mov       rsi, message            ; address of string to output
          mov       rdx, 13                 ; number of bytes
          syscall                           ; invoke operating system to do the write
          mov       rax, 60                 ; system call for exit
          xor       rdi, rdi                ; exit code 0
          syscall                           ; invoke operating system to exit

          section   .data
message:  db        "Hello, World", 10      ; note the newline at the end
 
Fernando Carreiro #:

Cracked = you don't get the original code (no decompilation to MQL), but you are still able to trick it into working by bypassing the licensing (pirated software).

Decompiled = a close approximation of the original MQL source code.

Disassembled = you don't get the original code (no decompilation to MQL), but you are able to see and alter the functionality of the assembly language representation of the native computer code directly used by the Intel x86 based CPU. Here is an example of Intel x86 based assembly language :

Wow , thank you .

And why we must not upload products compiled with the cloud compiler ? Is it related ?

 
@Lorentzos Roussos #: And why we must not upload products compiled with the cloud compiler ? Is it related ?

Not related!

The reason is that MetaQuotes must wrap the EA executable in their licensing code and then apply the cloud compilation over it.

If we do the cloud compilation ourselves first, then they will not able to wrap (or inject) their licensing code.

 
Fernando Carreiro #:

Not related!

The reason is that MetaQuotes must wrap the EA executable in their licensing code and then apply the cloud compilation over it.

If we do the cloud compilation ourselves first, then they will not able to wrap (or inject) their licensing code.

So its pretty safe to use the cloud compiler in non-market distributed freebies (for promotions) 

This could be the backend process for the publication then , in theory :

  • Upload ex4 to service
  • Service runs tests on it for validation
  • Validation passes
  • ex4 is wrapped with license code and recompiled 
  • the original uploaded ex4 is deleted
I'm curious how they check to see if a decompilation is real or fake . Do they inform the vendor or they do it themselves ?
 
Lorentzos Roussos #: So its pretty safe to use the cloud compiler in non-market distributed freebies (for promotions).

Yes, it is "safer" but it is still crackable by skilled hackers, but not by the "script kiddies".

Lorentzos Roussos #:This could be the backend process for the publication then , in theory :

  • Upload ex4 to service
  • Service runs tests on it for validation
  • Validation passes
  • ex4 is wrapped with license code and recompiled 
  • the original uploaded ex4 is deleted

As for those steps, step 4 is incorrect. It is not recompiled. It is already compiled. It's just further wrapped in encryptions and other protections (what they call the "cloud compilation", but the naming is inaccurate).

Lorentzos Roussos #: I'm curious how they check to see if a decompilation is real or fake. Do they inform the vendor or they do it themselves ?

@Lorentzos Roussos, I did not understand your last question. Can you clarify?

Reason: