mirror of
https://github.com/SabreTools/BinaryObjectScanner.git
synced 2026-02-10 21:30:24 +00:00
Add RenderWare detection (#244)
* Add RenderWare detection. * Remove unneeded note from SafeDisc. * Update README.
This commit is contained in:
committed by
GitHub
parent
509fff4684
commit
5082c8f705
40
BinaryObjectScanner.GameEngine/RenderWare.cs
Normal file
40
BinaryObjectScanner.GameEngine/RenderWare.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using BinaryObjectScanner.Interfaces;
|
||||
using BinaryObjectScanner.Wrappers;
|
||||
|
||||
namespace BinaryObjectScanner.GameEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// RenderWare (https://web.archive.org/web/20070214132346/http://www.renderware.com/) is an API and graphics engine created by Criterion in 1993.
|
||||
/// It appears that version 4.X was exclusively used by EA internally, with version 3.X being the final public version (https://sigmaco.org/3782-renderware/).
|
||||
/// It was available to use on many different platforms, with it being particularly useful for the PS2 (https://en.wikipedia.org/wiki/RenderWare).
|
||||
///
|
||||
/// Additional resources and documentation:
|
||||
/// RenderWare interview: https://web.archive.org/web/20031208124348/http://www.homelanfed.com/index.php?id=9856
|
||||
/// RenderWare V2.1 API reference: http://www.tnlc.com/rw/api/rwdoc.htm
|
||||
/// RenderWare 2 official docs: https://github.com/electronicarts/RenderWare3Docs
|
||||
/// RenderWare 3.7 SDK: https://github.com/sigmaco/rwsdk-v37-pc
|
||||
/// Wikipedia list of RenderWare games: https://en.wikipedia.org/wiki/Category:RenderWare_games
|
||||
/// </summary>
|
||||
public class RenderWare : IPortableExecutableCheck
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public string CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
|
||||
{
|
||||
// Get the sections from the executable, if possible
|
||||
var sections = pex?.SectionTable;
|
||||
if (sections == null)
|
||||
return null;
|
||||
|
||||
// Found in Redump entries 20138, 55823, and 102493.
|
||||
bool rwcsegSection = pex.ContainsSection("_rwcseg", exact: true);
|
||||
// Found in Redump entry 20138.
|
||||
bool rwdsegSection = pex.ContainsSection("_rwdseg", exact: true);
|
||||
|
||||
// TODO: Check if this indicates a specific version, or if these sections are present in multiple.
|
||||
if (rwcsegSection || rwdsegSection)
|
||||
return "RenderWare";
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -83,7 +83,6 @@ namespace BinaryObjectScanner.Protection
|
||||
return "SafeDisc";
|
||||
|
||||
// TODO: Investigate various section names:
|
||||
// "_rwcseg" - Found in Redump entry 55823.
|
||||
// "STLPORT_" - Found in Redump entry 11638.
|
||||
// "PACODE" - Found in Redump entry 9621.
|
||||
// "CSEG" + "DSEG" + "TQIA_DAT" + "GRPOLY_D" - Found in Redump entry 72195.
|
||||
|
||||
@@ -148,6 +148,14 @@ Below is a list of executable packers detected by BurnOutSharp. The three column
|
||||
| WinZip SFX | Yes | No | Yes | |
|
||||
| WISE Installer | Yes | No | Yes | |
|
||||
|
||||
## Game Engines Detected
|
||||
|
||||
Below is a list of game engines detected by BurnOutSharp. The two columns explain what sort of checks are performed to determine how the protection is detected. Generally speaking, it's better to have a content check than a path check.
|
||||
|
||||
| Protection Name | Content Check | Path Check | Notes |
|
||||
| --------------- | ------------- | ---------- | ----- |
|
||||
| RenderWare | Yes | No | No | |
|
||||
|
||||
## Container Formats
|
||||
|
||||
Below is a list of container formats that are supported in some way:
|
||||
|
||||
Reference in New Issue
Block a user