Some security software may flag ndtrack (a component of the FlexNet Inventory Agent) for executing a PowerShell command that includes unusual characters. You may encounter a string that looks like the following:
NOTE: The exact string may vary depending on the environment.
powershell.exe -command "$string = '㉻䀉崔ㅸُ瀹Ռ㕼紴稳' $bytes...
The inventory-gathering capabilities of the FlexNet Inventory Agent are extended using InventorySettings.xml, which includes PowerShell scripts to collect data from the following sources:
- Windows Server user access logging
- CAL/SharePoint Server
- Exchange Server
- Lync Server
The Exchange-related script in InventorySettings.xml is written in VBScript and contains embedded PowerShell. This PowerShell script is dynamically constructed using data pulled from Active Directory to determine the Exchange server edition. The data retrieved from Active Directory is returned in encrypted form and stored in a PowerShell variable called $string.
The entire script is passed to PowerShell via the command line. Since the encrypted byte array includes non-character data, the output may appear as a sequence of unusual or unreadable characters. This behavior can trigger alerts in security software, even though it is expected and harmless.
To interpret this data, the script uses the Exchange Edition Decode Algorithm—a decryption method derived from Microsoft’s documentation on Exchange Server Active Directory schema changes. Details on this method are available in Exchange Server 2003 to Exchange Server 2010 Active Directory Schema Changes Reference.doc.
Exchange edition decode algorithm
Using the type attribute of the msExchExchangeServer object, the following steps decode the encrypted Unicode string.
- Establish constants for encoding
Two constants establish the encoding seed and magic numbers used by the algorithm.
C#
const byte Seed = 0x49;
const byte Magic = 0x43;
- Convert the Unicode string to a little-endian byte array
C#
byte[] decodeBuf = Encoding.Unicode.GetBytes((string)value);
- Decode the byte array
Start from the end of the buffer and decode each byte [n-1] by XORing it with the result of XOR between the seed and byte [n-2]. This decodes all bytes except the first one. Each decoded byte will be an ASCII printable character.
C#
for (int i = decodeBuf.Length; i > 1; i--)
{
decodeBuf[i - 1] ^= (byte)(decodeBuf[i - 2] ^ Seed);
}
- Decode the first byte
Use XOR with the bitwise OR of the seed and magic number:
C#
decodeBuf[0] ^= Seed | Magic;
- Convert the byte array back to a Unicode string
The byte array now has a little-endian array of Unicode bytes that can be converted back to a Unicode string.
C#
string decodedType = Encoding.Unicode.GetString(decodeBuf);
- Interpret the converted string
The converted string has the following format: {ServerType};{EncodeDate};{SetupType}
Each field is a hexadecimal string of the format 0xhhhhhhhh. For example: 0x00000001;0x32984c50;0x00000001.
The MAP Toolkit is concerned only with the ServerType and SetupType fields, each of which shares the same enumeration values, as shown in the following table.
Related Articles
ndtrack process running for days and with high CPU usage potentially due to Trend Micro Antivirus (or Trend Micro Deep Sec… 8Number of Views Run PowerShell to check if security software is running on a device 104Number of Views AWS connector fails to execute due to PowerShell execution policy 11Number of Views Common causes of high CPU usage by the ndtrack component of FlexNet inventory agent 385Number of Views Business adapters that import purchase order details may take a long time to run when processing large data sets due to an… 6Number of Views
Hi, I am Reva - Ask me anything.
No new updates
Thanks for the feedback!
Your feedback has been saved.Rate this response:
Add Additional feedback ( Optional )
Are you sure you want to cancel
the case creation?
Are you sure you want to cancel the case creation?
Are you sure you want to close this case
| Products | Region | Phone Numbers |
|---|---|---|
| FlexNet Operations FlexNet Embedded FlexNet Publisher FlexNet Connect FlexNet Code Insight InstallAnywhere InstallShield |
North America * |
+1 630-332-2513 (toll) +1 877-279-2853 (toll-free in North America) |
| Europe * |
+44 1925 944367 (toll) +44 800 047 8642 (toll-free in Europe) |
|
| Japan * | +81 3-4540-5335 (select option 2) | |
| Australia * |
+61 3 9895 2177 +61 1800 560 603 (toll-free in Australia) |
|
|
Usage Intelligence (formerly
Revulytics) Compliance Intelligence |
Please use the Case Portal to submit your support ticket or reach out to your Revenera contact. | |
Case id: 00001065
Activity: Status change: 2 hours ago