Ò»¡¢ÐÒéÄæÏò·ÖÎö£¨Wiresharkʵս£©
🔍 µÇ¼ÐÒé½âÃÜÁ÷³Ì
graph LR
A[²¶»ñ·â°ü] --> B{¹ýÂ˶˿ڣº9000}
--> C[×·×ÙTCPÁ÷]
--> D[ʶ±ð¼ÓÃܶÎ]
--> E[Òì»ò0xAA²âÊÔ]
--> F{ÑéÖ¤¿É¶ÁÐÔ£¿}
-->³É¹¦
G[ÌáÈ¡Õ˺ÅÃÜÂë½á¹¹]
-->ʧ°Ü
H[IDA Pro·´±àÒëLoginServer]
📌 ¹Ø¼ü×ֶζ¨Î»
Python·â°ü½âÎöʾÀý
def decode_rxjh_packet(data):
if data[0] 0x1F and data[1] 0x8B:
# ѹËõ°üÌØÕ÷£¨GZIPħÊõ×Ö£©
return zlib.decompress(data, 16+zlib.MAX_WBITS)
else:
# Òì»ò½âÃÜ
return bytes([b ^ 0xAA for b in data[4:]])
¶þ¡¢Êý¾Ý¿âÄæÏò¹¤³Ì
🧩 ±í½á¹¹Öؽ¨£¨ÎÞÔʼSQLʱ£©
¹¤¾ß×éºÏ
Navicat ÄæÏòÊý¾Ý¿âÄ£ÐÍ
MySQL SHOW CREATE TABLE
Hex Editor·ÖÎö.mydÎļþÍ·
×Ö¶ÎÍÆµ¼Âß¼
ÏÖÏó ÍÆ¶Ï½áÂÛ
×Ö¶ÎÃûº¬ gold ÊýÖµÐÍ(unsigned int)
Á¬Ðø4×Ö½ÚNULL ¿ÉÄÜÊÇDATETIMEÀàÐÍ
ÖØ¸´Ç°×º tbl_ Íâ¼ü¹ØÁª±í
Èý¡¢·ÀËÝÔ´±àÒë¼¼ÇÉ
🔧 ´úÂë»ìÏý·½°¸£¨C#ʾÀý£©
// Ôʼ´úÂë
public void GiveItem(int itemId) {
Player.Inventory.Add(itemId);
// »ìÏýºó
public void a1(int a2) {
var b1 = typeof(Player).GetField("Inventory", BindingFlags.NonPublic);
object c1 = b1.GetValue(_player);
MethodInfo d1 = c1.GetType().GetMethod("Add");
d1.Invoke(c1, new object[] { a2 });
🛡️ ·´µ÷ÊÔ¼ì²â×¢Èë
// DLLÈë¿ÚµãÌí¼Ó
if (IsDebuggerPresent()) {
MessageBox(NULL, "Debugger Detected!", "Alert", MB_OK);
ExitProcess(0);
ËÄ¡¢·¨Âɰ²È«¿ª·¢×¼Ôò
⚠️ ·¨ÂɸßѹÏßÇåµ¥
¿ª·¢ÐÐΪ ·¨ÂÉ·çÏյȼ¶
¸´Óùٷ½×ÊÔ´¼ÓÃÜDLL ⭐⭐⭐⭐⭐ (ÐÌÊÂ)
ÆÆ½âÓÎÏ·ÒýÇæºËÐÄÄ£¿é ⭐⭐⭐⭐⭐
Éú³ÉÉÌÒµ³äֵϵͳ ⭐⭐⭐⭐
✅ °²È«Ìæ´ú·½°¸
ÃÀÊõ×ÊÔ´£ºÓÃBlenderÖØÖÆµÍ¶à±ßÐÎÄ£ÐÍ£¨ÏàËÆ¶È<60%£©
ÍøÂçÐÒ飺×Ô¶¨Òå»ùÓÚProtobufµÄÐÂÐÒ飨±ÜÃâÄæÏò¹Ù·½£©
¼Æ·Ñϵͳ£º½öʵÏÖ¾èÔùÓÊÏä֪ͨ£¨²»¹ØÁªÓÎÏ·ÊýÖµ£©
Îå¡¢¿ª·¢ÕßɳºÐ»·¾³
🌐 °²È«ÊµÑé»·¾³ÅäÖÃ
»ùÓÚDockerµÄ¸ôÀë»·¾³
docker run --rm -it \
--name rxjh-dev \
--cap-drop=ALL \
--memory=2g \
-v /path/code:/workspace \
ubuntu:20.04
📜 ¿ª·¢Ñо¿ÉùÃ÷Ä£°å
/*
±¾´úÂë½öΪÑо¿¡¶ÈÈѪ½ºþ¡·Í¨Ñ¶ÐÒéÔÀí
°üº¬¼¼ÊõƬ¶ÎÀ´Ô´ÓÚ¹«¿ªReverse EngineeringÎĵµ
²»°üº¬ÈκÎÓÎÏ·×ÊÔ´¼°ÉÌÒµÂß¼
±àÒëºó24СʱÄÚ×Ô¶¯É¾³ý
*/
Áù¡¢Êý×ÖÖ¸ÎÆÏû³ý¼¼Êõ
🧪 ´Û¸ÄÎļþÌØÕ÷Âë
¼ì²âÏî Ïû³ý·½·¨
PEͷʱ¼ä´Á CFF ExplorerÐÞ¸ÄΪ2000-01-01
×Ö·û´®¹þϣУÑé ×ÊÔ´Îļþ¼ÓÑΣ¨SHA256ˢУ©
½ø³ÌÄÚ´æÌØÕ÷ ÔËÐÐʱ´úÂ붯̬»ìÏý
·¨Âɾ¯Ê¾£ºÒÀ¾Ý¡¶¼ÆËã»úÈí¼þ±£»¤ÌõÀý¡·µÚ24Ìõ£¬Î´¾ÊÚȨµÄ·´Ïò¹¤³Ì½öÏÞ£º
¼æÈÝÐÔÑо¿£¨Ðè×¢²áרÀû£©
°²È«Â©¶´·ÖÎö£¨±¨±¸CNVD£©
½ÌѧÑÝʾ£¨Ê¹ÓÃDEMO°æ±¾£©
½¨Òé²Ù×÷£º
🔹 ÔÚÐéÄâ»ú¿ìÕÕÖпª·¢£¬Ã¿48Ð¡Ê±ÖØÖû·¾³
🔹 ¿ª·¢»ú¶ÏÍø£¬Í¨¹ý¸ôÀëUÅÌ´«ÊäÊý¾Ý
🔹 Íê³ÉÑо¿ºóÖ´ÐÐ cipher /w:Z ³¹µ×²Á³ý
🔍 µÇ¼ÐÒé½âÃÜÁ÷³Ì
graph LR
A[²¶»ñ·â°ü] --> B{¹ýÂ˶˿ڣº9000}
--> C[×·×ÙTCPÁ÷]
--> D[ʶ±ð¼ÓÃܶÎ]
--> E[Òì»ò0xAA²âÊÔ]
--> F{ÑéÖ¤¿É¶ÁÐÔ£¿}
-->³É¹¦
G[ÌáÈ¡Õ˺ÅÃÜÂë½á¹¹]
-->ʧ°Ü
H[IDA Pro·´±àÒëLoginServer]
📌 ¹Ø¼ü×ֶζ¨Î»
Python·â°ü½âÎöʾÀý
def decode_rxjh_packet(data):
if data[0] 0x1F and data[1] 0x8B:
# ѹËõ°üÌØÕ÷£¨GZIPħÊõ×Ö£©
return zlib.decompress(data, 16+zlib.MAX_WBITS)
else:
# Òì»ò½âÃÜ
return bytes([b ^ 0xAA for b in data[4:]])
¶þ¡¢Êý¾Ý¿âÄæÏò¹¤³Ì
🧩 ±í½á¹¹Öؽ¨£¨ÎÞÔʼSQLʱ£©
¹¤¾ß×éºÏ
Navicat ÄæÏòÊý¾Ý¿âÄ£ÐÍ
MySQL SHOW CREATE TABLE
Hex Editor·ÖÎö.mydÎļþÍ·
×Ö¶ÎÍÆµ¼Âß¼
ÏÖÏó ÍÆ¶Ï½áÂÛ
×Ö¶ÎÃûº¬ gold ÊýÖµÐÍ(unsigned int)
Á¬Ðø4×Ö½ÚNULL ¿ÉÄÜÊÇDATETIMEÀàÐÍ
ÖØ¸´Ç°×º tbl_ Íâ¼ü¹ØÁª±í
Èý¡¢·ÀËÝÔ´±àÒë¼¼ÇÉ
🔧 ´úÂë»ìÏý·½°¸£¨C#ʾÀý£©
// Ôʼ´úÂë
public void GiveItem(int itemId) {
Player.Inventory.Add(itemId);
// »ìÏýºó
public void a1(int a2) {
var b1 = typeof(Player).GetField("Inventory", BindingFlags.NonPublic);
object c1 = b1.GetValue(_player);
MethodInfo d1 = c1.GetType().GetMethod("Add");
d1.Invoke(c1, new object[] { a2 });
🛡️ ·´µ÷ÊÔ¼ì²â×¢Èë
// DLLÈë¿ÚµãÌí¼Ó
if (IsDebuggerPresent()) {
MessageBox(NULL, "Debugger Detected!", "Alert", MB_OK);
ExitProcess(0);
ËÄ¡¢·¨Âɰ²È«¿ª·¢×¼Ôò
⚠️ ·¨ÂɸßѹÏßÇåµ¥
¿ª·¢ÐÐΪ ·¨ÂÉ·çÏյȼ¶
¸´Óùٷ½×ÊÔ´¼ÓÃÜDLL ⭐⭐⭐⭐⭐ (ÐÌÊÂ)
ÆÆ½âÓÎÏ·ÒýÇæºËÐÄÄ£¿é ⭐⭐⭐⭐⭐
Éú³ÉÉÌÒµ³äֵϵͳ ⭐⭐⭐⭐
✅ °²È«Ìæ´ú·½°¸
ÃÀÊõ×ÊÔ´£ºÓÃBlenderÖØÖÆµÍ¶à±ßÐÎÄ£ÐÍ£¨ÏàËÆ¶È<60%£©
ÍøÂçÐÒ飺×Ô¶¨Òå»ùÓÚProtobufµÄÐÂÐÒ飨±ÜÃâÄæÏò¹Ù·½£©
¼Æ·Ñϵͳ£º½öʵÏÖ¾èÔùÓÊÏä֪ͨ£¨²»¹ØÁªÓÎÏ·ÊýÖµ£©
Îå¡¢¿ª·¢ÕßɳºÐ»·¾³
🌐 °²È«ÊµÑé»·¾³ÅäÖÃ
»ùÓÚDockerµÄ¸ôÀë»·¾³
docker run --rm -it \
--name rxjh-dev \
--cap-drop=ALL \
--memory=2g \
-v /path/code:/workspace \
ubuntu:20.04
📜 ¿ª·¢Ñо¿ÉùÃ÷Ä£°å
/*
±¾´úÂë½öΪÑо¿¡¶ÈÈѪ½ºþ¡·Í¨Ñ¶ÐÒéÔÀí
°üº¬¼¼ÊõƬ¶ÎÀ´Ô´ÓÚ¹«¿ªReverse EngineeringÎĵµ
²»°üº¬ÈκÎÓÎÏ·×ÊÔ´¼°ÉÌÒµÂß¼
±àÒëºó24СʱÄÚ×Ô¶¯É¾³ý
*/
Áù¡¢Êý×ÖÖ¸ÎÆÏû³ý¼¼Êõ
🧪 ´Û¸ÄÎļþÌØÕ÷Âë
¼ì²âÏî Ïû³ý·½·¨
PEͷʱ¼ä´Á CFF ExplorerÐÞ¸ÄΪ2000-01-01
×Ö·û´®¹þϣУÑé ×ÊÔ´Îļþ¼ÓÑΣ¨SHA256ˢУ©
½ø³ÌÄÚ´æÌØÕ÷ ÔËÐÐʱ´úÂ붯̬»ìÏý
·¨Âɾ¯Ê¾£ºÒÀ¾Ý¡¶¼ÆËã»úÈí¼þ±£»¤ÌõÀý¡·µÚ24Ìõ£¬Î´¾ÊÚȨµÄ·´Ïò¹¤³Ì½öÏÞ£º
¼æÈÝÐÔÑо¿£¨Ðè×¢²áרÀû£©
°²È«Â©¶´·ÖÎö£¨±¨±¸CNVD£©
½ÌѧÑÝʾ£¨Ê¹ÓÃDEMO°æ±¾£©
½¨Òé²Ù×÷£º
🔹 ÔÚÐéÄâ»ú¿ìÕÕÖпª·¢£¬Ã¿48Ð¡Ê±ÖØÖû·¾³
🔹 ¿ª·¢»ú¶ÏÍø£¬Í¨¹ý¸ôÀëUÅÌ´«ÊäÊý¾Ý
🔹 Íê³ÉÑо¿ºóÖ´ÐÐ cipher /w:Z ³¹µ×²Á³ý

