Skip to content
This repository was archived by the owner on Jun 8, 2023. It is now read-only.

Commit db17743

Browse files
author
TinySec
committed
clean.bat
1 parent 50b8ae4 commit db17743

File tree

15 files changed

+1075
-826
lines changed

15 files changed

+1075
-826
lines changed

bin/js.exe

2.5 KB
Binary file not shown.

bin/js64.exe

2.5 KB
Binary file not shown.

bin/jsida.p64

2.5 KB
Binary file not shown.

bin/jsida.plw

2.5 KB
Binary file not shown.

bin/jsrt_modules/system.js

+190-23
Original file line numberDiff line numberDiff line change
@@ -564,15 +564,6 @@ function system_handleInfomation()
564564
sizeof_SYSTEM_HANDLE_TABLE_ENTRY_INFO = 0x10;
565565
}
566566

567-
if ( 'x64' == process.arch )
568-
{
569-
entryBaseOffset = 8;
570-
}
571-
else
572-
{
573-
entryBaseOffset = 4;
574-
}
575-
576567
NumberOfHandles = lpBuffer.readUInt32LE( 0 );
577568

578569
for ( entryIndex = 0; entryIndex < NumberOfHandles; entryIndex++ )
@@ -598,25 +589,200 @@ function system_handleInfomation()
598589

599590
stHandleNode.HandleValue = lpBuffer.readUInt16LE( entryBaseOffset + offset_SYSTEM_HANDLE_TABLE_ENTRY_INFO_HandleValue );
600591

592+
stHandleNode.ObjectAddress = lpBuffer.readULONG_PTR( entryBaseOffset + offset_SYSTEM_HANDLE_TABLE_ENTRY_INFO_Object );
593+
594+
stHandleNode.GrantedAccess = lpBuffer.readUInt32LE( entryBaseOffset + offset_SYSTEM_HANDLE_TABLE_ENTRY_INFO_GrantedAccess );
595+
596+
597+
// push node
598+
handleArray.push( stHandleNode );
599+
}
600+
601+
if ( lpBuffer )
602+
{
603+
lpBuffer.free();
604+
lpBuffer = null;
605+
}
606+
607+
return handleArray;
608+
}
609+
exports.handleInfomation = system_handleInfomation;
610+
611+
612+
function fix_module_path( arg_src_path )
613+
{
614+
if ( 0 == arg_src_path.length )
615+
{
616+
return arg_src_path;
617+
}
618+
619+
var windows_folder = process.env["SystemRoot"];
620+
621+
var windows_folder_lower = windows_folder.toLowerCase();
622+
623+
var src_path = arg_src_path.replace(/\//g , "\\\\");
624+
var src_path_lower = src_path.toLowerCase();
625+
var dest_path = '';
626+
627+
if ( 0 == src_path_lower.indexOf( '\\systemroot\\') )
628+
{
629+
dest_path = windows_folder + src_path.substring( 11 , src_path.length );
630+
}
631+
else if ( 0 == src_path_lower.indexOf( '\\??\\') )
632+
{
633+
dest_path = src_path.substring( 4 , src_path.length );
634+
}
635+
else if ( 0 == src_path_lower.indexOf( '\\\\?\\') )
636+
{
637+
dest_path = src_path.substring( 4 , src_path.length );
638+
}
639+
else if ( 0 == src_path_lower.indexOf( '\\windows\\') )
640+
{
641+
dest_path = windows_folder + src_path.substring( 8 , src_path.length );
642+
}
643+
else if ( 0 == src_path_lower.indexOf( '\\program files\\') )
644+
{
645+
dest_path = process.env["SystemDrive"] + src_path;
646+
}
647+
else
648+
{
649+
dest_path = src_path;
650+
}
651+
652+
return dest_path;
653+
}
654+
655+
function system_moduleInformation()
656+
{
657+
var lpBuffer = null;
658+
659+
var entryBaseOffset = 0;
660+
661+
var stModuleNode = {};
662+
var moduleArray = [];
663+
664+
var NumberOfModules = 0;
665+
var entryIndex = 0;
666+
667+
lpBuffer = helper_querySystemInfomation2( 11 , 1024 * 10 );
668+
if ( !lpBuffer )
669+
{
670+
return moduleArray;
671+
}
672+
673+
// init offsets
674+
var offset_RTL_PROCESS_MODULE_INFORMATION_Section = 0x00;
675+
676+
var offset_RTL_PROCESS_MODULE_INFORMATION_MappedBase = 0x00;
677+
678+
var offset_RTL_PROCESS_MODULE_INFORMATION_ImageBase = 0x00;
679+
680+
var offset_RTL_PROCESS_MODULE_INFORMATION_ImageSize = 0x00;
681+
682+
var offset_RTL_PROCESS_MODULE_INFORMATION_Flags = 0x00;
683+
684+
var offset_RTL_PROCESS_MODULE_INFORMATION_LoadOrderIndex = 0x00;
685+
686+
var offset_RTL_PROCESS_MODULE_INFORMATION_InitOrderIndex = 0x00;
687+
688+
var offset_RTL_PROCESS_MODULE_INFORMATION_LoadCount = 0x00;
689+
690+
var offset_RTL_PROCESS_MODULE_INFORMATION_OffsetToFileName = 0x00;
691+
692+
var offset_RTL_PROCESS_MODULE_INFORMATION_FullPathName = 0x00;
693+
694+
var sizeof_RTL_PROCESS_MODULE_INFORMATION = 0;
695+
696+
697+
if ( 'x64' == process.arch )
698+
{
699+
offset_RTL_PROCESS_MODULE_INFORMATION_Section = 0x00;
700+
701+
offset_RTL_PROCESS_MODULE_INFORMATION_MappedBase = 0x08;
702+
703+
offset_RTL_PROCESS_MODULE_INFORMATION_ImageBase = 0x10;
704+
705+
offset_RTL_PROCESS_MODULE_INFORMATION_ImageSize = 0x18;
706+
707+
offset_RTL_PROCESS_MODULE_INFORMATION_Flags = 0x1C;
708+
709+
offset_RTL_PROCESS_MODULE_INFORMATION_LoadOrderIndex = 0x20;
710+
711+
offset_RTL_PROCESS_MODULE_INFORMATION_InitOrderIndex = 0x22;
712+
713+
offset_RTL_PROCESS_MODULE_INFORMATION_LoadCount= 0x24;
714+
715+
offset_RTL_PROCESS_MODULE_INFORMATION_OffsetToFileName = 0x26;
716+
717+
offset_RTL_PROCESS_MODULE_INFORMATION_FullPathName = 0x28;
718+
719+
sizeof_RTL_PROCESS_MODULE_INFORMATION = 0x128;
720+
}
721+
else
722+
{
723+
offset_RTL_PROCESS_MODULE_INFORMATION_Section = 0x00;
724+
725+
offset_RTL_PROCESS_MODULE_INFORMATION_MappedBase = 0x04;
726+
727+
offset_RTL_PROCESS_MODULE_INFORMATION_ImageBase = 0x08;
728+
729+
offset_RTL_PROCESS_MODULE_INFORMATION_ImageSize = 0x0C;
730+
731+
offset_RTL_PROCESS_MODULE_INFORMATION_Flags = 0x10;
732+
733+
offset_RTL_PROCESS_MODULE_INFORMATION_LoadOrderIndex = 0x14;
734+
735+
offset_RTL_PROCESS_MODULE_INFORMATION_InitOrderIndex = 0x16;
736+
737+
offset_RTL_PROCESS_MODULE_INFORMATION_LoadCount= 0x18;
738+
739+
offset_RTL_PROCESS_MODULE_INFORMATION_OffsetToFileName = 0x1A;
740+
741+
offset_RTL_PROCESS_MODULE_INFORMATION_FullPathName = 0x1C;
742+
743+
sizeof_RTL_PROCESS_MODULE_INFORMATION = 0x11C;
744+
}
745+
746+
747+
NumberOfModules = lpBuffer.readUInt32LE( 0 );
748+
749+
for ( entryIndex = 0; entryIndex < NumberOfModules; entryIndex++ )
750+
{
601751
if ( 'x64' == process.arch )
602752
{
603-
stHandleNode.ObjectAddress = lpBuffer.readUInt64LE( entryBaseOffset + offset_SYSTEM_HANDLE_TABLE_ENTRY_INFO_Object );
753+
entryBaseOffset = 8 + entryIndex * sizeof_RTL_PROCESS_MODULE_INFORMATION;
604754
}
605755
else
606756
{
607-
stHandleNode.ObjectAddress = Number64( lpBuffer.readUInt32LE( entryBaseOffset + offset_SYSTEM_HANDLE_TABLE_ENTRY_INFO_Object ) );
757+
entryBaseOffset = 4 + entryIndex * sizeof_RTL_PROCESS_MODULE_INFORMATION;
608758
}
759+
760+
stModuleNode = {};
761+
762+
//stModuleNode.Section = lpBuffer.readULONG_PTR( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_Section );
763+
764+
//stModuleNode.MappedBase = lpBuffer.readULONG_PTR( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_MappedBase );
609765

610-
stHandleNode.GrantedAccess = lpBuffer.readUInt32LE( entryBaseOffset + offset_SYSTEM_HANDLE_TABLE_ENTRY_INFO_GrantedAccess );
766+
stModuleNode.ImageBase = lpBuffer.readULONG_PTR( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_ImageBase );
611767

612-
613-
// push node
614-
handleArray.push( stHandleNode );
768+
stModuleNode.ImageSize = lpBuffer.readUInt32LE( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_ImageSize );
769+
770+
stModuleNode.Flags = lpBuffer.readUInt32LE( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_Flags );
615771

616-
if ( entryIndex > 10 )
617-
{
618-
break;
619-
}
772+
stModuleNode.LoadOrderIndex = lpBuffer.readUInt16LE( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_LoadOrderIndex );
773+
774+
//stModuleNode.InitOrderIndex = lpBuffer.readUInt16LE( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_InitOrderIndex );
775+
776+
stModuleNode.LoadCount = lpBuffer.readUInt16LE( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_LoadCount );
777+
778+
//stModuleNode.OffsetToFileName = lpBuffer.readUInt16LE( entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_OffsetToFileName );
779+
780+
stModuleNode.FullPathName = lpBuffer.toString( 'ascii' , entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_FullPathName , entryBaseOffset + offset_RTL_PROCESS_MODULE_INFORMATION_FullPathName + 256 );
781+
782+
stModuleNode.FullPathName = fix_module_path( stModuleNode.FullPathName );
783+
784+
// push node
785+
moduleArray.push( stModuleNode );
620786
}
621787

622788
if ( lpBuffer )
@@ -625,15 +791,16 @@ function system_handleInfomation()
625791
lpBuffer = null;
626792
}
627793

628-
return handleArray;
794+
return moduleArray;
629795
}
630-
exports.handleInfomation = system_handleInfomation;
796+
exports.system_moduleInformation = system_moduleInformation;
797+
798+
631799

632800
function main( )
633801
{
634802

635-
printf( system_handleInfomation() );
636-
803+
637804
return 0;
638805
}
639806

bin/jsw.exe

2.5 KB
Binary file not shown.

bin/jsw64.exe

2.5 KB
Binary file not shown.

bin/jswd.dll

2.5 KB
Binary file not shown.

bin/jswd64.dll

2.5 KB
Binary file not shown.

clean.bat

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
2+
for /r . %%c in (.) do @if exist "%%c\objchk_wxp_x86" rd /S /Q "%%c\objchk_wxp_x86"
3+
for /r . %%c in (.) do @if exist "%%c\objfre_wxp_x86" rd /S /Q "%%c\objfre_wxp_x86"
4+
5+
for /r . %%c in (.) do @if exist "%%c\objchk_win7_amd64" rd /S /Q "%%c\objchk_win7_amd64"
6+
for /r . %%c in (.) do @if exist "%%c\objfre_win7_amd64" rd /S /Q "%%c\objfre_win7_amd64"
7+
8+
for /r . %%c in (.) do @if exist "%%c\objchk_win7_x86" rd /S /Q "%%c\objchk_win7_x86"
9+
for /r . %%c in (.) do @if exist "%%c\objfre_win7_x86" rd /S /Q "%%c\objfre_win7_x86"
10+
11+
12+
for /r . %%c in (.) do @if exist "%%c\Release" rd /S /Q "%%c\Release"
13+
for /r . %%c in (.) do @if exist "%%c\Debug" rd /S /Q "%%c\Debug"
14+
15+
::Remove files
16+
for /r . %%c in (*.wrn *.err *.aps *.bsc *.clw *.dsw *.ilk *.mac *.ncb *.obj *.opt *.plg *.positions *.suo *.user *.WW) do del /f /q "%%c"
17+
18+
19+
del /s /q /A *.suo
20+
21+
22+
23+
del /s /q /A buildchk_win7_x86.log
24+
del /s /q /A buildfre_win7_x86.log
25+
del /s /q /A buildfre_wxp_x86.log
26+
del /s /q /A buildchk_wxp_x86.log
27+
del /s /q /A buildfre_win7_amd64.log
28+
del /s /q /A buildchk_win7_amd64.log
29+
30+
31+
del /s /q /A PREfast_defects_chk_win7_AMD64Sum.txt
32+
del /s /q /A PREfast_defects_fre_win7_AMD64Sum.txt
33+
34+
35+
del /s /q /A PREfast_defects_chk_win7_x86Sum.txt
36+
del /s /q /A PREfast_defects_fre_win7_x86Sum.txt
37+
38+
39+
del /s /q /A PREfast_defects_chk_win7_AMD64.xml
40+
del /s /q /A PREfast_defects_fre_win7_AMD64.xml
41+
42+
del /s /q /A PREfast_defects_chk_win7_x86.xml
43+
del /s /q /A PREfast_defects_fre_win7_x86.xml
44+
45+
del /s /q /A prefastchk_win7_AMD64.log
46+
del /s /q /A prefastfre_win7_AMD64.log
47+
48+
del /s /q /A prefastchk_win7_x86.log
49+
del /s /q /A prefastfre_win7_x86.log
50+

src/jsrt_modules/core/buffer.js

+22-4
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,7 @@ Buffer.prototype.readInt64BE = function (offset)
777777
}
778778
assert(_.isUndefined(offset) || _.isNumber(offset));
779779

780-
return LONG64(process.reserved.bindings.buffer_readInt64BE(this.address, offset || 0));
780+
return Number64(process.reserved.bindings.buffer_readInt64BE(this.address, offset || 0));
781781
}
782782

783783
Buffer.prototype.readInt64LE = function (offset)
@@ -787,7 +787,7 @@ Buffer.prototype.readInt64LE = function (offset)
787787
}
788788

789789
assert(_.isUndefined(offset) || _.isNumber(offset));
790-
return LONG64(process.reserved.bindings.buffer_readInt64LE(this.address, offset || 0));
790+
return Number64(process.reserved.bindings.buffer_readInt64LE(this.address, offset || 0));
791791
}
792792

793793
Buffer.prototype.readUInt64BE = function (offset)
@@ -1175,7 +1175,7 @@ Buffer.prototype.writeInt64BE = function (value, offset)
11751175

11761176
assert((_.isUndefined(offset) || _.isNumber(offset)), "invalid offset");
11771177

1178-
process.reserved.bindings.buffer_writeInt64BE(this.address, offset || 0, LONG64(value));
1178+
process.reserved.bindings.buffer_writeInt64BE(this.address, offset || 0, Number64(value));
11791179

11801180
return this;
11811181
}
@@ -1189,7 +1189,7 @@ Buffer.prototype.writeInt64LE = function (value, offset)
11891189

11901190
assert((_.isUndefined(offset) || _.isNumber(offset)), "invalid offset");
11911191

1192-
process.reserved.bindings.buffer_writeInt64LE(this.address, offset || 0, LONG64(value));
1192+
process.reserved.bindings.buffer_writeInt64LE(this.address, offset || 0, Number64(value));
11931193

11941194
return this;
11951195
}
@@ -1313,6 +1313,24 @@ process.reserved.dumpBufferLeaks = function dumpBufferLeaks()
13131313
}
13141314

13151315

1316+
Buffer.prototype.readULONG_PTR = function (offset)
1317+
{
1318+
if (!this.isValid())
1319+
{
1320+
throw new Error("try to operate with invalid buffer");
1321+
}
1322+
1323+
assert(_.isUndefined(offset) || _.isNumber(offset));
1324+
1325+
if ( 'x64' == process.arch )
1326+
{
1327+
return process.reserved.bindings.buffer_readUInt64LE(this.address, offset || 0);
1328+
}
1329+
else
1330+
{
1331+
return Number64( process.reserved.bindings.buffer_readUInt32LE(this.address, offset || 0) );
1332+
}
1333+
}
13161334

13171335

13181336
//------------------------------------

src/jsrt_modules/core/host.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -496,13 +496,13 @@ function writeInt64LE( arg_address , arg_offset , arg_value )
496496
{
497497
address = Number64( arguments[0] );
498498
offset = 0;
499-
value = LONG64( arguments[1] );
499+
value = Number64( arguments[1] );
500500
}
501501
else if ( 3 == arguments.length )
502502
{
503503
address = Number64( arguments[0] );
504504
offset = Number64( arguments[1] );
505-
value = LONG64( arguments[2] );
505+
value = Number64( arguments[2] );
506506
}
507507

508508
return process.reserved.bindings.host_writeInt64LE( address , offset , value );
@@ -521,13 +521,13 @@ function writeInt64BE( arg_address , arg_offset , arg_value )
521521
{
522522
address = Number64( arguments[0] );
523523
offset = 0;
524-
value = LONG64( arguments[1] );
524+
value = Number64( arguments[1] );
525525
}
526526
else if ( 3 == arguments.length )
527527
{
528528
address = Number64( arguments[0] );
529529
offset = Number64( arguments[1] );
530-
value = LONG64( arguments[2] );
530+
value = Number64( arguments[2] );
531531
}
532532

533533
return process.reserved.bindings.host_writeInt64BE( address , offset , value );

0 commit comments

Comments
 (0)