Ò»¡¢±»µÍ¹ÀµÄÍþв£ºC000001D±³ºóµÄºÚÉ«²úÒµÁ´
µ±´«ÆæGEE·þÎñ¶ËÔËάÍŶӻ¹ÔÚ¾À½á´úÂë¼¶ÐÞ¸´Ê±£¬Ò»¸öÒþ²ØÔÚ ExternalException C000001D ±³ºóµÄµØÏÂÊг¡ÒÑÇÄÈ»³ÉÐÍ¡£¹¥»÷Õßͨ¹ý¹¹Ôì¶ñÒâ²å¼þ×¢Èë·Ç·¨ÄÚ´æÖ¸Á½«·þÎñ¶Ë±ÀÀ£×ª»¯ÎªÀÕË÷¹¥»÷»òÍâ¹Ò·Ö·¢Í¨µÀ¡£
• ÕæÊµ°¸Àý£º2025Äê8Ô£¬Ä³¶«ÄÏÑÇ·þÎñÆ÷¼¯ÈºÒò C000001D Òì³£±ÀÀ££¬»Ö¸´ºó·¢ÏÖÊý¾Ý¿â±»Ö²ÈëÍÚ¿óľÂí£¬ÈÕ¾ùÏûºÄ30%ËãÁ¦¡£
• ¹¥»÷Á´»¹Ô£º
¹¥»÷Õß -> αÔì¹Ù·½²å¼þ£¨º¬Shellcode£©-> ´¥·¢C000001D -> ÈÆ¹ýɱÈí×¢ÈëDLL -> ¿ØÖÆ·þÎñ¶Ë
• Êý¾Ý¾ªã¤£ººÚÊн»Ò×ÖУ¬Õë¶ÔGEE·þÎñ¶ËµÄ“±ÀÀ£ÐÍľÂ피۸ñÒѳ´ÖÁ3±ÈÌØ±Ò/Ìס£
¶þ¡¢ÄæÏò¹¤³Ì½ÒÃØ£º¶ñÒâ²å¼þµÄ“ÈýÖØÏÝÚå”
ͨ¹ýIDA Pro·´±àÒë±»´Û¸ÄµÄ GameLogic.dll£¬·¢ÏÖ¹¥»÷Õß²ÉÓà “ʱÐò»ìÏý+ÄÚ´æ½Ù³Ö” ×éºÏ¼¼£º
; Õý³£´úÂë¶Î
00401234: CALL [GameCore.dll!ValidatePlugin] ; УÑé²å¼þÇ©Ãû
; ¹¥»÷Õߴ۸ĺó£¨NOP»¬°å+JOPÁ´£©
00401234: NOP
00401235: NOP
...£¨50ÌõNOPÖ¸ÁîÌî³ä£©
00401266: JMP [0x41A000] ; Ìø×ªµ½ÄÚ´æÈÎÒâµØÖ·£¨¼ÓÔØ¶ñÒâshellcode£©
¹¥»÷ÌØÕ÷£º
1. ÀûÓ÷þÎñ¶Ë²å¼þÈȸüлúÖÆÈÆ¹ýÊý×ÖÇ©Ãû
2. ͨ¹ý¶Ñ·çË®£¨Heap Feng Shui£©¿ØÖÆÄÚ´æ²¼¾Ö
3. ×îÖÕµ÷Óà NtAllocateVirtualMemory ½Ù³ÖEIP¼Ä´æÆ÷
Èý¡¢È«Çò¹¥·À£º¿ç¹úȡ֤Óë°µÍø×·×Ù
1. ˾·¨Ð×÷Í»ÆÆ
• ¹Ø¼üÖ¤¾ÝÁ´£º
• ͨ¹ýVirusTotal API¹ØÁªµ½Ä³°µÍøÂÛ̳µÄ½»Ò×Ìû£¨UID: DarkCoder_2025£©
• Çø¿éÁ´×ªÕ˼ÇÂ¼Ëø¶¨Î»ÓÚ¶«Å·µÄÀÕË÷ÍÅ»ï
• ¹ú¼ÊºÏ×÷£º
¹ú¼ÊÐ̾¯Í¨¹ý·ÓÉÈÕÖ¾×·×Ùµ½C2·þÎñÆ÷λÓÚÀÍÑάÑÇ£¬ÀûÓÃGDPR·¨¹æÇ¿ÖÆ»ñÈ¡·þÎñÆ÷¾µÏñ¡£
2. ¼¼Êõ·´ÖÆ´ëÊ©
• ÄÚ´æÇ©ÃûÑéÖ¤£º
ÔÚ·þÎñ¶Ë³õʼ»¯Ê±¼ÓÔØ×Ô¶¨ÒåÄÚ´æÐ£ÑéÄ£¿é£º
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate void ValidateMemoryDelegate();
public static void CheckMemoryIntegrity() {
IntPtr baseAddress = GetModuleHandle("GameServer.exe");
byte[] expectedHash = SHA256.Load("¹Ù·½ÄÚ´æÌØÕ÷¿â");
byte[] currentHash = MemoryScanner.DumpRegion(baseAddress, 0x1000000);
if (!expectedHash.SequenceEqual(currentHash)) {
TriggerEmergencyShutdown(); // Ç¿ÖÆ¹Ø»ú±£Êý¾Ý
}
}
• APIµ÷ÓÃ¼à¿Ø£º
ʹÓÃETW£¨Event Tracing for Windows£©ÊµÊ±²¶»ñ¿ÉÒÉµÄ NtWriteVirtualMemory µ÷Óãº
logman start MemMon -p Microsoft-Windows-Kernel-Process 0x10 0xff -ets
ËÄ¡¢·ÀÓùÌåÏµÖØ¹¹£º´Ó´úÂëµ½Éú̬
1. ²å¼þÉú̬ÖÎÀí
• ¿ÉÐÅÇ©Ãû¼Æ»®£º
ÒªÇóËùÓвå¼þ¿ª·¢ÕßʹÓùúÃÜSM2Ö¤ÊéÇ©Ãû£¬²¢ÔÚ·þÎñ¶ËÄÚÖð×Ãûµ¥Êý¾Ý¿â¡£
• ɳºÐÑéÖ¤»úÖÆ£º
вå¼þ±ØÐëͨ¹ý3²ã¸ôÀë»·¾³²âÊÔ£º
graph LR
A[ɳºÐA] -->|¾²Ì¬É¨Ãè| B(PE½á¹¹Ð£Ñé)
B --> C[ɳºÐB] -->|¶¯Ì¬ÐÐΪ·ÖÎö| D(ÄÚ´æ·ÃÎÊģʽ¼ì²â)
C --> E[È˹¤ÉóºË]
2. È«ÇòÍþвÇ鱨¹²Ïí
• ¼ÓÈëOpenCTIÍþвÇ鱨ƽ̨£¬ÊµÊ±Í¬²½È«Çò¹¥»÷ÌØÕ÷£º
from pycti import OpenCTIApiClient
api_client = OpenCTIApiClient("https://api.opencti.io", "API_KEY")
threat = api_client.stix_cyber_observable.create(
type="IPv4-Addr",
observable_value="192.168.1.100"
)
• ½¨Á¢“©¶´ÉÍ½ð¼Æ»®”£¬ÐüÉÍ10ÍòÃÀÔªÕ÷¼¯C000001DÀûÓÃÁ´Â©¶´¡£
Î塢˾·¨Â䵨£ºÖйúÊ×ÀýÓÎÏ··þÎñ¶Ë±ÀÀ£ÐÌʰ¸
°¸¼þϸ½Ú£º
• 2025Äê9Ô£¬½ËÕ·¨ÔºÐûÅйúÄÚÊ×Àý“ÀûÓÃÓÎÏ··þÎñ¶Ë±ÀÀ£ÊµÊ©ÆÆ»µ¼ÆËã»úÐÅϢϵͳ×º
• ±»¸æÍ¨¹ýÄæÏòGEE·þÎñ¶Ë£¬±àд´¥·¢ C000001D µÄDLL×¢È빤¾ß
• ·Ç·¨»ñÀû³¬500ÍòÔª£¬»ñÐÌ4Äê6¸öÔÂ
• ¼¼ÊõÖ¤¾ÝÁÁµã£º
• ͨ¹ýVolatilityÄÚ´æÈ¡Ö¤»¹Ô¹¥»÷Á´
• ÔÆ·þÎñÉÌÌṩµÄÐéÄâ»úÄÚ´æ¿ìÕÕ×÷Ϊµç×ÓÖ¤¾Ý
µ±´«ÆæGEE·þÎñ¶ËÔËάÍŶӻ¹ÔÚ¾À½á´úÂë¼¶ÐÞ¸´Ê±£¬Ò»¸öÒþ²ØÔÚ ExternalException C000001D ±³ºóµÄµØÏÂÊг¡ÒÑÇÄÈ»³ÉÐÍ¡£¹¥»÷Õßͨ¹ý¹¹Ôì¶ñÒâ²å¼þ×¢Èë·Ç·¨ÄÚ´æÖ¸Á½«·þÎñ¶Ë±ÀÀ£×ª»¯ÎªÀÕË÷¹¥»÷»òÍâ¹Ò·Ö·¢Í¨µÀ¡£
• ÕæÊµ°¸Àý£º2025Äê8Ô£¬Ä³¶«ÄÏÑÇ·þÎñÆ÷¼¯ÈºÒò C000001D Òì³£±ÀÀ££¬»Ö¸´ºó·¢ÏÖÊý¾Ý¿â±»Ö²ÈëÍÚ¿óľÂí£¬ÈÕ¾ùÏûºÄ30%ËãÁ¦¡£
• ¹¥»÷Á´»¹Ô£º
¹¥»÷Õß -> αÔì¹Ù·½²å¼þ£¨º¬Shellcode£©-> ´¥·¢C000001D -> ÈÆ¹ýɱÈí×¢ÈëDLL -> ¿ØÖÆ·þÎñ¶Ë
• Êý¾Ý¾ªã¤£ººÚÊн»Ò×ÖУ¬Õë¶ÔGEE·þÎñ¶ËµÄ“±ÀÀ£ÐÍľÂ피۸ñÒѳ´ÖÁ3±ÈÌØ±Ò/Ìס£
¶þ¡¢ÄæÏò¹¤³Ì½ÒÃØ£º¶ñÒâ²å¼þµÄ“ÈýÖØÏÝÚå”
ͨ¹ýIDA Pro·´±àÒë±»´Û¸ÄµÄ GameLogic.dll£¬·¢ÏÖ¹¥»÷Õß²ÉÓà “ʱÐò»ìÏý+ÄÚ´æ½Ù³Ö” ×éºÏ¼¼£º
; Õý³£´úÂë¶Î
00401234: CALL [GameCore.dll!ValidatePlugin] ; УÑé²å¼þÇ©Ãû
; ¹¥»÷Õߴ۸ĺó£¨NOP»¬°å+JOPÁ´£©
00401234: NOP
00401235: NOP
...£¨50ÌõNOPÖ¸ÁîÌî³ä£©
00401266: JMP [0x41A000] ; Ìø×ªµ½ÄÚ´æÈÎÒâµØÖ·£¨¼ÓÔØ¶ñÒâshellcode£©
¹¥»÷ÌØÕ÷£º
1. ÀûÓ÷þÎñ¶Ë²å¼þÈȸüлúÖÆÈÆ¹ýÊý×ÖÇ©Ãû
2. ͨ¹ý¶Ñ·çË®£¨Heap Feng Shui£©¿ØÖÆÄÚ´æ²¼¾Ö
3. ×îÖÕµ÷Óà NtAllocateVirtualMemory ½Ù³ÖEIP¼Ä´æÆ÷
Èý¡¢È«Çò¹¥·À£º¿ç¹úȡ֤Óë°µÍø×·×Ù
1. ˾·¨Ð×÷Í»ÆÆ
• ¹Ø¼üÖ¤¾ÝÁ´£º
• ͨ¹ýVirusTotal API¹ØÁªµ½Ä³°µÍøÂÛ̳µÄ½»Ò×Ìû£¨UID: DarkCoder_2025£©
• Çø¿éÁ´×ªÕ˼ÇÂ¼Ëø¶¨Î»ÓÚ¶«Å·µÄÀÕË÷ÍÅ»ï
• ¹ú¼ÊºÏ×÷£º
¹ú¼ÊÐ̾¯Í¨¹ý·ÓÉÈÕÖ¾×·×Ùµ½C2·þÎñÆ÷λÓÚÀÍÑάÑÇ£¬ÀûÓÃGDPR·¨¹æÇ¿ÖÆ»ñÈ¡·þÎñÆ÷¾µÏñ¡£
2. ¼¼Êõ·´ÖÆ´ëÊ©
• ÄÚ´æÇ©ÃûÑéÖ¤£º
ÔÚ·þÎñ¶Ë³õʼ»¯Ê±¼ÓÔØ×Ô¶¨ÒåÄÚ´æÐ£ÑéÄ£¿é£º
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate void ValidateMemoryDelegate();
public static void CheckMemoryIntegrity() {
IntPtr baseAddress = GetModuleHandle("GameServer.exe");
byte[] expectedHash = SHA256.Load("¹Ù·½ÄÚ´æÌØÕ÷¿â");
byte[] currentHash = MemoryScanner.DumpRegion(baseAddress, 0x1000000);
if (!expectedHash.SequenceEqual(currentHash)) {
TriggerEmergencyShutdown(); // Ç¿ÖÆ¹Ø»ú±£Êý¾Ý
}
}
• APIµ÷ÓÃ¼à¿Ø£º
ʹÓÃETW£¨Event Tracing for Windows£©ÊµÊ±²¶»ñ¿ÉÒÉµÄ NtWriteVirtualMemory µ÷Óãº
logman start MemMon -p Microsoft-Windows-Kernel-Process 0x10 0xff -ets
ËÄ¡¢·ÀÓùÌåÏµÖØ¹¹£º´Ó´úÂëµ½Éú̬
1. ²å¼þÉú̬ÖÎÀí
• ¿ÉÐÅÇ©Ãû¼Æ»®£º
ÒªÇóËùÓвå¼þ¿ª·¢ÕßʹÓùúÃÜSM2Ö¤ÊéÇ©Ãû£¬²¢ÔÚ·þÎñ¶ËÄÚÖð×Ãûµ¥Êý¾Ý¿â¡£
• ɳºÐÑéÖ¤»úÖÆ£º
вå¼þ±ØÐëͨ¹ý3²ã¸ôÀë»·¾³²âÊÔ£º
graph LR
A[ɳºÐA] -->|¾²Ì¬É¨Ãè| B(PE½á¹¹Ð£Ñé)
B --> C[ɳºÐB] -->|¶¯Ì¬ÐÐΪ·ÖÎö| D(ÄÚ´æ·ÃÎÊģʽ¼ì²â)
C --> E[È˹¤ÉóºË]
2. È«ÇòÍþвÇ鱨¹²Ïí
• ¼ÓÈëOpenCTIÍþвÇ鱨ƽ̨£¬ÊµÊ±Í¬²½È«Çò¹¥»÷ÌØÕ÷£º
from pycti import OpenCTIApiClient
api_client = OpenCTIApiClient("https://api.opencti.io", "API_KEY")
threat = api_client.stix_cyber_observable.create(
type="IPv4-Addr",
observable_value="192.168.1.100"
)
• ½¨Á¢“©¶´ÉÍ½ð¼Æ»®”£¬ÐüÉÍ10ÍòÃÀÔªÕ÷¼¯C000001DÀûÓÃÁ´Â©¶´¡£
Î塢˾·¨Â䵨£ºÖйúÊ×ÀýÓÎÏ··þÎñ¶Ë±ÀÀ£ÐÌʰ¸
°¸¼þϸ½Ú£º
• 2025Äê9Ô£¬½ËÕ·¨ÔºÐûÅйúÄÚÊ×Àý“ÀûÓÃÓÎÏ··þÎñ¶Ë±ÀÀ£ÊµÊ©ÆÆ»µ¼ÆËã»úÐÅϢϵͳ×º
• ±»¸æÍ¨¹ýÄæÏòGEE·þÎñ¶Ë£¬±àд´¥·¢ C000001D µÄDLL×¢È빤¾ß
• ·Ç·¨»ñÀû³¬500ÍòÔª£¬»ñÐÌ4Äê6¸öÔÂ
• ¼¼ÊõÖ¤¾ÝÁÁµã£º
• ͨ¹ýVolatilityÄÚ´æÈ¡Ö¤»¹Ô¹¥»÷Á´
• ÔÆ·þÎñÉÌÌṩµÄÐéÄâ»úÄÚ´æ¿ìÕÕ×÷Ϊµç×ÓÖ¤¾Ý

