ภาพรวมสั้น ๆ ของการทำให้งงงวย Warbird ในคอมไพเลอร์ MSVC
Warbird เป็นกรอบการทำให้งงงวยที่ใช้โดย Microsoft ในเทคโนโลยี DRM ของพวกเขา รองรับการทำให้งงงวยหลายรูปแบบรวมถึงการบรรจุโค้ดและการทำให้งงงวยเสมือนจริง มันถูกใช้เพื่อปกป้องส่วนประกอบที่สำคัญเช่น PatchGuard และข้อมูลการออกใบอนุญาตจากวิศวกรย้อนกลับ
ฟังก์ชันการทำงานของ Warbird ยังได้รับการเปิดเผยผ่านการเรียกระบบ NtQuerySystemInformation เมื่อมาพร้อมกับคลาสข้อมูล SystemControlFlowTransition (185) มันส่งไปยัง WbDispatchOperation ซึ่งรองรับฟังก์ชั่นการถอดรหัสและดำเนินการส่งสัญญาณ FEISTEL CIPHER ที่ลงนามบนกอง ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้สามารถพบได้ในการพูดคุยของ Alex Ionescu การวิจัยอื่น ๆ ได้ให้ข้อมูลเชิงลึกในการใช้งานเพื่อปกป้องสิทธิ์การใช้งานของลูกค้าและภาพความสมบูรณ์ของรหัส
ด้วยการใช้งานที่แพร่หลายโดย Microsoft เราควรสงสัยมากพอที่จะตรวจสอบว่าพบการอ้างอิงใด ๆ ในคอมไพเลอร์ MSVC หรือไม่ การอ้างอิงสตริงสามารถค้นพบได้ในภาพแบ็กเอนด์คอมไพเลอร์ ( c2.dll ) และภาพ linker ( link.exe )
ใน ProcessLinkerSwitches มีธง linker หลายตัวที่เกี่ยวข้องกับ Warbird ที่ใช้ภายใน:
/wbrdcfg/wbrddll/wbrdlog/wbrdreporterrors/wbrdschema/wbrdsummary/wbrdtestencrypt หากการกำหนดค่าและ DLL Warbird Linker ได้รับการจัดหาในระหว่างกระบวนการสร้างของการดำเนินการแล้วมันจะเรียก Warbird::CWarbirdServer::CreateObfuscator2 รูทีนจะโหลด DLL ที่จัดทำโดยธงและเรียกฟังก์ชันที่ส่งออกชื่อ CreateObfuscator2 พร้อมอาร์กิวเมนต์ Linker Flag ประเภทเครื่องและฐาน obfuscator
ชื่อฟังก์ชั่น Warbird อื่น ๆ เผยให้เห็นว่ามีการแปลงรหัสคล้ายกับชื่อที่กล่าวถึงก่อนหน้านี้
void __fastcall Enclave::CObfuscationEnclave::Initialize (Enclave::CObfuscationEnclave * this )
{
if ( ( int ) Enclave::CEnclave::AddRuntimeSymbol ((__int64) this , (__int64) " NtQuerySystemInformation " , 0 , 2 ) >= 0
&& ( int ) Enclave::CEnclave::AddRuntimeSymbol ((__int64) this , (__int64) " WarbirdRuntime::EnclaveWrapper " , 1 , 1 ) >= 0 )
{
Enclave::CEnclave::AddRuntimeSymbol ((__int64) this , (__int64) " WarbirdRuntime::g_ulSubSystemCallID " , 2 , 3 );
}
}cl / Zi .examplemain.cpp / link / wbrddll:warbird - obfuscate.dll / wbrdcfg:wbrd.cfgcl.exe: aa9374078fcdce84bca034fd1bb395fdd3825614656e898017435ced17ff1061link.exe: 849e7bd1f234957b5e9be65f94a864e45ea4e05fea598b2164523b398603f61514.28.29336.0