Oxygen Basic

Information => Development => Topic started by: JRS on June 25, 2018, 06:08:44 PM

Title: O2 Linux
Post by: JRS on June 25, 2018, 06:08:44 PM
Charles,

Would it be possible to start a Linux branch of Oxygen Basic from tbe codebase you have now?
Title: Re: O2 Linux
Post by: Charles Pegge on June 26, 2018, 02:42:24 AM
In theory, John. Were you thinking of native Linux?
Title: Re: O2 Linux
Post by: JRS on June 26, 2018, 05:43:47 AM
Yes!

It would seem to be a good time before O2 starts taking on Windows specific attributes.
Title: Re: O2 Linux
Post by: JRS on June 26, 2018, 10:47:17 AM
What might be a good first step is a utility that would convert the PE headers so the base O2 code could execute under Linux. Of course this would require that no Windows specific code is included in the O2 source.

Porting Windows DLLs to Linux (https://github.com/taviso/loadlibrary)
Title: Re: O2 Linux
Post by: JRS on June 26, 2018, 09:57:24 PM
If I could call Oxygen.DLL from Linux, I could use the JIT feature of O2.
Title: Re: O2 Linux
Post by: JRS on June 26, 2018, 11:24:38 PM
I was able to build the loadlibrary package. The Windows Defender example seems to work.

This could turn out to be a Linux DLLC.

Quote
Windows Defender

MsMpEng is the Malware Protection service that is enabled by default on Windows 8, 8.1, 10, Windows Server 2016, and so on. Additionally, Microsoft Security Essentials, System Centre Endpoint Protection and various other Microsoft security products share the same core engine.

The core component of MsMpEng responsible for scanning and analysis is called mpengine. Mpengine is a vast and complex attack surface, comprising of handlers for dozens of esoteric archive formats, executable packers, full system emulators for various architectures and interpreters for various languages. All of this code is accessible to remote attackers.


jrs@jrs-laptop:~/loadlib/loadlibrary-master$ ./mpclient Oxygen.dll
main(): Scanning Oxygen.dll...
EngineScanCallback(): Scanning input
EngineScanCallback(): Scanning archive member !UPX_LZMA2_3.00
EngineScanCallback(): Scanning input->(UPX)
jrs@jrs-laptop:~/loadlib/loadlibrary-master$

Title: Re: O2 Linux
Post by: Charles Pegge on June 27, 2018, 04:21:26 AM

A Freebasic Linux user familiar with both PE and low-level Linux binary formats could do it without too much difficulty. The file is o2hdrs.bas. Then all we would need is a memory allocator and some console i/o.
Title: Re: O2 Linux
Post by: JRS on June 27, 2018, 08:52:12 AM
Luarent would seem to be the best candidate to take a lead in this effort.