
Steam에 주입되어 HWID, 디스크, 네트워크 어댑터 및 레지스트리 지문 데이터를 수집하는 숨겨진 CFillMachineInfoThread를 차단하는 작업 중인 라이브러리입니다.
작업 진행 중(현재는 스레드 초기화만 로깅함)인 라이브러리로, 일단 steam에 주입되면 CSteamEngine::CFillMachineInfoThread를 차단하는 것을 목표로 한다. 이는 하드 드라이브, 네트워크 어댑터, 광학 주변기기에 관한 암호화된 정보를 수집하는 숨겨진 스레드로, 모든 부계정을 차단하고 수천 달러를 잃게 만들려는 졸렬한 목적을 가지고 있다 (그리고 나는 burtonJ의 월급을 위해 단 1센트도 더 내고 싶지 않다)
IDA에서 이 문자열을 검색하고 xref를 통해 명령어를 찾을 수 있다:
스레드를 그냥 종료하거나 반환할 수는 없지만, 흥미로운 가능성들이 열린다. 그 함수는 CScheduledFunction을 상속받는 가상 테이블의 유일한 함수(생성자, 초기화자, 종료자/소멸자 제외)의 일부이다.
'MachineGuid'는 레지스트리에서 수집되어 SHA1로 해시되며, 아마도 "BB3" 상수와 함께일 것이다? 나는 암호화에 대해 아무것도 모른다
그런 다음 다른 장치 레지스트리 정보가 수집된다
동시에 네트워크 어댑터를 검색하기 위한 CIMV2 WMIC 쿼리가 실행된다
이번에는 위 데이터가 "FF2" 상수로 암호화된다? 전체 스레드를 차단하지 않는 흥미로운 접근 방식은 이 상수들을 변경하여 다이제스트 결과를 바꾸는 것일 수 있다. 만약 Steam이 이 문자열들을 암호화하지 않는 것으로 폴백한다면, 그들은 "개인 데이터"로 분류될 수 있는 정보를 수집하고 있으므로 GDPR에 위배될 수 있다
더 많은 쿼리가 이어진다, 그들이 수집하는 데이터의 양은 소름 끼친다.
"SELECT * FROM Win32_DiskPartition", 그들은 BootPartitions, DeviceID, DiskIndex를 확인하고, 다시 "SELECT * FROM Win32_DiskDrive", 더 많은 것들, 그런 다음 또다시 "SELECT * FROM Win32_PhysicalMedia", 그들은 시리얼과 제조사를 확인한다.
다시 암호화된다, "3B3" 상수 (?)
마지막으로, 피호출자의 두 번째 인수가 (NULL이 아니라면) "333" 상수 (?)로 암호화된다