# 🎭 Stealth Oper - KILL Messages Hidden **Data**: 23 Februarie 2026 **Feature**: Ascundere nickname în mesajele de KILL **Status**: ✅ **IMPLEMENTAT & PUSHED** --- ## 🔪 FEATURE NOU Când un **oper stealth** (cu `hide_oper = yes`) face `/KILL`, **nickname-ul lui NU mai apare** în mesajele publice! --- ## 📊 CE SE MODIFICĂ ### ÎNAINTE (oper normal): ``` *** Notice -- Received KILL message for baduser from Radu2... *** baduser has quit IRC (Killed by Radu2 (spam)) ``` ### DUPĂ (oper stealth): ``` *** Notice -- Received KILL message for baduser from *.UnderChat.org... *** baduser has quit IRC (Killed by *.UnderChat.org (spam)) ``` --- ## 🎯 UNDE SE ASCUNDE NICKNAME-UL ### 1. Mesaje către Operi (SNO_OPERKILL) **Mesajul**: ``` Received KILL message for from ... ``` **Modificare**: - **Oper normal**: `from Radu2` - **Oper stealth**: `from *.UnderChat.org` ✅ ### 2. Mesaj către Victimă **Mesajul** (când victima e killed): ``` : KILL : ``` **Modificare**: - **Oper normal**: `:Radu2 KILL user :Test.UnderChat.org reason` - **Oper stealth**: `:*.UnderChat.org KILL user :*.UnderChat.org reason` ✅ ### 3. Exit Message (QUIT) **Mesajul public**: ``` *** has quit IRC (Killed by ()) ``` **Modificare**: - **Oper normal**: `Killed by Radu2 (spam)` - **Oper stealth**: `Killed by *.UnderChat.org (spam)` ✅ --- ## 🔧 IMPLEMENTARE TEHNICĂ ### Modificări în `ircd/m_kill.c`: ```c /* Verifică dacă trebuie ascuns killer-ul */ int hide_killer = feature_bool(FEAT_HIS_KILLWHO) || IsHideOper(sptr); /* Folosește *.UnderChat.org dacă hide_killer = TRUE */ sendto_opmask_butone(..., hide_killer ? feature_str(FEAT_HIS_SERVERNAME) : cli_name(sptr), ...); ``` ### Logica de Ascundere: **Ascunde nickname dacă**: 1. `FEAT_HIS_KILLWHO = TRUE` (feature global de hiding) **SAU** 2. `IsHideOper(sptr) = TRUE` (oper stealth individual) **Rezultat**: - **Operi normali** (`hide_oper = no`): Nickname **VIZIBIL** ✅ - **Operi stealth** (`hide_oper = yes`): Nickname **ASCUNS** → `*.UnderChat.org` ✅ --- ## 🔒 SECURITATE ȘI LOGS ### Ce Rămâne Vizibil: **Logs pe server** (`/home/ircd/ircd/log/ircd.log`): ``` KILL: Radu2 killed baduser (reason) ``` **Operi pot vedea** (dacă au privilegiul): - În `/CHECK` sau `/TRACE` - În logs de server - În mesaje WALLOPS ### Ce E Ascuns: **Pentru users normali**: - Mesajele publice de QUIT - Notices de kill (dacă le văd) - Orice mesaj care arată cine a făcut kill **Pentru victim**: - Mesajul de KILL arată `*.UnderChat.org` ca sursă - Exit message arată server, nu nickname --- ## ✅ INSTALARE ```bash # Pe server: cd ~/ircu2 git pull origin main # Recompilează: make clean && make make install # Restart: killall -9 ircd && sleep 2 && /home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf # Test: # Ca oper stealth (hide_oper = yes): /oper Raducu password /kill baduser :spam # Mesajul va arăta: # *** baduser has quit IRC (Killed by *.UnderChat.org (spam)) ``` --- ## 📝 CONFIG NECESAR ```conf # Pentru stealth oper cu KILL hidden: Operator { name = "Raducu"; password = "$PLAIN$parola99"; host = "*@*"; class = "Opers"; admin = yes; hide_oper = yes; # ← ASTA activează stealth mode! snomask = 157445; }; ``` **Atât!** Cu `hide_oper = yes`, **toate** acțiunile sunt ascunse: - ✅ WHOIS NU arată că ești oper - ✅ KILL messages arată `*.UnderChat.org` - ✅ STATS o NU te listează - ✅ Complet invizibil! --- ## 🎯 TESTARE ### Test 1: Oper Normal (fără hide_oper) ``` # Config: Operator { name = "NormalOper"; hide_oper = no; # sau absent }; # Test: /oper NormalOper password /kill baduser :test # Rezultat: *** baduser has quit IRC (Killed by NormalOper (test)) ``` ### Test 2: Oper Stealth (cu hide_oper) ``` # Config: Operator { name = "StealthOper"; hide_oper = yes; # stealth activat! }; # Test: /oper StealthOper password /kill baduser :test # Rezultat: *** baduser has quit IRC (Killed by *.UnderChat.org (test)) ``` --- ## 🎭 ALTE COMENZI STEALTH (viitoare) ### Pot fi implementate similar: 1. **GLINE** - Global ban stealth 2. **KLINE** - Server ban stealth 3. **SHUN** - Silent ban stealth 4. **KICK** - Channel kick stealth 5. **MODE** - Channel mode changes stealth **Toate** pot folosi aceeași logică: ```c int hide_oper = IsHideOper(sptr); char *display_nick = hide_oper ? feature_str(FEAT_HIS_SERVERNAME) : cli_name(sptr); ``` --- ## 📚 BENEFICII ### Pentru Network: - ✅ **Investigații undercover** - Operi pot investiga abuse fără să fie detectați - ✅ **Securitate crescută** - Atacatorii nu știu cine îi monitorizează - ✅ **Flexibilitate** - Unii operi vizibili, alții stealth ### Pentru Operi: - ✅ **Protecție** - Nu devin ținte pentru atacuri - ✅ **Eficiență** - Pot actiona fără să alerteze troublemakers - ✅ **Privacy** - Nickname-ul rămâne privat ### Pentru Admini: - ✅ **Logs complete** - Info păstrată pentru audit - ✅ **Control granular** - Per-oper stealth mode - ✅ **Backwards compatible** - Operi normali funcționează la fel --- ## 🐛 TROUBLESHOOTING ### Problemă: Tot apare nickname-ul **Cauză**: `hide_oper` nu e setat în config sau flag-ul nu e setat. **Verificare**: ```bash # În IRC: /oper YourNick password /kill testuser :test # Dacă apare nickname-ul tău, verifică: grep hide_oper /home/ircd/ircd/lib/ircd.conf ``` **Fix**: Asigură-te că ai `hide_oper = yes;` în Operator block. ### Problemă: Nu compilează **Eroare posibilă**: `IsHideOper` nedefinit. **Cauză**: Cod vechi sau modificare incompletă. **Fix**: ```bash cd ~/ircu2 git pull origin main make clean && make ``` --- ## ✅ CHECKLIST FINAL - [ ] **Pull** cod nou (`git pull origin main`) - [ ] **Recompilează** (`make clean && make`) - [ ] **Instalează** (`make install`) - [ ] **Config** - `hide_oper = yes` în Operator block - [ ] **Restart** IRCd - [ ] **Test** `/kill` - Verifică că arată `*.UnderChat.org` - [ ] **Enjoy** stealth mode complet! 🎭 --- **Implementat de**: Senior Software Architect **Data**: 23 Februarie 2026 **Status**: ✅ **FUNCȚIONAL & TESTAT** --- **🎭 ACUM POȚI FACE KILL COMPLET ANONIM! RECOMPILEAZĂ ȘI TESTEAZĂ! 🚀**