mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-25 21:05:28 +00:00
117 lines
3.3 KiB
C#
117 lines
3.3 KiB
C#
|
// Decompiled with JetBrains decompiler
|
|||
|
// Type: Microsoft.InfoCards.DataRow
|
|||
|
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
|
|||
|
// MVID: ADE0A079-11DB-4A46-8BDE-D2A592CA8DEA
|
|||
|
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Virus.Win32.Expiro.w-1f15ee7e9f7da02b6bfb4c5a5e6484eb9fa71b82d3699c54bcc7a31794b4a66d.exe
|
|||
|
|
|||
|
using Microsoft.InfoCards.Diagnostics;
|
|||
|
|
|||
|
namespace Microsoft.InfoCards
|
|||
|
{
|
|||
|
internal class DataRow
|
|||
|
{
|
|||
|
private string m_instanceId;
|
|||
|
private string m_sourceId;
|
|||
|
private int m_localId;
|
|||
|
private int m_objectType;
|
|||
|
private long m_lastChange;
|
|||
|
private int m_objectSize;
|
|||
|
private GlobalId m_globalId;
|
|||
|
private byte[] m_buffer;
|
|||
|
private DataRowIndexBuffer m_indexBuffer;
|
|||
|
|
|||
|
public DataRow()
|
|||
|
: this((string) null, (string) null)
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
private DataRow(string instanceId, string sourceId)
|
|||
|
{
|
|||
|
this.m_instanceId = instanceId;
|
|||
|
this.m_sourceId = sourceId;
|
|||
|
this.m_indexBuffer = new DataRowIndexBuffer();
|
|||
|
}
|
|||
|
|
|||
|
public GlobalId GlobalId
|
|||
|
{
|
|||
|
get => this.m_globalId;
|
|||
|
set
|
|||
|
{
|
|||
|
this.m_globalId = !(GlobalId.Empty == value) ? value : throw InfoCardTrace.ThrowHelperArgumentNull(nameof (value));
|
|||
|
this.SetIndexValue("ix_globalid", (object) value);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public string InstanceId
|
|||
|
{
|
|||
|
get => this.m_instanceId;
|
|||
|
internal set => this.m_instanceId = value;
|
|||
|
}
|
|||
|
|
|||
|
public string SourceId
|
|||
|
{
|
|||
|
get => this.m_sourceId;
|
|||
|
internal set => this.m_sourceId = value;
|
|||
|
}
|
|||
|
|
|||
|
public long LastChange
|
|||
|
{
|
|||
|
get => this.m_lastChange;
|
|||
|
internal set => this.m_lastChange = value;
|
|||
|
}
|
|||
|
|
|||
|
public int LocalId
|
|||
|
{
|
|||
|
get => this.m_localId;
|
|||
|
internal set => this.m_localId = value;
|
|||
|
}
|
|||
|
|
|||
|
public int ObjectType
|
|||
|
{
|
|||
|
get => this.m_objectType;
|
|||
|
set
|
|||
|
{
|
|||
|
this.m_objectType = value;
|
|||
|
this.SetIndexValue("ix_objecttype", (object) value);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
internal DataRowIndexBuffer IndexBuffer => this.m_indexBuffer;
|
|||
|
|
|||
|
public void SetDataField(byte[] buffer) => this.SetDataField(buffer, buffer.Length);
|
|||
|
|
|||
|
public void SetDataField(byte[] buffer, int size)
|
|||
|
{
|
|||
|
this.m_buffer = buffer;
|
|||
|
this.m_objectSize = size;
|
|||
|
}
|
|||
|
|
|||
|
public byte[] GetDataField() => this.m_buffer;
|
|||
|
|
|||
|
public void SetMultiIndexValue(string name, params object[][] multiValues)
|
|||
|
{
|
|||
|
IndexObject[] indexObjects = new IndexObject[multiValues.Length];
|
|||
|
for (int index = 0; index < multiValues.Length; ++index)
|
|||
|
indexObjects[index] = new IndexObject(multiValues[index]);
|
|||
|
this.m_indexBuffer.SetIndexValues(name, indexObjects);
|
|||
|
}
|
|||
|
|
|||
|
public void SetIndexValue(string name, params object[] values)
|
|||
|
{
|
|||
|
object[][] objArray = new object[values.Length][];
|
|||
|
for (int index = 0; index < objArray.Length; ++index)
|
|||
|
objArray[index] = new object[1]{ values[index] };
|
|||
|
this.SetMultiIndexValue(name, objArray);
|
|||
|
}
|
|||
|
|
|||
|
internal static unsafe DataRow Create(EncryptedObjectHeader* pHeader, DataSource source) => new DataRow(source.InstanceId, source.SourceId)
|
|||
|
{
|
|||
|
LastChange = pHeader->LastChange,
|
|||
|
ObjectType = pHeader->ObjectType,
|
|||
|
LocalId = pHeader->LocalId,
|
|||
|
GlobalId = pHeader->GlobalId,
|
|||
|
m_objectSize = pHeader->DataSize
|
|||
|
};
|
|||
|
}
|
|||
|
}
|