PDA

View Full Version : New thinBasic_exe.dll module



RobertoBianchi
22-06-2007, 17:55
We started a new module development, the thinBasic_exe.dll.
Main purpose of this module is provide easyeexecutables files management.
It starts with the following functions (two are already present in the FILE module) four functions:


EXE_PE_GetSubsystem()
EXE_PE_GetSubsystemName()
EXE_GetVersion()
EXE_GetVersionString()


but soon other functions will be added.
Module will be in distribution next week, but here is a preview with an interesting script for analyse the subsytem type of executables contained into the Windows folders and sub folders.
Also you found here two screen shot of analysys.
to run the script unzip the attached file thinBasic_Exe.zip into the ThinBASIC modules folder.

Regards,
Roberto

kryton9
22-06-2007, 18:18
That is really neat. I feel like an IT guy with a nice report like that. Thanks, impressive to see it work like that!

Petr Schreiber
22-06-2007, 22:34
Hi,

this is very nice module !
It is also interesting to see Vista has so many times more files to analyze than XPs ???

Bye,
Petr

Michael Hartlef
23-06-2007, 07:03
Here are my results:

RobertoBianchi
25-06-2007, 08:57
Thanks for sharing your data.
It's always very iteresting make comparative studies between one Windows release and another.
From this point of view I think that ThinBASIC has many even still unexpressed possibilities, so if you are sightseeing like me please stay tuned because more functions will arrive in order to satisfy your curiosity .

Ciao,
Robert

Michael Hartlef
25-06-2007, 09:10
I will for sure!

RobertoBianchi
25-06-2007, 13:17
In order to detect the executable type I added the followings two functions:


EXE_GetType()
EXE_GetTypeName()


Here is a new interesting script (RecurseExeType.tBasic) that try to detect the executable type (I mean MZ, LE, PE) of exe files contained into the Windows folders and sub folders.
Please note that I also changed some ThinBasic_EXEs' constant, so attached to this post you'll find the updated version of RecurseExeSubsystem.tBasic.

Regards,
Roberto

ErosOlmi
25-06-2007, 19:31
Roberto,

just few minor changes.




ListDir("c:\windows\", "*.*", "*.EXE")



should be changed to



ListDir(OS_GetWindowsDir, "*.*", "*.EXE")


in both examples in order to be sure about windows directory.

Also add a -20 to RMC_SetCtrlSize to keep aspect ratio otherwise chart is right/bottom a little bit outside client area.



RMC_SetCtrlSize( %ID_RMC1, nDlgW-20, nDlgH-20)



Nice, nice code!
Thanks a lot
Eros

kryton9
25-06-2007, 23:13
Neat, but I have no idea what PE or LE is? I guess I could look it up, but wanted to post to say thanks TOO.

RobertoBianchi
26-06-2007, 08:51
Kryton,

for your info, PE means Portable Executable file format that's the Win32-based systems: (from Windows NT, Win32s, and Windows 95 up to Windows Vista.
Instead LE stands for Linear Executable file format and it was used by OS/2 and by Windows 95 device drivers, it's the first 32 bit executable file format born when Microsoft still working closed to IBM.
NE means for New Executable, back when Windows was "new" (and DOS was "old") It was a 16 bit executable.
So when you speaking about executable file format you can easly identify the type, and platform just say the signature MZ, PE, NE and LE.
I forgot to say what MZ means, the DOS signature AKA the legendary Mark Zbikowski that you found as stub in both PE and NE executables files.

Eros,
you (and your cosmetics update) are welcome!
Now it's really good code.

Ciao,
Roberto

kryton9
26-06-2007, 11:53
Thanks for the info Roberto. Of course never knew any of this or that it even existed. Love learning new things. Thanks again for the program and explanation!

RobertoBianchi
29-10-2007, 13:38
The thinbasic_exe.dll module provides now the followings functions:

· EXE_GetMachine()
· EXE_GetMachineName()
· EXE_GetType()
· EXE_GetTypeName()
· EXE_GetVersion()
· EXE_GetVersionString()
· EXE_PE_GetExportList()
· EXE_PE_GetImportList()
· EXE_PE_GetSubsystem()
· EXE_PE_GetSubsystemName()
· EXE_PE_Is32()
· EXE_PE_Is64()
· EXE_PE_IsDLL()
· EXE_PE_IsEXE()
· EXE_PE_IsManaged()
· EXE_PE_IsUPX()

You'll find the update in the next ThinBASIC release.

Regards,
Roberto

kryton9
29-10-2007, 22:16
Thanks Roberto.