PureBasic 6.04 LTS is out !

Developed or developing a new product in PureBasic? Tell the world about it.
Fred
Administrator
Administrator
Posts: 16686
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

PureBasic 6.04 LTS is out !

Post by Fred »

Hi there,

13-12-2023 - final version is out !

06-12-2023 - beta 2 is out, with an optional switch to enable DLL preloading protection as it's not working on XP.

Code: Select all

- Added /DLLPROTECTION flag in commandline and a switch in 'Compiler options' to enable DLL preloading protection
Here is a new bug fix version, mainly to remove possible DLL injection in Windows created executables (thanks to @Kukulkan for the sponsoring !). So all PureBasic programs by default will be protected from this, but if you load another DLL manually (with OpenLibrary()) or if you link to a third party lib (with Import/EndImport) you should check if it is still safe. It also includes quite some OS X fixes:

Bugfixes for this version:This list was created automatically. All updated bug threads from the date of the last final version have been determined.

Have fun,

The Fantaisie Software Team.
User avatar
ChrisR
Addict
Addict
Posts: 1154
Joined: Sun Jan 08, 2017 10:27 pm
Location: France

Re: PureBasic 6.04 beta 1 is out !

Post by ChrisR »

Not even a break after 6.03 and 6.04 is already on road.
I thought the next version would be 6.10?
Thanks and thanks to Kukulkan for his sponsoring 8)
User avatar
GeoTrail
Addict
Addict
Posts: 2794
Joined: Fri Feb 13, 2004 12:45 am
Location: Bergen, Norway
Contact:

Re: PureBasic 6.04 beta 1 is out !

Post by GeoTrail »

Awesome 👍🏻
Merry Xmas Fred and everyone else ❄️
I Stepped On A Cornflake!!! Now I'm A Cereal Killer!
User avatar
jacdelad
Addict
Addict
Posts: 1478
Joined: Wed Feb 03, 2021 12:46 pm
Location: Planet Riesa
Contact:

Re: PureBasic 6.04 beta 1 is out !

Post by jacdelad »

Thanks Fred and team! Mac users should be happy too.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
User avatar
GG
Enthusiast
Enthusiast
Posts: 258
Joined: Tue Jul 26, 2005 12:02 pm
Location: Lieusaint (77), France

Re: PureBasic 6.04 beta 1 is out !

Post by GG »

Thanks Fred and Team and sponsoring users.
Purebasic 6.04 64 bits - Windows 11 Pro 64 bits 23H2
User avatar
marcoagpinto
Addict
Addict
Posts: 947
Joined: Sun Mar 10, 2013 3:01 pm
Location: Portugal
Contact:

Re: PureBasic 6.04 beta 1 is out !

Post by marcoagpinto »

Heya,

Thanks to the team for a new release.

Is the IDE the faster one you were working on, Fred?

Thanks!
User_Russian
Addict
Addict
Posts: 1443
Joined: Wed Nov 12, 2008 5:01 pm
Location: Russia

Re: PureBasic 6.04 beta 1 is out !

Post by User_Russian »

Error while initializing the application (0xc0000135)
Windows XP is not supported in this version?

add
This is because of the manifest in resources!
When I removed the manifest from the resources, the application worked on Windows XP.
Little John
Addict
Addict
Posts: 4527
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Re: PureBasic 6.04 beta 1 is out !

Post by Little John »

User_Russian wrote: Sun Dec 03, 2023 9:10 pm
Error while initializing the application (0xc0000135)
Windows XP is not supported in this version?

add
This is because of the manifest in resources!
When I removed the manifest from the resources, the application worked on Windows XP.
The manifest is probably important for protection against DLL injection.
Fred wrote: Yes, XP is history since 9 years: https://learn.microsoft.com/en-us/lifec ... windows-xp . We try to keep the compatibilty for the produced executables, but we don't officially support it anymore. You need a more recent Windows to install it (or you can try copy the files from another Windows if you really want to use it on XP).
Thanks to Fred for PB 6.04!
Thanks to Kukulkan for sponsoring!
User_Russian
Addict
Addict
Posts: 1443
Joined: Wed Nov 12, 2008 5:01 pm
Location: Russia

Re: PureBasic 6.04 beta 1 is out !

Post by User_Russian »

Little John wrote: Sun Dec 03, 2023 11:01 pmThe manifest is probably important for protection against DLL injection.
What if my applications don’t need injection protection, but running on older operating systems is important?
This protection should be optional, not forced without the ability to disable it!
Little John
Addict
Addict
Posts: 4527
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Re: PureBasic 6.04 beta 1 is out !

Post by Little John »

Please don't ignore the 2nd part of my previous post.
It's not surprising that newer programs don't run on older operating systems.
The world is evolving, and so are operating systems and PureBasic.
If you are running an OS from the museum, you can use a PB version from the PureBasic museum.
Fred
Administrator
Administrator
Posts: 16686
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: PureBasic 6.04 beta 1 is out !

Post by Fred »

6.0X branch should be working on XP, so I will may be add a flag to enable the protection for now so it stays compatible. If done, this flag will be removed for 6.10 as it won't support XP anymore.
User_Russian
Addict
Addict
Posts: 1443
Joined: Wed Nov 12, 2008 5:01 pm
Location: Russia

Re: PureBasic 6.04 beta 1 is out !

Post by User_Russian »

Little John wrote: Sun Dec 03, 2023 11:01 pmThe manifest is probably important for protection against DLL injection.
I just checked and this manifest does not protect against dll injection using the function CreateRemoteThread.

Code: Select all

Procedure InjectDll(PID, DllName.s)
  Protected Result=#False, hProcess
  Protected *pDLLPath, *pLL, hThr, WR, ThrID
  
  hProcess=OpenProcess_(#PROCESS_CREATE_THREAD | #PROCESS_QUERY_INFORMATION|
                        #PROCESS_VM_OPERATION | #PROCESS_VM_WRITE|
                        #PROCESS_VM_READ, #False, PID)
  
  If hProcess
    *pDLLPath=VirtualAllocEx_(hProcess, 0, StringByteLength(DllName)+4, #MEM_COMMIT, #PAGE_READWRITE)
    If *pDLLPath
      *pLL=GetProcAddress_(GetModuleHandle_("Kernel32.dll"), "LoadLibraryW")
      WriteProcessMemory_(hProcess, *pDLLPath, DllName, StringByteLength(DllName)+SizeOf(Character), @WR)
      hThr=CreateRemoteThread_(hProcess, 0, 0, *pLL, *pDLLPath, 0, @ThrID)
      If hThr
        CloseHandle_(hThr)
        Result=#True
      EndIf
    EndIf
    
    CloseHandle_(hProcess)
  EndIf
    
  ProcedureReturn Result 
EndProcedure 
Therefore, I consider this manifest useless!
It should be optional and turn off in "Compiler Options".
Fred
Administrator
Administrator
Posts: 16686
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: PureBasic 6.04 beta 1 is out !

Post by Fred »

You miss completely the point here, it's not about runtime DLL injection but when the executable is loading. The new manifest protect PB from this and it's fine.
User_Russian
Addict
Addict
Posts: 1443
Joined: Wed Nov 12, 2008 5:01 pm
Location: Russia

Re: PureBasic 6.04 beta 1 is out !

Post by User_Russian »

This should be optional and the checkbox should be in "Compiler Options".
Fred
Administrator
Administrator
Posts: 16686
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: PureBasic 6.04 beta 1 is out !

Post by Fred »

It won't be optional, you don't want your program to be explicitly vulnerable.
Post Reply