mirror of
https://github.com/horsicq/Detect-It-Easy.git
synced 2026-06-24 01:54:08 +00:00
66 lines
1.3 KiB
Text
66 lines
1.3 KiB
Text
var File=MSDOS;
|
|
|
|
includeScript("result");
|
|
|
|
|
|
/**
|
|
* Get the “base” offset, after the header.
|
|
* @param {Int} [nOffset=0] - The offset from the base offset.
|
|
* @returns {Int}
|
|
*/
|
|
MSDOS.getBaseOffset = function(nOffset)
|
|
{
|
|
if(arguments.length==0)
|
|
{
|
|
nOffset=0;
|
|
}
|
|
return (MSDOS.readWord(8)<<4)+nOffset;
|
|
}
|
|
|
|
|
|
/**
|
|
* Translate segment/offset address pair to file offset.
|
|
* @param {UShort} nSegment - Segment address.
|
|
* @param {UShort} [nOffset=0] - Offset address.
|
|
* @returns {Int}
|
|
*/
|
|
MSDOS.AddressToOffset = function(nSegment,nOffset)
|
|
{
|
|
if(arguments.length==1)
|
|
{
|
|
nOffset=0;
|
|
}
|
|
nOffset+=nSegment<<4;
|
|
return MSDOS.getBaseOffset(nOffset&0xFFFFF);
|
|
}
|
|
|
|
|
|
/**
|
|
* Get the entry point file offset.
|
|
* @param {Int} [nOffset=0] - The offset from the entry point.
|
|
* @returns {Int}
|
|
*/
|
|
MSDOS.getEntryPointOffset = function(nOffset)
|
|
{
|
|
if(arguments.length==0)
|
|
{
|
|
nOffset=0;
|
|
}
|
|
return MSDOS.AddressToOffset(MSDOS.readWord(0x16),
|
|
MSDOS.readWord(0x14))+nOffset;
|
|
}
|
|
|
|
|
|
/**
|
|
* Get the NewExe (or LE/LX) file offset (assuming it's valid).
|
|
* @param {Int} [nOffset=0] - The offset from the NewExe offset.
|
|
* @returns {Int}
|
|
*/
|
|
MSDOS.getNEOffset = function(nOffset)
|
|
{
|
|
if(arguments.length==0)
|
|
{
|
|
nOffset=0;
|
|
}
|
|
return MSDOS.readDword(0x3C)+nOffset;
|
|
}
|