# TgWitness · O‘zbekcha > Documentation edition: O‘zbekcha. Project version: `0.9.1`. Source branch: `main`. This index links the Markdown editions of the public pages. The complete handbook is built from the same page content, including source URLs. Untranslated sections retain the English original; a language edition is not a claim that every section has been translated. - [Project context, installation, measured scale and verification limits](https://phishdestroy.github.io/TgWitness/docs/reference/overview/index.md) - [English project summary](https://phishdestroy.github.io/TgWitness/llms.txt) - [Complete handbook · O‘zbekcha](https://phishdestroy.github.io/TgWitness/uz/llms-full.txt) - [Complete handbook as Markdown · O‘zbekcha](https://phishdestroy.github.io/TgWitness/uz/llms-full.md) - [Source code and release history](https://github.com/phishdestroy/TgWitness) - [Collection modes and evidence levels](https://phishdestroy.github.io/TgWitness/uz/guides/modes.md) - [Published checks and measurements](https://phishdestroy.github.io/TgWitness/docs/validation/index.md) ## Complete documentation map ### Guides - [Arxiv bilan ishlash](https://phishdestroy.github.io/TgWitness/uz/docs/archive/index.md): Tarixni yuklang, saqlangan yozuvlarni qidiring, sun'iy intellekt manbalarini ko'rib chiqing va vositalaringizni ulang. - [GitHub Actions yozib oladi](https://phishdestroy.github.io/TgWitness/uz/docs/capture/index.md): Vaqtinchalik GitHub runner’da Takeout,oddiy API eksporti yoki chat jurnalini tanlang. - [Maxsus hisob](https://phishdestroy.github.io/TgWitness/uz/docs/dedicated-account/index.md): Yig'ish uchun alohida Telegram akkauntini tayyorlang. - [Bir necha daqiqada boshlang](https://phishdestroy.github.io/TgWitness/uz/docs/start/index.md): Bitta buyruq bilan o‘rnating, Telegram akkauntini ulang va Windows, Linux yoki macOS tizimida tekshiriladigan arxivni eksport qiling. - [Hisobni bog'lang](https://phishdestroy.github.io/TgWitness/uz/docs/accounts/index.md): Telegramni QR-kod, telefon raqami yoki sessiyani import qilish orqali ulanib, manbalarni tanlang va yangi xabarlar jurnalga yetib kelishini tekshiring. - [Proxy tanlang](https://phishdestroy.github.io/TgWitness/uz/docs/proxies/index.md): Avtomatik MTProxy yo'nalishlarini saqlang yoki o'zingizning proksiyangizdan foydalaning. IP rejimlarini, zaxira qoidalarini va tashqi so'rovlar uchun yo'nalishni tanlang. - [Eksport va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/exports/index.md): Qayd etilgan Telegram tarixini eksport qiling, imzolarni tasdiqlang va mustaqil guvoh saqlagan tekshiruv nuqtasidagi jurnal bilan solishtiring. - [Dalillar qanday ishlashini ko'ring](https://phishdestroy.github.io/TgWitness/uz/docs/concepts/index.md): Xabarni ushlashdan tekshiruv nuqtasigacha kuzating. Namuna yozuvni o'zgartiring, uning SHA-256 zanjirini qayta hisoblang va saqlangan tekshiruv nuqtasi nima aniqlashini ko'ring. - [Barcha suhbatlarni tergov qiling](https://phishdestroy.github.io/TgWitness/uz/docs/cases/index.md): Telegram bo'ylab kanallar, guruhlar, shaxsiy suhbatlar va botlar bo'ylab end-to-end tergov o'tkazing: butun hisobni qamrab olish, tarix, odamlar, havolalar, fayllar, vaqt chiziqlari va tasdiqlangan dalillar. - [Case Board yarating](https://phishdestroy.github.io/TgWitness/uz/docs/case-board/index.md): Saqlangan kuzatuvlar, aniq muhim qismlar va harakat bo'laklarini shaxsiy doskada to'plang, ularni jamoangiz bilan muhokama qiling va to'plamni taqdim eting. - [Hisobotni loyihalash](https://phishdestroy.github.io/TgWitness/uz/docs/reports/index.md): Hisobot ma'lumotlarini tanlang, sakkiz dizayndan birini va uning mazmunini tanlang, so'ngra ko'rinishini ko'rib chiqing va HTML, imzolangan PDF yoki to'liq dalillar paketini eksport qiling. - [Ulashish uchun nusxa tayyorlang](https://phishdestroy.github.io/TgWitness/uz/docs/handover/index.md): Qabul qiluvchi qaysi yozuvlar va maydonlarni olishi mumkinligini tanlang, tayyor nusxani ko'rib chiqing va uning imzolangan manifesti hamda manba jurnalining chegarasini tasdiqlang. - [Hisoblar guruhini boshqarish](https://phishdestroy.github.io/TgWitness/uz/docs/groups/index.md): Guruh ish maydonlarini solishtiring, manba toping, kuzatuv davrlarini ko'rib chiqing va har bir hisob uchun istisnolar bilan umumiy sozlamalarni qo'llang. - [Xavfsiz saqlang](https://phishdestroy.github.io/TgWitness/uz/docs/security/index.md): Sessiyalar, kalitlar va dalillar qayerda saqlanishini, nima qurilmangizdan chiqib ketishini, himoyalar nimani qamrab olishini va o'rnatishni qanday mustahkamlashni ko'ring. - [Bir ishni baham ko'ring](https://phishdestroy.github.io/TgWitness/uz/docs/access/index.md): Ko'rib chiquvchilar va tahlilchilarga tanlangan hisoblar va suhbatlarga alohida ruxsatnomalar, sessiya cheklovlari va bekor qilinishi mumkin bo'lgan tokenlar bilan kirish huquqini bering. - [Witness botini sozlang](https://phishdestroy.github.io/TgWitness/uz/docs/witness/index.md): Imzolangan jurnal tekshiruv nuqtalarini alohida guvoh, o'z kaliti va faqat o'qish huquqiga ega yig'uvchi bilan Telegram kanaliga e'lon qiling. - [Uni ishlashda davom ettiring](https://phishdestroy.github.io/TgWitness/uz/docs/server/index.md): TgWitness-ni doimiy saqlash joyiga, shaxsiy panelga kirish, zaxira nusxalari va qayta ishga tushirgandan keyingi tekshiruvlarga ega serverda ishga tushiring. - [Nima noto'g'ri ketganini aniqlang](https://phishdestroy.github.io/TgWitness/uz/docs/troubleshooting/index.md): Har bir muammo uchun to'g'ri signalardan foydalangan holda tekshirish paneliga kirishni, Telegram ulanishini, yo'qolgan xabarlarni, FloodWait va Witness holatini tekshiring. ### Reference - [Yashirin suhbatlar: amalga oshirish va demo](https://phishdestroy.github.io/TgWitness/uz/docs/reference/secret-chats/index.md): Alohida Maxfiy Suhbat implementatsiyasini tushunib oling, badiiy interfeysni sinab ko'ring va qoldirilgan nuqsonlarni ko'rib chiqing. - [TgWitness: boshlanish, miqyos va dalil](https://phishdestroy.github.io/TgWitness/uz/docs/reference/overview/index.md): Bir buyruq bilan o'rnating yoki GitHub Actions'da ishga tushiring. Tekshiruv variantlarini, e'lon qilingan hajmni va arxiv nima tasdiqlayotganini tushuning. - [Manba tarixini yuklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/history/index.md): Yoqilgan manbalardan avvalgi xabarlarni yuklang, to'xtating va davom ettiring, shuningdek imzolangan progress hisobotini tasdiqlang. - [Arxiv tahlili](https://phishdestroy.github.io/TgWitness/uz/docs/reference/analysis/index.md): Saqlangan xabarlarni qidiring, sun'iy intellekt kirimlarini ko'rib chiqing va manba havolalari bilan analitik hisobotlarni saqlang. - [Buyruq satri](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/index.md): Qidiruv, kontekstni o'qish, faoliyatni hisoblash va skriptlar hamda agentlardan saqlangan xabarlarni eksport qilish, --json chiqish, barqaror chiqish kodlari va doirali faqat o'qish uchun tokenlar bilan. - [To'liq matnli qidiruv](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/index.md): Imzolangan jurnalga bog'langan indeks yordamida so'z shakllari, aniq iboralar, domenlar va @foydalanuvchi nomlari bo'yicha saqlangan xabarlarni toping, eng yaxshi mos keladiganlarini birinchi qilib ko'rsating. - [Faqat o'qish uchun MCP](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/index.md): MCP mijozini tanlangan ish maydonlari va suhbatlarga muddati tugaydigan, bekor qilinishi mumkin bo'lgan kirish huquqi bilan ulashing. - [Mahalliy OCR va transkripsiya](https://phishdestroy.github.io/TgWitness/uz/docs/reference/media-analysis/index.md): Mahalliy ishchi yordamida ushlangan tasvirlar va audio materiallarni aniqlang; hosil qilingan matnni uning manba fayli bilan bog'lab saqlang. - [Chiquvchi webhooks](https://phishdestroy.github.io/TgWitness/uz/docs/reference/webhooks/index.md): HMAC imzolari, qayta urinishlar va yetkazib berish holati bilan HTTPS qabul qiluvchilarga doirali voqealarni yuboring. - [Operator mos kelmasligi to'g'risida ogohlantirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/notice/index.md): Taylor Wessing bo'yicha bizning operator bildirishimiz va uning manba yozuvi. - [Litsenziya va arxitektura nomuvofiqligi to'g'risidagi ogohlantirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/license/index.md): TgWitness hamma uchun MIT litsenziyasi ostida taqdim etilgan va uning arxitektura jihatdan Taylor Wessing ish jarayoni bilan mos kelmasligi. - [Tez boshlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/index.md): TgWitness-ni o'rnatish va ishga tushirishning barcha usullari: Windows paketi, Python, Docker va sintetik demo, dastlabki tekshiruvlar bilan. - [Hisoblar va sessiya formatlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/index.md): Telefon, QR kod yoki avtorizatsiya kaliti orqali tizimga kiring, Telethon, Pyrogram yoki Telegram Desktop sessiyalarini import qiling va bir nechta akkauntlarni boshqaring. - [Kirish va ruxsatnomalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/index.md): Hisoblar va suhbatlarga cheklangan kirish huquqini bering, ruxsatlarni tanlang, sessiyalar va IP-manzillarni cheklang hamda kirishni bekor qiling. - [Ulanish, proksi va ma'lumotlarni himoya qilish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/index.md): Avtorizatsiya, avtomatik proksi havzalari, IP rejimlari, zaxira siyosati, tashqi so'rovlar va maxfiy saqlash. - [Joriy etish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/index.md): TgWitness-ni Windows, Linux, macOS yoki Docker-da xizmat sifatida, HTTPS orqali, zaxira nusxalari va yangilanishlari bilan ishga tushiring. - [Yig'ish qanday ishlaydi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/index.md): Kuzatuv doirasi, jonli yangilanishlar, qayta tekshiruvlar, ilovalar, o'z harakatlari va bo'shliq nima anglatishi, har bir yozuv bo'yicha. - [Ish jarayonlari va operatsiyalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/index.md): Panelning kundalik ishlashi: rejimlar, monitoring kategoriyalari, parametrlar, bildirishnomalar, eksportlar, zaxira nusxasi va sig'im. - [Tergov rejimi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/index.md): Kanal, guruh, shaxsiy suhbatlar va botlar bo'ylab butun hisob tekshiruvlari, dastlabki doiradan tasdiqlangan ish paketigacha. - [Case Board havolasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/index.md): Belgilar, aniq ajratmalar, harakat bo'laklari, muhokamalar, chegaralangan kirish va Case Board tomonidan ishlatiladigan imzolangan izohlar tarixi. - [Hisobotni sozlash va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/index.md): Hisobot filtrlari, sakkizta dizayn, kontent uchun oldindan belgilangan sozlamalar, saqlangan o'zgarish tarixlari va imzolangan eksportlarga kiritilgan baholash. - [Imkoniyatlar va cheklovlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/index.md): Joriy yig'ish modeli, ko'p hisobli ish jarayonlari, eksportlar va TgWitness'ning operatsion chegaralari. - [Dalil qanday ishlaydi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/index.md): Hash zanjiri, imzolar, tekshiruv nuqtalari va guvohlar verifikator ishlatadigan aniq formulalar bilan tushuntirilgan. - [Dalil formati](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/index.md): Imzolangan ZIP tarkibi, yozuv turlari, jarayon kvitansiyalari, odamlar profillari, masofaviy nusxalar va oflayn tekshirish. - [Mustaqil guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/index.md): O'z kaliti va botiga ega Witnessni ishga tushiring, imzolangan tekshiruv nuqtalarini kanalga joylashtiring va eksportlarni ularga solishtiring. - [Vaqt tamg'alari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/timestamp/index.md): RFC 3161 timestamplari imzolangan tekshiruv nuqtalari uchun: vakolatli organiga nima yuboriladi va javob qanday tasdiqlanadi. - [Xavfsizlik va ma'lumotlarni boshqarish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/index.md): Xavf modeli, kirish modeli, saqlashdagi sirlar, tarmoqdagi ochiqlik, sessiya importlari va zaiflikni qanday xabar qilish. - [Arxitektura](https://phishdestroy.github.io/TgWitness/uz/docs/reference/architecture/index.md): Yig'uvchi, panel, jurnal, ishchilar va guvoh komponentlari hamda ma'lumotlar ularning o'rtasida qanday harakatlanadi. - [Nima sinovdan o'tkazilgan](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/index.md): Jonli Telegram sinovi, avtomatlashtirilgan tekshiruvlar, brauzer tekshiruvlari va hali tasdiqlanmagan narsalar. - [O'zgarishlar tarixi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/index.md): Har bir versiyadagi barcha o'zgarishlar, hali e'lon qilinmagan o'zgarishlar ham. - [Panel bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/index.md): Panelning har bir ekrani: suhbatlar, jurnal, manbalar, eksportlar, Extras, himoya rejimlari va kod tekshiruvi. - [Birinchi sozlash va parametrlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/settings/index.md): Sozlash ustasi, maqsadlar, interfeys darajalari, ulanish yo'nalishlari va hisob guruhi bo'yicha baham ko'riladigan sozlamalar. - [O'rnatish, tekshirish va yangilash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/index.md): Bir buyruq bilan o'rnatish, imzo va xeshlarni tekshirish, o'rnatmani yangilash va o'chirish. - [Saqlash va tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/index.md): Zaxira nusxalari, eski fayllarni bulutga ko'chirish, Object Lock ostidagi nusxalar va yangi qurilmada tiklash. - [Hisobni eksport qilish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/account-export/index.md): Hisob hozirda o'qiy oladigan narsalarni eksport qiling: doira, qayta boshlanadigan ishlar, imzolangan arxiv va minimallashtirilgan ulashish nusxalari. - [Jamoat namoyishi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/showcase/index.md): Tanlangan ommaviy kanallarning saqlangan xabarlari va imzolangan snapshotlarini muddati tugaydigan, bekor qilinishi mumkin bo'lgan havolalar orqali e'lon qiling. - [Yuqori ishonchlilikka ega joylashtirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/index.md): Hetzner yoki Phala Cloud'da joylashgan, 24/7 yopiq server, Gateway DNS va uchinchi tomon takrorlay oladigan tekshiruvlar. --- # Telegram · Bir necha daqiqada boshlang Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/start/ Bitta buyruq bilan o‘rnating, Telegram akkauntini ulang va Windows, Linux yoki macOS tizimida tekshiriladigan arxivni eksport qiling. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Bir buyruq bilan o'rnating, Telegram hisobini ulang va nimani saqlashni tanlang. ## Kompyuteringizga o'rnating O'rnatuvchi Python va unga bog'liq kutubxonalarni o'z ichiga oladi. Avvalo suhbat eksportidan boshlang; kuzatuv va tergov vositalarini kerak bo'lganda qo'shing. ### Linux / macOS ``` curl -fsSL https://get.destroy.tools/install.sh | bash ``` ### Windows · PowerShell / CMD ``` powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "irm https://get.destroy.tools/install.ps1 | iex" ``` Ubuntu server: root sifatida ishga tushiring. Desktop: odatdagi foydalanuvchi sifatida ishga tushiring. O'rnatuvchi ko'rsatgan panel manzilini oching va uning kirish kalitidan foydalaning. Keyin Telegram hisobingizni ulang. Panel kaliti va Telegram ruxsatingiz alohida. [O'rnatish, imzolar va yangilanishlar](https://phishdestroy.github.io/TgWitness/docs/reference/installation/) yuklab olingan build, mahalliy kirish va server variantlarini tushuntiradi. [Manba va Docker ko'rsatmalari](https://phishdestroy.github.io/TgWitness/docs/reference/quickstart/) mavjud bo'lib qoladi. ## Birinchi vazifangizni tanlang 1. [Hisobni telefon, QR-kod yoki qo'llab-quvvatlanadigan sessiya importi orqali bog'lang](https://phishdestroy.github.io/TgWitness/uz/docs/accounts/) 2. Suhbatlar, papka yoki hisob doirasini tanlang. 3. [Tanlangan tarixni](https://phishdestroy.github.io/TgWitness/docs/reference/account-export/)eksport qiling yoki kelajakdagi o'zgarishlarni saqlash uchun kuzatuvni boshlang. 4. [arxivini](https://phishdestroy.github.io/TgWitness/uz/docs/exports/)alohida ishonchli kalit barmoq izi bilan tekshiring. ## Vaqtinchalik GitHub runner'dan foydalaning [GitHub Actions](https://phishdestroy.github.io/TgWitness/docs/capture/)sizni fork, avtorizatsiya, doira va arxiv paroli bo'yicha yo'naltiradi. Ijro etilgach, shifrlangan natija va uning ish jarayoni kelib chiqishini yuklab oling. Ushbu ish jarayoni uchun doimiy yig'uvchi server kerak emas. ## Hisobisiz atrofga nazar soling [Brauzer demo](https://phishdestroy.github.io/TgWitness/demo/?lang=uz)ni oching, soxta xabarlarni ko'rib chiqing, tahrirlarni solishtiring va hech narsani o'rnatishdan oldin eksportni tekshiring. ![TgWitness suhbat ko'rinishi namunali xabarlar bilan](https://phishdestroy.github.io/TgWitness/assets/chats-dark.png) Namuna ish maydoni. Sizning jurnaliz alohida boshlanadi. ## Tergovni davom ettiring Davom etayotgan ish uchun ish holatingizga kerak bo'lgan manbalar, fayl siyosatlari, qidiruv, hisobotlar va ulashish ruxsatlarini qo'shing.[Boshlash, kengaytirish va dalillar](https://phishdestroy.github.io/TgWitness/docs/reference/overview/)bo'limida tanlovlar va e'lon qilingan o'lchovlar tushuntiriladi. Serverni o'rnatish uchun "[Uni ishga tushirishda saqlang](https://phishdestroy.github.io/TgWitness/uz/docs/server/)" bo'limiga rioya qiling. --- # Alohida hisobdan foydalaning. Aslo asosiy hisobingizni emas. Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/dedicated-account/ Yig'ish uchun alohida Telegram akkauntini tayyorlang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Hisobni bog'lashdan oldin o'qing Asosiy hisobingizdan foydalanmang, degan maslahatimiz hazil emas. Bu haqiqat. Asosiy hisob - Sizning ilova xeshingiz: 99% tizimdan chiqib ketgan - Faqat past ishonchlilik tufayli taqiqlar tez-tez uchraydi - Undan foydalanish juda ahmoqona g'oya Jamoat juftliklaridagi qo'shimcha hisob - Ushbu juftliklar orqali bir milliondan ortiq hisob yozilgan - Juftliklar 5 yildan ortiq vaqtdan beri faol - Ular orqali hech kim sizning hech narsangizni ko'ra olmaydi 01 ## Nega asosiy hisobingiz emas Bu aniq ma'lumot. Biz bu muammolarning xavfli joylari aynan qaerda ekanligini bilamiz. 1. ### Sizning ilova xeshingiz: 99% tizimdan chiqib ketgan Kirish huquqingiz bo'lmagan hisobdan my.telegram.org saytiga kirib, ilova hashini olish va keyin shu ilova hashiga asoslangan har qanday so'rov hisobingizni 99% ehtimol bilan tizimdan chiqarilgan bo'lishiga olib keladi. Buni tekshirishingiz mumkin. 2. ### Faqat past ishonchlilik tufayli taqiqlar tez-tez uchraydi Hisoblar Telegram ularga ishonmaydiganligi sababli oddiygina taqiqlanadi, va bunday taqiqlar tez-tez uchraydi. Buni ham tekshirishingiz mumkin. O'zingizning hisobingizdan foydalanish juda ahmoqona g'oya. 3. ### Ko'chirilgan sessiya kalitlari bekor qilinishi mumkin Import qilingan TData/session kalitini Telegram Desktop va TgWitness'da bir vaqtda ishlatish `AUTH_KEY_DUPLICATED` xatosini keltirib chiqarishi mumkin. Telegram ushbu ruxsatnomani bekor qiladi, shuning uchun har ikkala nusxa uchun yangi kirish talab etiladi. Alohida hisob bu muammoni bartaraf etmaydi. Asl klientdan to'liq chiqib, import qilingan sessiyadan foydalanganda uni yopiq holda saqlang. Paralel foydalanish uchun telefon yoki QR orqali TgWitnessga alohida ruxsatnoma yarating; boshqa alohida ruxsatnomaga ega klientlar esa tizimda qolishi mumkin. [Sessiyani import qilish bo'yicha ogohlantirishni o'qing](https://phishdestroy.github.io/TgWitness/demo/guide.html?lang=uz#session-warning) Telegram hujjatlari - [Chiqish xatolari: AUTH_KEY_UNREGISTERED, SESSION_REVOKED](https://core.telegram.org/api/errors) - [O'zingizning ilova xeshini yaratish: api_id olish](https://core.telegram.org/api/obtaining_api_id) 02 ## Nega TgWitness jamoat ilova xesh/ilova ID juftliklari orqali ishlaydi Shuning uchun biz TgWitness-ni ommaviy ilova hash/ilova ID juftliklari asosida yaratdik. Bizning mantiqimizga ko'ra, ular bilan taqiqlanish ehtimoli kamroq: bu juftliklar orqali milliondan ortiq Telegram akkauntlari ro'yxatdan o'tkazilgan va turli dasturlar ular orqali ishlaydi. Bizning mantiqimizga ko'ra, bu shaxsiy ilova xeshidan to'g'ridan-to'g'ri foydalanishdan afzalroq: bu juftliklar kamida 5 yildan beri mavjud. ### O'zingizning yangi juftligingiz Hisobingizdan my.telegram.org saytida yaratilgan. - Hisoblarning taxminan 99% logout qilingan - Bir yangi ilova, bitta hisob ### Poolning jamoat juftliklari Ko'pgina dasturlar ishlatadigan bir xil juftliklar. - Bir milliondan ortiq hisob yozilgan - Ko'plab turli dasturlar - 5 yildan ortiq ishlaydi ### Nega hech kim ushbu juftliklar orqali sizning hech narsangizni ko'ra olmaydi - #### Juftlik — bu nom, kalit emas Telegram dastur ulanayotganda va kirish kodini so'rayotganda API ID hamda API xeshini so'raydi. Ular ilovani aniqlaydi va hech qanday akkauntga kirish huquqini bermaydi; Telethon hujjatlarida bitta juftlik istalgan telefon raqami bilan ishlashi qayd etilgan. - #### Sizning sessiya kalitingiz hech qachon serveringizdan tashqariga chiqmaydi Kirish Diffie–Hellman almashinuvi orqali sizning TgWitness va Telegram o'rtasida avtorizatsiya kalitini yaratadi; kalitning o'zi hech qachon yuborilmaydi. Telegram hujjatlariga ko'ra: avtorizatsiyadan so'ng kalit foydalanuvchi bilan bog'lanadi va ushbu kalit bilan qilingan har bir chaqiriq shu foydalanuvchi sifatida bajariladi. Xuddi shu juftlikka ega boshqa dasturlarning o'z kalitlari bo'ladi va ular siznikini ishlata olmaydi. - #### Trafik sizning kalitingiz bilan shifrlanadi Har bir so'rov va javob sessiyaning ruxsat kaliti bilan shifrlanadi, API xesh bilan emas. API xeshni bilish hech narsani deşifrlamaydi. - #### Juftlik egasi hech narsa ko'rmaydi Telegramda API ID bo'yicha akkauntlar, sessiyalar yoki xabarlarni ro'yxatlaydigan usul yo'q. Juftlik egasi my.telegram.org saytida faqat o'z ilova sozatuvlarini ko'radi. - #### Faqat sizning hisobingiz qaysi ilova ekanligini ko'radi Sozlamalar → Qurilmalar bo'limida sizning hisobingizdagi har bir sessiyaning ilova nomi va API IDi, qurilma, IP manzili hamda sanalari ko'rsatiladi. Hech kim boshqa bu ro'yxatni ko'rmaydi. Telegram hujjatlari - [Foydalanuvchini avtorizatsiya qilish: kalit foydalanuvchiga aylanadi](https://core.telegram.org/api/auth) - [auth.sendCode: api_id, api_hash](https://core.telegram.org/method/auth.sendCode) - [Ulanishni boshlash](https://core.telegram.org/method/initConnection) - [Ruxsat kalitini yaratish](https://core.telegram.org/mtproto/auth_key) - [MTProto shifrlash](https://core.telegram.org/mtproto/description) - [account.getAuthorizations](https://core.telegram.org/method/account.getAuthorizations) - [Sessiya yozuvi nimani o'z ichiga oladi](https://core.telegram.org/constructor/authorization) - [api_id olish](https://core.telegram.org/api/obtaining_api_id) - [Telegram ilovalarining ochiq manba kodi](https://telegram.org/apps#source-code) Kutubxonalar va muhokamalar - [Telethon: tizimga kirish](https://docs.telethon.dev/en/stable/basic/signing-in.html) - [opentele: rasmiy ilova API-lari](https://opentele.readthedocs.io/en/latest/documentation/authorization/api/) - [opentele: TelegramClient](https://opentele.readthedocs.io/en/latest/documentation/telethon/telegramclient/) - [Stack Overflow: api_hashni maxfiy saqlash kerakmi?](https://stackoverflow.com/questions/49490818/should-telegram-api-hash-be-kept-secret) ### Boshqa dasturlardagi xuddi shu juftliklar 7 Rasmiy Telegram ilovalari juftliklari ommaviy bo'lib, ko'plab mustaqil dasturlar va kutubxonalarga kiritilgan: - [opentelePython · src/api.py](https://github.com/anmv/opentele/blob/4df17bd8c443d6452afc5a2d29ec7922fad1a5c3/src/api.py#L575) - Desktop 2040 - Android 6 - Telegram X 21724 - iOS 10840 - macOS 2834 - Web 2496 - [opentele2Rust · opentele2-core/src/api.rs](https://github.com/DedInc/opentele2/blob/7e973bc71cd7a714ad13ac703c0895a90d36a735/crates/opentele2-core/src/api.rs#L641) - Desktop 2040 - Android 6 - Telegram X 21724 - iOS 10840 - macOS 2834 - Web 2496 - [GrampoPython · Grampo/ut/api.py](https://github.com/abbas-bachari/Grampo/blob/00aa662d853c4ac2180432371c5e0d9444bbfe9e/Grampo/ut/api.py#L526) - Desktop 2040 - Android 6 - Telegram X 21724 - iOS 10840 - macOS 2834 - Web 2496 - [tgmanagePython · api/schemas/api_app.py](https://github.com/xdsnich/tgmanage/blob/f67c46be0ab234bd04526a8663d3936bd98a8597/api/schemas/api_app.py#L47) - Android 6 - iOS 8 - Desktop 2040 - macOS 2834 - Telegram X 21724 - Web K 2496 - [LyChatBotTDLib · helpers/tdlib/index.js](https://github.com/LyoSU/LyChatBot/blob/fac0ae5d5f2cddb8a26312014f51c0f6f40ec191/helpers/tdlib/index.js#L11) - macOS 2834 - [hsadasdPython · config.py](https://github.com/herobrinovaleksandr-png/hsadasd/blob/6842c74895038c16e219324fcd07dbe8153f37f0/config.py#L68) - Desktop 2040 - Desktop 17349 - Telegram X 21724 - macOS 2834 - iOS 10840 - Web 2496 - +4 - [blb.teamblb.team/threads/…294](https://blb.team/threads/app-hash-app-id-ofitsial-nykh-kliyentov.294/) - Android 4 · 5 · 6 - iOS 8 - Desktop 2040 - Desktop 17349 - macOS 2834 - Telegram X 21724 Forumda hisoblarni ro'yxatdan o'tkazish uchun e'lon qilingan rasmiy ilova juftliklari ro'yxati 03 ## Qo'shimcha hisob yaratish usullari Telegram hisobiga kirish kodini qabul qiladigan telefon raqami kerak. Hisob qancha vaqt davomida faol bo'lishi kerakligini tanlang. - Eng yaxshi tanlov ### Oldindan to'langan SIM yoki eSIM ******** So'nggi Uni doim to'ldirib tursangiz Diqqat qiling Eng ishonchlisi: Telegram haqiqiy mobil raqamlarni eng yaxshi qabul qiladi. Operator qaytarib olgan raqam boshqaga tegishli bo'ladi. - ### Virtual raqam ilovasi ******** So'nggi Ilova raqamni saqlab turgan paytda Diqqat qiling Telegram virtual raqamni rad etishi, kodni yetkazmasligi yoki yangi hisobni darhol cheklashi mumkin; ba'zi ilovalar esa ishlatilmayotgan raqamlarni qaytarib oladi. - ### Raqam ijarasi ******** So'nggi Ijara muddati Diqqat qiling U tugagach, raqam keyingi mijozga oʻtadi. - ### Bir martalik faollashtirish ******** So'nggi Bir kod Diqqat qiling Raqam darhol havzaga qaytadi, ko'pincha avvalgi egalarining tarixi bilan. Boshqa hech narsa qilmasdan oldin bulut parolini o'rnating. Keyinchalik raqamni egallagan shaxs kirish kodini so'rab olishi mumkin. Bulutli parol (ikki bosqichli tekshiruv) ularning tizimga kirishini to'xtatadi; u bo'lmasa, hisob raqamning keyingi egasiga tegishli bo'ladi. Telegram hujjatlari - [Spam FAQ: virtual raqamlar va avvalgi egalar](https://telegram.org/faq_spam) - [Ikki bosqichli tasdiqlash](https://core.telegram.org/api/srp) ### Ijara +888 raqamlari (Fragment) Ba'zi bozorlar va xizmatlar Fragment'dan Telegram'ning rasmiy +888 raqamlarini vaqtincha ijaraga olishni taklif qiladi. Taxminiy narxi: kuniga 20 AQSh dollari. - Hisobni bevosita Telegram Web yoki Telegram Desktop'da ro'yxatdan o'tkazishingiz mumkin. - Hisoblarni raqam bo'yicha o'chirib, yangi hisoblar yaratishingiz mumkin. - Ushbu hisoblar odatda kamroq firibgarlikka qarshi tekshiruvlardan o'tadi, lekin ular immunitet yoki maxsus imtiyozlar bermaydi. Raqam sizniki emas. Ijara muddati tugagach, egasi uni qaytarib olishi mumkin. Darhol bulut parolini o'rnating va hisobni uzoq muddatli deb qabul qilmang. +888 raqamiga o'zingiz egalik qilish yoki nazorat qiladigan oldindan to'langan SIM-kartadan foydalanish hanuzgacha ishonchliroq. ### Bozorlardagi tayyor akkauntlar Ba'zi bozorlar (masalan, G2G yoki Z2U) tayyor Telegram hisoblarini – yangi, yoshi kattaroq yoki sessiya fayllari bilan – sotadi. - [G2G: Telegram hisob ro'yxatlari](https://www.g2g.com/uk/categories/telegram-accounts) - [Z2U: Telegram hisob ro'yxatlari](https://www.z2u.com/telegram/accounts-5-15140) ASLO ASOSIY HISOBINGIZDAN FOYDALANMAING! Shu tarzda olingan maxsus hisob TgWitnessga asosiy Telegram hisobingizni kiritishdan ancha xavfsizroqdir. #### Sotib olishdan oldin ogohlantirishlar - Bu Telegram Xizmat ko'rsatish shartlarini buzadi. - Ko'plab hisoblar ommaviy ro'yxatdan o'tkazilgan (avtomatik ro'yxatdan o'tkazish) yoki ularning tarixi noma'lum. - Ba'zi sotuvchilarda hali ham tiklash huquqi bo'lishi mumkin. - Bunday bozorlardagi hisoblar keyinchalik tez-tez taqiqlanadi yoki cheklanadi. - Ochiqchasiga stealerlar, phishing vositalari yoki aniq o'g'irlangan hisoblarni sotadigan bozorlardan qoching. - Hisob sotib olish — hattoki avtomatik ro'yxatdan o'tkazilgani aytilgan bo'lsa ham — phishlash vositalari, ma'lumot o'g'irlash dasturlari, o'g'irlangan sessiyalar yoki hisoblarni ochiqchasiga sotadigan platformalardan Telegram Xizmat ko'rsatish shartlarini hamda aksariyat mamlakat qonunlarini buzadi. Bu keyinchalik dalillaringizni bekor qilishi mumkin. Ehtiyotkorlik bilan tanlang. #### Agar ushbu opsiyani ishlatsangiz 1. Hisobni bir martalik deb qabul qiling. 2. Boshqa barcha sessiyalarni tugating, bulut parolini o'rnating va tiklash usullarini darhol o'zgartiring. 3. Turli provayderlarning yoki o'zingiz ro'yxatdan o'tkazgan 2–3 ta akkauntdan foydalaning. **Premium, o'chirish va yetti kunlik kechikish** Agar hisob Premium bo'lsa, telefon raqamiga kirish huquqiga ega kishi hisobni darhol o'chira olmaydi. Siz bildirishnoma olasiz va o'chirishdan oldin yetti kuningiz bor. Bu muhim, chunki tergov hisobga bog'liq: sizda zaxira tayyorlash uchun vaqt bor. **Yangi hisoblar va API ma'lumotlari** Agar siz SMS xizmatidan olingan raqam yordamida o'zingiz ro'yxatdan o'tkazgan yangi akkauntdan o'zingizning api_id/api_hashni olib, undan foydalansangiz, birinchi API so'rovi yoki sessiya avtorizatsiyasi paytida akkauntdan chiqarilishingiz mumkin. Tergovni rejalashtirayotganda buni yodda tuting. 04 ## Hisob yaratish Raqamdan birinchi qayd etilgan suhbatgacha. 1. ### Raqam oling Hisob uzoq muddat ishlashi kerak bo'lsa oldindan to'langan SIM yoki eSIM; qisqa muddatli ish uchun ijaraga olish yoki bir martalik faollashtirish. Xizmatlar quyida keltirilgan. 2. ### Asosiy hisobingizdan alohida ro'yxatdan o'ting Rasmiy Telegram ilovasida asosiy hisobingiz yonida emas, balki alohida qurilma, emulyator yoki telefon profilida ro'yxatdan o'ting. 3. ### Uni bulut paroli bilan qulflang Darhol bulut parolini va faqat shu yerda ishlatiladigan tiklash elektron pochtasini belgilang. 4. ### Maxfiylik sozlamalarini yoping Telefon raqami **Hech kim**, meni raqamim bo'yicha toping **Mening kontaktlarim**, oxirgi ko'rilgan vaqti, profil rasmlari va bio **Hech kim** yoki **Mening kontaktlarim**; kontaktlarni sinxronlashtirishni o'chirib qo'ying. 5. ### O'zini o'chirib yuborishining oldini oling Hisobni o'z-o'zini yo'q qilish muddatini eng uzoq muddatga o'rnating, shunda to'xtatilgan TgWitness sizga hisobingizni yo'qotishga olib kelmaydi. 6. ### Unga neytral profil bering Boshqa hisoblaringizdan ism, foto, foydalanuvchi nomi yoki bio olmang, shaxsiy kontaktlar bo'lmasin. 7. ### Uni isitib oling Dastlab kuniga bir nechta suhbatga qo'shiling. Shoshilayotgan yangi hisoblar birinchi navbatda cheklanadi. 8. ### Botlar bilan hech narsa ulashing Bot uchun hech qachon "Telefon raqamini ulashish" yoki "Joylashuvni ulashish" tugmasini bosmang. Uskunada havolalar va Mini ilovalarni VPN yoki proksi orqali oching. 9. ### Uni TgWitnessga ulang O'z ish maydoningizda **Hisob → QR kod** orqali ulaning, so'ng **Manbalar → Tergov rejimi tugmasini** bosing. Ilova – bu siz harakat qiladigan joy, TgWitness esa yozuvdir. Telegram hujjatlari - [Ikki bosqichli tasdiqlash](https://core.telegram.org/api/srp) - [Maxfiylik sozlamalari](https://core.telegram.org/api/privacy) - [Hisobni o'z-o'zini yo'q qilish](https://core.telegram.org/method/account.setAccountTTL) 05 ## Xizmatlar soni Boshlash uchun variantlar. Mamlakatlar, narxlar va Telegram raqamni o'zgartirishni qabul qiladimi-yo'qligi tez-tez o'zgaradi; to'lov qilishdan oldin tekshiring. ### Oldindan to'langan SIM va eSIM 11 - [SMARTYsmarty.co.uk](https://smarty.co.uk) - UK - SIM - [VOXIvoxi.co.uk](https://www.voxi.co.uk) - UK - SIM - [iD Mobileidmobile.co.uk](https://www.idmobile.co.uk) - UK - SIM - [Threethree.co.uk](https://www.three.co.uk) - UK - SIM - [Asda Mobilemobile.asda.com](https://mobile.asda.com) - UK - SIM - [Ultra Mobileultramobile.com](https://www.ultramobile.com) - US - Oldindan to'langan PayGo rejasi, juda arzon - [US Mobileusmobile.com](https://www.usmobile.com) - US - Oldindan to'langan - [Mint Mobilemintmobile.com](https://www.mintmobile.com) - US - Oldindan to'langan - [Tracfonetracfone.com](https://www.tracfone.com) - US - Oldindan to'langan - [eSIM Plusesimplus.me](https://esimplus.me) - eSIM - [Numero eSIMnumeroesim.com](https://numeroesim.com) - eSIM ### Virtual raqam ilovalari 20 - [Google Voicevoice.google.com](https://voice.google.com) - US Faqat AQSh uchun; ro'yxatdan o'tish uchun AQSh raqami kerak - [TextNowtextnow.com](https://www.textnow.com) - US - CA Agar undan foydalanmasangiz, raqam bekor qilinadi - [TextFreetextfree.us](https://www.textfree.us) - US - [2ndLine2ndline.co](https://www.2ndline.co) - US - CA - [Talkatonetalkatone.com](https://www.talkatone.com) - US - [TextMego-text.me](https://go-text.me) - US - CA - Boshqa mamlakatlar - [textPlustextplus.com](https://textplus.com) [Google Play](https://play.google.com/store/apps/details?id=com.gogii.textplus) - [FreeToneGoogle Play](https://play.google.com/store/apps/details?id=com.textmeinc.freetone) - US [TextMe Up · textmeup.com](https://www.textmeup.com) - [Nextplusnextplus.me](https://nextplus.me) - US - [Dingtonedingtone.me](https://www.dingtone.me) - US - CA - [Burnerburnerapp.com](https://www.burnerapp.com) - US - CA - To'langan Sinov davri bilan - [Hushedhushed.com](https://hushed.com) - Ko'plab mamlakatlar - To'langan Arzon - [Sidelinesideline.com](https://www.sideline.com) - US - [MySudomysudo.com](https://mysudo.com) - US - CA - UK - [2NumberGoogle Play](https://play.google.com/store/apps/details?id=com.bpmobile.second.phone) [App Store](https://apps.apple.com/app/id1216135390) - [SLYNUMBERslynumber.com](https://slynumber.com) [Google Play](https://play.google.com/store/apps/details?id=com.dev.slynumber) - [Phonerphonerapp.com](https://phonerapp.com) - [Onoffonoff.app](https://www.onoff.app) - EU Ilovadagi Yevropa mobil raqamlari - [Sonetelsonetel.com](https://sonetel.com) - Ko'plab mamlakatlar - Bepul raqam - [Zadarmazadarma.com](https://zadarma.com) - Ko'plab mamlakatlar Virtual raqamlar ### Ijara va faollashtirishlar soni 12 Ijara bir necha hafta yoki oy davomida raqamni saqlaydi. Bir martalik faollashtirish bitta kod beradi: ro'yxatdan o'tgan zahoti bulut parolini o'rnating. - [OnlineSimonlinesim.io](https://onlinesim.io) - Ijara - Faollashtirishlar - [SMSPVAsmspva.com](https://smspva.com) - Ijara - Faollashtirishlar - [5SIM5sim.net](https://5sim.net) - Ijara - Faollashtirishlar - [SMSPoolsmspool.net](https://www.smspool.net) - Ijara - Bir martalik - [VAK-SMSvak-sms.com](https://vak-sms.com) - Ijara - Faollashtirishlar - [TextVerifiedtextverified.com](https://www.textverified.com) - Ijara - Faollashtirishlar - [JuicySMSjuicysms.com](https://juicysms.com) - Ijara - Faollashtirishlar - [365SMS365sms.org](https://365sms.org) - Ijara - Faollashtirishlar - [SIMSMSsimsms.org](https://simsms.org) - Ijara - Faollashtirishlar - [GrizzlySMSgrizzlysms.com](https://grizzlysms.com) - Bir martalik - [SMS-MANsms-man.com](https://sms-man.com) - Bir martalik - [Tiger SMStiger-sms.com](https://tiger-sms.com) - Bir martalik --- # Telegram · Hisobni bog'lang Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/accounts/ Telegramni QR-kod, telefon raqami yoki sessiyani import qilish orqali ulanib, manbalarni tanlang va yangi xabarlar jurnalga yetib kelishini tekshiring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Bitta ish maydoni = bitta hisob, uning jurnali va kaliti. ## Imzolash usulini tanlang **Hisoblar** → ish maydoni qo'shish → ulanish sozlamalari. Buning uchun alohida hisobdan foydalaning. - **QR kod:** Telegram'ning Qurilmalar ekranidan skanerlang va tasdiqlang. - **Telefon raqami:** raqam, kod, so'ng bo'lsa 2FA paroli. - **Sessiya importi:** o'z sessiya faylingiz yoki Telegram Desktop ma'lumotlari. O'rnatilgan API profilidan yoki o'z API ID va hash'ingizdan foydalaning. U faqat ilovani aniqlaydi, sizni kiritmaydi va hech narsani yashirmaydi. **Avval proksi kerakmi?** Kirishdan oldin [ulanish yo'nalishini tanlab, sinab](https://phishdestroy.github.io/TgWitness/uz/docs/proxies/) ko'rishingiz mumkin. Har bir hisobning o'z yo'nalishi mavjud. ## Kuzatiladigan narsani tanlang 1. Kerakli chatlar, guruhlar yoki kanallarni tanlang. 2. Yig'ish sozlamalarini, media bilan birga, tekshiring. 3. Ishga tushiring va ulanish hamda so'nggi faollikni tekshiring. Hisobning kirish huquqi bo'lishi kerak. Administratorlar va a'zolar turli narsalarni ko'radi, jurnal bu hisob nima olganini ko'rsatadi. Butun hisobmi? **Manbalar → Kuzatuv doirasi → Tergov rejimi**, tekshiring, **Doirani saqlash**. To'liq qo'llanma: [butun hisobni tergov qilish](https://phishdestroy.github.io/TgWitness/uz/docs/cases/). ## Butun yo'lni tekshiring Sinov guruhingizda boshqa hisobdan xabar yuboring, tahrirlang, o'chiring. Uchalasi ham jurnalda ko'rinishi kerak. So'ng [eksport qiling va tekshiring](https://phishdestroy.github.io/TgWitness/uz/docs/exports/). "Ulangan" ulanish ishlayotganini bildiradi. Ushlangan sinov xabari esa hodisalar haqiqatan yetib kelayotganini bildiradi. ## Yana bir akkaunt qo'shing **Hisoblar** bo'limida yangi ish maydoni, xuddi shu qadamlar. Keyinroq eksportlarni ajrata olish uchun har bir hisob kalitining barmoq izini yozib qo'ying. --- # Telegram · Proxy tanlang Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/proxies/ Avtomatik MTProxy yo'nalishlarini saqlang yoki o'zingizning proksiyangizdan foydalaning. IP rejimlarini, zaxira qoidalarini va tashqi so'rovlar uchun yo'nalishni tanlang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Hisobni onlayn saqlang va server IP'sini ko'rsatishi mumkinmi yoki yo'qmi, o'zingiz hal qiling. ## Avvalo IP rejimini tanlang 01**Manishani yashirish** Faqat proksi. Hech biri ishlamasa, kutadi. 02**Oxirgi chora sifatida to'g'ridan-to'g'ri** Kechikishdan keyin to'g'ridan-to'g'ri ulanadi, biror proksi ishlashi bilan unga qaytadi. 03**Tunnel yoki VPN ortidagi server** To'g'ridan-to'g'ri ulanish mumkin. U siz uchun VPN'ni sozlamaydi va tekshirmaydi. Yo'l ulanishni tanlaydi. IP rejimi to'g'ridan-to'g'ri ulanishga ruxsat berilishini aniqlaydi. ## Pool marshrutni saqlab tursin 1. **Hisob → Sozlamalar → Ulanish sozlamalari**. 2. IP rejimini va **Avtomatik MTProxy**ni yoki qat'iy marshrutni tanlang. 3. Saqlang, **Telegram ulanishini sinash** (kirishdan oldin ham ishlaydi). 4. Yig'ishni boshlang va o'zingizga sinov xabari yuboring. Yangi ish maydonlari avtomatik MTProxy va **Manzilni yashirish** bilan boshlanadi. Pul to'rtta ochiq ro'yxatni oladi, serverlarni tekshiradi, yaxshilarini saqlaydi va o'liklarini almashtiradi. ## O'zingizning proksingizdan foydalaning SOCKS5, HTTP CONNECT, Telegram proksi havolasi yoki operator katalogi. Almashtirishdan oldin kuzatuvni to'xtating. Fake TLS sirlari (`ee`…) ishlamaydi. **Aylantirish, ulashish va qayta urinish sozlamalari** **Parametrlar → Avtomatik MTProxy**: xato chegaralari, tanaffuslar, aylanish, har bir proksiga hisoblar. Cheklov 1 hisob ulashish o'rniga kutishini bildiradi. Turli proksilar baribir bitta chiqish IP'sini bo'lishishi mumkin. ## Telegramni tashqi so'rovlardan ajratish MTProxy faqat Telegram'ni tashiydi. Vaqt belgilari, bildirishnomalar, nusxalar va kod tekshiruvlari alohida SOCKS5/HTTP proksi, hisobning SOCKS5/HTTP marshruti yoki rejim ruxsat bersa to'g'ridan-to'g'ri o'tadi. Yoki ularni o'chiring. `TGWITNESS_PROXY_FEED_PROXY` ro'yxatlarni yuklab olish marshrutini belgilaydi. [Guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/witness/)ning o'z sozlamalari bor. Bularning hech biri brauzeringiz yoki tizim tarmog'ingizga tegmaydi. Batafsil: [rejimlar va standart qiymatlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/#ip-modes), [marshrutlarni kim o'zgartira oladi](https://phishdestroy.github.io/TgWitness/uz/docs/access/). --- # Telegram · Eksport va tekshirish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/exports/ Qayd etilgan Telegram tarixini eksport qiling, imzolarni tasdiqlang va mustaqil guvoh saqlagan tekshiruv nuqtasidagi jurnal bilan solishtiring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Kimgadir ish maydoningizga solishtirib o'zi tekshira oladigan fayllarni bering. Manbani saqlashImzolangan ZIP-ni eksport qilingQabul qiluvchi tasdiqlaydi Imzolar va nazorat nuqtalari sizga yangimi? [Namuna yozuvni o'zgartiring](https://phishdestroy.github.io/TgWitness/uz/docs/concepts/#chain) va qaysi tekshiruv uni ushlashini ko'ring. Nusxani yig'uvchidan uzoqda saqlashni xohlaysizmi? [S3 sozlamalar](https://phishdestroy.github.io/TgWitness/uz/docs/exports/#s3)iga o'ting, [Object Lock](https://phishdestroy.github.io/TgWitness/uz/docs/exports/#s3-retention) yoki [tasdiqlangan tiklashni tanlang](https://phishdestroy.github.io/TgWitness/uz/docs/exports/#s3-restore). ## Ishonchli manbani saqlab qo'ying Ish maydoni kalitining barmoq izini kollektordan boshqa joyga yozing. Yig'ish davomida imzolangan nazorat nuqtalarini ham boshqa joyda saqlang yoki [mustaqil guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/witness/)ni ishga tushiring. Qabul qiluvchi kalitni va jurnalning oldingi holatini aynan shular bilan tekshiradi. ## Imzolangan ZIP-faylni yuklab oling **Eksportlar** → imzolangan dalil ZIP. Unda butun jurnal va imzolangan fayl manifesti bor. O'qilishi oson hisobotni [Report studio](https://phishdestroy.github.io/TgWitness/uz/docs/reports/)'da shakllantiring yoki faqat tanlangan ma'lumotlarni [topshirish ekstrakti](https://phishdestroy.github.io/TgWitness/uz/docs/handover/) sifatida yuboring. HTML, PDF va JSON hisobotlarining o'z muhrlari bor. CSV shunchaki ishchi nusxa; yaxlitlik uchun tekshirilgan ZIP ichidagi CSV'dan foydalaning. ## TgWitness'ning ishonchli nusxasi bilan tasdiqlang Loyiha muhitida, o'z barmoq izingiz va yo'llaringiz bilan: ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json ``` Muvaffaqiyatda `key_pinned: true` va `checkpoint_checked: true` ko'rinadi. Bu natijani arxiv yonida saqlang. Nazorat nuqtasi eksport oxirida yoki undan oldin bo'lishi kerak. ## Verifikatsiya natijasidan foydalaning - **Fayllar:** manifest ularning xeshlarini, imzolar jurnalni bog'laydi. Har qanday o'zgarish ko'rinadi. - **Shaxs:** saqlagan barmoq izingiz bu siz kutgan kalit ekanini isbotlaydi. - **Oldingi holat:** nazorat nuqtasi eksportni topshirishdan oldin saqlangan jurnal boshi bilan solishtiradi. - **Qamrov:** bo'shliqlar, olish natijalari va yuborish → tahrirlash → o'chirish sinovi bu sozlama haqiqatan nimani ushlaganini ko'rsatadi. Batafsil: [tekshiruv nimani isbotlaydi va nimani isbotlamaydi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope). ## S3 tashqi nusxasini sozlash Ish maydoningizda **Eksportlar → Off-sayt nusxasi**. AWS S3 va har qanday S3-mos xizmat bilan ishlaydi. Jurnal segmentlari, saqlangan fayllar, vaqt belgilari bilan nazorat nuqtalari va tugallangan chat eksportlarini nusxalaydi, har biri kollektordan chiqishdan oldin `AES-256-GCM` bilan shifrlanadi. Onlayn demo bu boshqaruvlarni yuklash o'chirilgan holda ko'rsatadi. Haqiqiy hisob ma'lumotlarini faqat o'z o'rnatmangizda kiriting. [![To'liq Off-site nusxa paneli: oxirgi nuqta, mintaqa, bucket, kirish kalitlari, jadval, Object Lock va tiklash kaliti boshqaruvlari](https://phishdestroy.github.io/TgWitness/assets/off-site-copy.png)](https://phishdestroy.github.io/TgWitness/assets/off-site-copy.png) Kengaytirilgan ilg'or opsiyalar bilan to'liq panel. Saqlash ma'lumotlari ko'rsatilmagan. | Maydon | Nimani kiritish | | --- | --- | | Oxirgi nuqta | Saqlash URL manzili, bucket yo'li yoki hisob ma'lumotlarisiz. Misol: `https://s3.example.invalid`. | | Mintaqa | Provayderingiz talab qilgan qiymat. Standart `us-east-1`. | | Bucket | Yozish huquqingiz bor mavjud bucket. Misol: `example-case-backup`. | | Chelakdagi papka | Prefiks, standart `tgwitness`. Uning ustiga har bir ish maydoni prefiksi qo'shiladi. | | Kirish kaliti ID / Maxfiy kirish kaliti | Ikkalasi birga, seyfda saqlanadi. Keyinroq ikkalasini bo'sh qoldirsangiz, saqlanib qoladi. | | Yo'l-uslubidagi manzillar | Yoqilgan: `endpoint/bucket`. O'chirilgan: `bucket.endpoint`. Provayderga bog'liq. | | Ko'chirma oraligi | 1 dan 1,440 daqiqagacha, standart 5. Faqat ilova ishlayotganda. | | Object Lock saqlash | Kunlar va rejim, agar bucket Object Lock'ni qo'llasa. Nol bucket standartini saqlaydi. | 1. Bucket yarating, **Off-sayt nusxasini saqlash** belgilanmagan holda manzil va hisob ma'lumotlarini to'ldiring, **Off-sayt nusxasini saqlash** tugmasini bosing. 2. **Ulanishni sinash** shifrlangan sinov obyektini yuklaydi. 3. **Shifrlash kalitini yuklab olish** va uni kollektordan uzoqda saqlang. Kalit yo'q, tiklash yo'q. 4. **Off-sayt nusxasini saqlash**ni belgilang, saqlang, so'ng **Hozir nusxalash** yoki jadval ishlasin. ## Saqlash muddatini va nusxa ko'chirish jarayonini tekshirish **Boshqa variantlar** ostida saqlash kunlarini va `GOVERNANCE` yoki `COMPLIANCE`ni tanlang. TgWitness saqlash sozlamasini yuklangan obyektdan qayta o'qiydi va aytadi: tasdiqlandi, yo'q yoki tekshiruv muvaffaqiyatsiz. Panel oxirgi o'tishni, obyektlar sonini, baytlarni, nusxalangan jurnal chegarasini va xatolarni ko'rsatadi. Yo'qolgan mahalliy fayl xabar qilinadi va keyingi o'tishda qayta uriniladi, qolgani nusxalanishda davom etadi. Yuklashlar to'g'ridan-to'g'ri, SOCKS5 yoki HTTP orqali o'tadi. Faqat MTProxy marshrutida nusxa xato bilan kutadi. ## Qayta tiklash kalitini alohida saqlang Kalit JSON'ida shifrni ochish kaliti, manzil, prefiks va kalit barmoq izi bor. Tiklash uchun u va o'qish huquqli saqlash hisob ma'lumotlari kerak. Endpoint, bucket yoki prefiksni o'zgartirdingizmi? Kalitni qayta yuklab oling. Yangi nusxa yangi manzilda boshlanadi; eski chat eksportlari joyida qoladi. ## Boshqa qurilmada tiklash va tekshirish Sizga ishonchli TgWitness o'rnatmasi, kalit JSON, faqat o'qish uchun saqlash hisob ma'lumotlari va bo'sh papka kerak: ### Windows PowerShell ``` $env:TGWITNESS_S3_ACCESS_KEY = 'YOUR_READ_ACCESS_KEY' $env:TGWITNESS_S3_SECRET_KEY = 'YOUR_READ_SECRET_KEY' python -m tgwitness.replica restore --key-file tgwitness-replica-key.json --out restored-evidence ``` ### Linux / macOS ``` export TGWITNESS_S3_ACCESS_KEY='YOUR_READ_ACCESS_KEY' export TGWITNESS_S3_SECRET_KEY='YOUR_READ_SECRET_KEY' python -m tgwitness.replica restore --key-file tgwitness-replica-key.json --out restored-evidence ``` Hammasi avval shaxsiy vaqtinchalik papkada tekshiriladi: butun jurnal, nazorat nuqtalari, fayl xeshlari va o'lchamlari. Xavfli yo'llar, ziddiyatli segmentlar yoki nazorat nuqtasidan qisqa jurnal muvaffaqiyatsiz bo'ladi va shunda hech narsa yozilmaydi. Muvaffaqiyatda `events.jsonl`, `media/`, `checkpoints/` va `exports/` olasiz. Buyruqning JSON natijasini ular bilan saqlang va o'zingiz saqlagan nazorat nuqtalari yoki guvoh yozuvlari bilan solishtiring. --- # Telegram · GitHub Actions yozib oladi Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/capture/ Vaqtinchalik GitHub runner’da Takeout, oddiy API eksporti yoki chat jurnalini tanlang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Vaqtinchalik GitHub runner’da Takeout,oddiy API eksporti yoki chat jurnalini tanlang. Kalit yaratish va arxivni dekriptirovka qilish uchun JavaScript-ni yoqish. **To'liq manba** [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Documentation](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Independent capture](https://github.com/phishdestroy/TgWitness/blob/main/docs/OPTIONAL-CAPTURE.md) ![Independent capture](https://phishdestroy.github.io/TgWitness/assets/chapter-capture.svg) **Preview available from `main`.** A fork launches a pinned reusable workflow from `phishdestroy/TgWitness`. The workflow exports an account, selected chats or one chat's event journal using a newly created Telegram session, attests the evidence ZIP or multipart manifest, and uploads only recipient-encrypted handoffs. The normal administration panel is not exposed. Choose `client=official_web` to run the [official-client witness](https://github.com/phishdestroy/TgWitness/blob/main/docs/OFFICIAL-WITNESS.md) with guarded Telegram Web controls and video. It requires your own upstream proxy and observes one rendered chat. The default `client=api` retains the full-account export modes described below. The verifier checks the archive against its GitHub attestation, the approved workflow and collector commits, and the signed journal and attachment hashes. The collection process uses pinned upstream code and fresh storage. A reviewer can inspect that code and verify the delivered archive against its recorded run. **On this page** - [User flow](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#user-flow) - [Session time budget](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#session-time-budget) - [Choose this mode or a persistent workspace](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#choose-this-mode-or-a-persistent-workspace) - [What is public, and what must stay private](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#what-is-public-and-what-must-stay-private) - [Troubleshooting](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#troubleshooting) - [Local decryption and verification](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#local-decryption-and-verification) - [How the fork is kept outside the capture process](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#how-the-fork-is-kept-outside-the-capture-process) - [Cryptographic handoff](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#cryptographic-handoff) - [Limits and validation](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#limits-and-validation) - [Maintainer release sequence](https://phishdestroy.github.io/TgWitness/uz/docs/capture/#maintainer-release-sequence) ## User flow The helper explains the five stages and lets you try message or collector substitution on sample data. **Start my capture** opens the wizard. 1. Choose **GitHub Actions capture (preview)** on the project homepage, the workspace login screen, or **Exports → Open capture helper**. You can also open the [official helper](https://phishdestroy.github.io/TgWitness/sealed.html?lang=en) or `tgwitness/static/capture.html` from a trusted checkout in a modern browser. The helper makes no network requests for key or file processing. The helper supports the site's interface languages; the temporary collection panel supports English and Russian. 2. Generate a key and save **sealed-key.json**. This is the only private decryption key. Copy the separate public **recipient** value. Losing the private key loses access to both the connection and the archive. Confirm that you saved it to unlock the next step. If you already have a delivery file, load the saved key and choose **I already have an archive**. 3. Fork TgWitness, enable Actions in the fork, and run **Sealed chat capture**. Paste the public recipient and choose 30, 60, or 120 minutes. Never put a phone number, login code, Telegram password, private key, or session in workflow inputs, commits, issues, or logs. 4. During the run, download **sealed-connection** from Artifacts and unzip it. Load `connection.tgwsealed` in the helper, using the saved private key. The resulting link contains a random access secret in its URL fragment. Keep this link private. The panel removes the fragment and keeps the secret in this tab's session storage; it is not placed in HTTP access logs. 5. Open the connection link. Sign in with a QR code, or with your phone number and the login code. Enter your two-step verification password if Telegram asks for it. The built-in API credential pool is used by default, just like the normal workspace. You may expand the optional custom credentials section and enter both `api_id` and `api_hash` from [my.telegram.org/apps](https://my.telegram.org/apps). Leave both fields empty to use the built-in pool; a partial or malformed pair is rejected. Session imports are not allowed. Choose the export mode and scope. The connection link contains an access secret: keep it private. 6. Choose **Telegram Takeout**, **Regular Telegram API** or **Chat event journal**. For account export, choose all accessible chats or load and select one or more chats, then set dates, chat types, account categories and attachment rules. Check settings and size, optionally save the settings JSON for an independent reviewer, then press **Start capture**. Settings are fixed after starting. Resume works only while this runner exists; finishing early preserves acquired data and records gaps. Deadline expiry after starting produces an explicitly partial archive; expiry before starting or cancellation produces no archive. 7. Wait for **sealed-result**, download and unzip it, and decrypt `delivery.tgwsealed` in the helper. You receive `delivery.zip`, containing `evidence.zip`, `attestation.jsonl`, and instructions. Browser decryption is limited to 256 MiB; larger packages use the streaming local command below. Large results also include `delivery-NNNNNN.tgwsealed` parts; the main `delivery.tgwsealed` then contains `evidence.parts.json` and the attestation. Download every part and assemble locally as described below. 8. End the temporary session in Telegram Settings → Devices if revocation was not confirmed or the runner was killed. Normal completion attempts logout; network failures and forced runner termination prevent an absolute guarantee. The repository must contain the published pinned source and reusable-workflow commits. A local branch alone cannot be invoked by another GitHub repository. ## Session time budget Before collection, **Calculate time and size** estimates the selected history and files from message counts and a bounded sample. The display includes time already spent signing in, estimated collection time and a reserve for packaging. For files, the initial estimate uses 1 MiB/s and a twofold time margin; progress replaces that assumption with the measured rate. Use **Messages only** or select fewer chats when the estimate exceeds the remaining time. Telegram's reported Takeout wait is added to the budget. The collector stops acquisition when the remaining time is needed for packaging, retains acquired data and marks a partial result. A 120-minute session therefore uses its remaining collection window rather than waiting for the deadline before preparing the archive. The display identifies selections whose full size could not be sampled. ## Choose this mode or a persistent workspace | Capture mode | Configurable scope | Difference | | --- | --- | --- | | Telegram Takeout, the default | All accessible cloud chats or selected chats, dates, account categories, media policies and JSON/HTML views | Uses Telegram's official export mechanism; approval or waiting may be required. Takeout can enumerate left channels/groups where Telegram permits it and request additional personal data. | | Regular Telegram API | The same account scope and output choices, subject to methods available through the regular API | Does not initialize Takeout; cannot enumerate left channels/supergroups or fetch Takeout-only personal data. Contacts cover Telegram users rather than the complete saved phone contact list. Rate limits still apply. | | Chat event journal | One selected chat, attachment policies and optional avatars | Captures history and changes observed during this run. Account categories, date filters and Desktop-compatible views do not apply. | All three modes have the same GitHub attestation and encrypted delivery. Takeout is an acquisition method, not a stronger signature. It is never silently replaced by regular API access. JSON/HTML views are generated by TgWitness; they are not Telegram-signed files or guaranteed byte-identical Desktop exports. See the [official Takeout API](https://core.telegram.org/api/takeout). Defaults use Takeout, all accessible chat types including archived chats, all dates, account profile and contacts, compatible JSON and HTML, and file downloads. The initial media budget is 4 GiB, with visible per-type file limits; larger files or exhausted download budgets use server hashes where available. Review these limits before collecting. Hashes cannot reconstruct a file. Optional photos, stories, session metadata and extra personal data remain separate choices. Takeout may require approval in an established Telegram session. Telegram sets the delay; a new login or runner does not bypass it. The maximum capture window is 120 minutes including login and approval, so a large account or long approval wait may not finish. A persistent local export can resume the same session, but does not inherit GitHub attestation. ### Agree and verify the settings After **Check settings and size**, use **Save settings for verification**. Agree the resulting `sealed-export-settings.json` with the reviewer before collection. Changes invalidate the saved assessment. The collector signs the effective settings and their SHA-256, and account-export receipts bind the same options. The verifier reports the actual mode, selection and completeness, and rejects a disagreement between the journal and nested account export. ``` python -m tgwitness.sealed_verify evidence.zip --bundle attestation.jsonl --repo OWNER/TgWitness --expected-selection sealed-export-settings.json --require-complete ``` `--expected-selection` rejects a different transport, chat scope, filter or attachment policy. `--require-complete` rejects partial account exports and chat journals, whose overall completeness is not established. Without these flags, verification still checks provenance and integrity while reporting the recorded settings and gaps. A file supplied only with the finished archive cannot establish what was agreed beforehand. A valid signature never turns omitted data into data that was collected, or proves the owner did not edit/delete messages before capture. | Need | Mode | | --- | --- | | Export accessible account data or selected chats during a limited session and give a reviewer an externally attested archive | GitHub Actions capture (preview) | | Observe several chats continuously, manage accounts, search and read a growing archive | Local or Docker workspace | This starts a separate capture with a new login. It does not upload your existing local journal, export the currently open workspace, or reuse its Telegram session. An unfinished cloud capture cannot resume after its runner is destroyed; a new workflow starts a new capture. The workspace's **Exports → Open capture helper** opens the complete wizard inside the panel. The standalone page uses the same wizard, controls and themes. Both keep keys and decryption in your browser. GitHub workflow startup and the temporary Telegram panel open in separate tabs; the wizard tells you when to return. Locking the workspace clears the wizard's in-memory key. Your saved key file remains on your device. ## What is public, and what must stay private Collection runs on a standard GitHub-hosted runner. GitHub, the approved collector and dependencies, the helper page, the browser and the HTTPS tunnel are trusted parts of this setup. The temporary host processes the Telegram session and plaintext messages; the delivered artifacts are encrypted for the recipient. Forking copies project code into your repository. It does **not** export your Telegram account. The recipient workflow input is a public encryption key. Keep `sealed-key.json`, Telegram credentials, login codes, 2FA passwords and the decrypted connection URL out of commits, workflow inputs and public logs. The workflow publishes encrypted connection/result artifacts for one day. Download both in time; GitHub Actions availability, account limits and billing apply. A public fork is not a promise of unlimited free compute. No payment or GitHub access token is entered into the helper. The private decryption key stays in your browser/file. Telegram session material and plaintext observations necessarily exist inside the temporary collector. GitHub and the HTTPS tunnel remain trusted infrastructure. Attestation may make the archive digest and workflow identity public; the archive contents are not placed in the attestation. The attestation timestamp is not a message timestamp. ## Troubleshooting | Symptom | Next step | | --- | --- | | No **Run workflow** button | Open your own fork, enable Actions, and sync it with upstream `main`. Do not edit the approved upstream pins to bypass a failure. | | No `sealed-connection` artifact | Check whether the job started and completed its startup/upload step. Queue, runner, image download, tunnel or repository policy failures can prevent startup. | | Cannot open the connection | Load the saved key for this run, unzip the downloaded artifact and select `connection.tgwsealed`. The runner must still be active. | | History is paused | Check the panel's status and use Resume while the session remains active, or finish with the data already collected. Telegram limits and inaccessible content can leave gaps. | | No `sealed-result` | Cancellation or expiry before starting collection produces no archive. A failed collection, attestation or packaging step also prevents delivery. Inspect the failed step without posting credentials. | | Browser cannot decrypt a large archive | Use the streaming CLI below for packages larger than 256 MiB. A wrong or lost private key cannot decrypt the result. | | Verification rejects the signer | Use a trusted current TgWitness installation and the exact caller `OWNER/REPOSITORY`. Do not accept a replacement policy supplied with the archive. | | Telegram still lists the temporary session | End it in Settings → Devices. Logout can fail and a forcibly terminated workflow may not run cleanup. | Before relying on this preview, try a small chat you control: create a message and attachment, collect them, decrypt the result, run the verifier, check the coverage/media outcomes and confirm Telegram session revocation. Automated checks use a synthetic Telegram client plus a separate real GitHub certificate test; they do not establish live account acceptance. ## Local decryption and verification Use tools from an independently trusted installation, not executable files supplied by an unknown evidence archive: ``` python -m tgwitness.sealed_crypto decrypt delivery.tgwsealed --key sealed-key.json --out delivery.zip # Unzip delivery.zip using your archive manager, then: python -m tgwitness.sealed_verify evidence.zip --bundle attestation.jsonl --repo OWNER/TgWitness ``` For multipart delivery, decrypt the main package first and keep its extracted manifest beside every encrypted part, then run: ``` python -m tgwitness.sealed_parts evidence.parts.json --key sealed-key.json --out evidence.zip python -m tgwitness.sealed_verify evidence.parts.json --assembled evidence.zip --bundle attestation.jsonl --repo OWNER/TgWitness ``` The manifest is the attested subject and binds every part and the assembled ZIP. Use `--max-gib` to set an appropriate uncompressed verification ceiling for a large archive; the default is 4 GiB. Expected-selection and complete-scope checks also work with multipart delivery. Python 3.11+, the project's dependencies, and a recent GitHub CLI supporting `--signer-digest` and `--deny-self-hosted-runners` are required. A CLI key generator is also available: `python -m tgwitness.sealed_crypto keygen sealed-key.json`. The verifier uses `tgwitness/sealed_policy.json` from the trusted installation. It checks the caller repository, upstream signer workflow, approved signer commit, hosted runner requirement, complete ZIP digest, internal journal and attachment integrity, fresh account-key origin, and expected collector commit. It displays history and media outcomes instead of implying all data was saved. An empty approved-release list fails closed. Updating the policy is an explicit trust decision; never accept an archive's own proposed policy automatically. For offline use, obtain trusted roots ahead of time from a trusted environment: ``` gh attestation trusted-root > trusted_root.jsonl python -m tgwitness.sealed_verify evidence.zip --bundle attestation.jsonl --repo OWNER/TgWitness --trusted-root trusted_root.jsonl ``` The timestamp of the attestation concerns the archive's commitment. It does not authenticate message timestamps or the collector's wall clock. See [GitHub's verification options](https://cli.github.com/manual/gh_attestation_verify). ## How the fork is kept outside the capture process The caller contains a job-level reference to the upstream reusable workflow at a full commit SHA. That workflow explicitly checks out **the upstream repository at a fixed collector SHA**. A default `actions/checkout` in a reusable workflow would check out the caller and is intentionally not used. The workflow does not restore caller caches, consume caller artifacts, execute caller files, or accept source/image URLs, shell commands, prepared ZIP files, or hashes to sign. It accepts a bounded public recipient and session duration. Actions, the Python base image, and cloudflared are pinned by immutable digests; Python dependencies use the existing hash-locked requirements. The image is built from the trusted source without a cache. The collector runs as a non-root user with a read-only image, dropped Linux capabilities, resource limits, and no Docker socket or GitHub-token environment. Its only mounts are fresh configuration, workspace, and output directories. The restricted FastAPI application exposes login, dialogs, configurable account or chat collection, status, resume, finish, and cancellation. There is no plaintext download route, general administration route, import route, or signing endpoint. The supervisor stops the network-facing containers before the attest action reads the final fixed `evidence.zip` or `evidence.parts.json`. The packaging container has no network. The upload steps name only `connection.tgwsealed` and `delivery*.tgwsealed`; neither plaintext evidence nor Telegram credentials are uploaded as artifacts. Cleanup removes the private directories and containers, with no claim of physical disk erasure. Artifact retention is one day; download before expiry. A fork owner can replace the caller or create a different signed file. The strict verifier must reject the resulting **different signer workflow/digest**. This construction still depends on the absence of exploitable bugs in approved code and on the integrity of GitHub's runner and signing infrastructure. ## Cryptographic handoff Each recipient key is RSA-3072 (RSA-4096 imports also accepted), exponent 65537. Each envelope has a fresh random AES-256 key and 96-bit nonce. RSA-OAEP with SHA-256/MGF1-SHA256 wraps the AES key. AES-GCM with a 128-bit tag authenticates the complete prefix and payload. The public recipient is DER SPKI in base64; the private key file contains DER PKCS8 in base64. Envelope bytes are `TGWSEAL1\n`, a big-endian uint32 JSON-header length, the header, ciphertext, and a 16-byte GCM tag. The header has exactly `algorithm`, `key`, and `nonce`; algorithm is `RSA-OAEP-256+A256GCM`. The complete prefix through the header is GCM additional authenticated data. Header size is bounded at 8192 bytes. The CLI streams payloads up to 8 GiB and authenticates before installing the requested output; it refuses overwriting an existing destination. This is a project-specific envelope around standard cryptographic primitives, not an independently audited encryption format. The original evidence bytes are attested **before** placing the evidence and attestation in the encrypted outer package. This avoids a circular dependency between the archive's hash and a certificate included inside that same archive. For public repositories, attestation metadata (repository, workflow, commit, artifact name and digest) is public. Never put chat names in public metadata. ## Limits and validation This mode uses the signed journal and account-export engine. Secret Chats, deleted history from before collection and data inaccessible to the account are excluded. Private cloud chats are eligible when selected. The chat picker is capped at 20,000 dialogs; account export discovers its own inventory. Missing data, failed files and unfinished tasks are recorded. Attachment limits and runner disk/time limits still apply. Large delivery uses encrypted parts instead of a fixed 4 GiB delivery cutoff. Completion means the frozen selected tasks finished, not that every historical Telegram record exists in the archive. The chat journal can also observe live updates; neither mode is an atomic snapshot. Generated screenshots and screen recordings are not part of this mode. Tests cover synthetic fresh login, scope isolation, media, cancellation, partial deadline completion, failed logout, forbidden API paths and fields, preloaded workspace rejection, wrong-key and tamper rejection, required verifier flags, and browser/Python encryption interoperability. The browser acceptance test uses a plainly labelled mock attestation; it is not a real Sigstore test. Real hosted-runner, Docker, GitHub attestation, and live Telegram acceptance must be reported separately from local synthetic checks. [GitHub Actions terms](https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#actions) restrict use of hosted runners to the software project's lifecycle. A fork does not remove these restrictions; this preview must not be marketed as unrestricted free production hosting. [Cloudflare Quick Tunnels](https://developers.cloudflare.com/tunnel/get-started/quick-tunnels/) are also intended for testing and development. The helper/workflows are suitable for evaluating this feature; production service eligibility remains a separate deployment requirement. ## Maintainer release sequence 1. Commit and review the collector, supervisor, container definition and tests. 2. Pin that collector commit in `sealed-collector.yml`, then commit/review the reusable workflow. Never silently derive the checkout from the caller SHA. 3. Pin the reusable workflow commit in `sealed-witness.yml` and add its workflow/collector SHA pair to `sealed_policy.json` in a trusted release. 4. Publish all referenced commits and the helper, then test an independent fork and the real GitHub certificate. Do not squash away commits referenced by these pins unless the references are regenerated and published again. See [reusable workflows and attestations](https://docs.github.com/en/actions/how-tos/secure-your-work/use-artifact-attestations/increase-security-rating) for the distinction between the caller repository and the upstream signer. --- # Telegram · Barcha suhbatlarni tergov qiling Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/cases/ Telegram bo'ylab kanallar, guruhlar, shaxsiy suhbatlar va botlar bo'ylab end-to-end tergov o'tkazing: butun hisobni qamrab olish, tarix, odamlar, havolalar, fayllar, vaqt chiziqlari va tasdiqlangan dalillar. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Kanallar, guruhlar, shaxsiy chatlar va botlar bo'ylab butun bir ish: yig'ing, bog'lang, xronologiyani tiklang, topshiring. Bitta to'qima hodisa, boshidan oxirigacha. Yig'ish, qidiruv va shaxs profillari yozuvlarni topadi, [Case Board](https://phishdestroy.github.io/TgWitness/uz/docs/case-board/) ularni tartibga soladi, [Report studio](https://phishdestroy.github.io/TgWitness/uz/docs/reports/) taqdim etadi. KO'RILGAN ISH / O'ZGARTIRILGAN TO'LOV MANZILI ### Bir hodisa. To'rt suhbat. Qoldiq izni qayta tiklash. Kanal posti botga ishora qiladi. Guruh yangi to'lov havolasi haqida gaplashadi va bot uni ko'rsatadi. Post tahrirlanadi, shaxsiy chat havolani takrorlaydi, guruhdagi xabar yo'qoladi. Har bir versiyani kim joyladi?Havo kim paydo bo'ldi?Qaysi fayl saqlangan?Nima o'zgardi va qachon? Tarixni yuklash, AI, MCP, OCR va webhook'lar: [Arxiv bilan ishlash](https://phishdestroy.github.io/TgWitness/uz/docs/archive/). ## 1. Butun hisob bo'ylab qamrovni o'rnatish Butun hisob doirasi faqat maxsus hisobda. Asosiy hisobga tanlangan chatlar yoki papka beriladi. 1. [Hisobni ulang](https://phishdestroy.github.io/TgWitness/uz/docs/accounts/) o'z ish maydonida. Ish raqami, hisob ID, ish maydoni va kalit barmoq izini yozib qo'ying. 2. **Manbalar → Kuzatuv doirasi → Tergov rejimi**: **Butun hisob**, to'rtala manba turi, **O'z harakatlari**. Har bir yangi chatning profili va oxirgi **200 ta ko'rinadigan xabar**i saqlanadi. **Doirani saqlash** va tasdiqlang. 3. **Chatlarni yuklash** va hisobning chatlar ro'yxati bilan solishtiring. Cheklov 1,000 ta suhbat (**Parametrlar → Hisob ro'yxatidan o'qiladigan chatlar**da 20,000 gacha); undan ortiq chatlar faollashganda ko'rinadi. 4. **Yozib olish sozlamalari** → **Barcha ko'rinadigan faollik**, ilova cheklovlari va disk joyini tekshiring. Boshlang, so'ng bitta xabar, bitta tahrir va bitta o'chirish bilan sinang. KanalGuruhlarShaxsiy suhbatlarBotlar BIR AKKAUNT / BIR IMZO KALITI**Tanlangan va akkauntda ko'rinadigan barcha faoliyat → bitta jurnal** Xabarlar · tahrirlar · o'chirish bildirishnomalari · ko'rinadigan munosabatlar · a'zolik voqealari · o'z harakatlari "Butun hisob" bu hisob ocha oladigan har bir chat, istisnolardan tashqari. Maxfiy chatlar yo'q. Yangi chatlar paydo bo'lganda qo'shiladi; eski tarix avtomatik yuklab olinmaydi. ## 2. Tarixni olish va fayllarni saqlash Case Board to'plamini yarating va muhimlarini xatcho'p qiling. Manbalar reyestrini yuriting: chat ID, sarlavha, hisob, rol, jonli yozib olish boshlanishi, tarix natijasi, media natijasi, bo'shliqlar. | Kerak | Panelda harakat | U nimani taqdim etadi | | --- | --- | --- | | Yoqilgan suhbatlardagi tarix | Manbalar → To'liq tarixni yuklash | Mavjud avvalgi xabarlar ish maydonining jurnaliga kiritiladi, to'xtatish/davom ettirish va imzolangan ijro hisobotiga ega. [Tarix bo'yicha yo'riqnoma](https://phishdestroy.github.io/TgWitness/uz/docs/reference/history/). | | Jurnalning mavjud suhbat konteksti | Manbalar → Yozuv sozlamalari → Tarixni snapshot qilish | So'nggi xabarlar imzolangan yozuvlar sifatida. Standart 500, **Parametrlar → Eng katta tarix snapshot'i**da 10,000 gacha. | | Hozirda ko'rinadigan bitta suhbatning to'liq tarixi | To'liq suhbat eksporti → To'liq suhbatni eksport qilish, yoki Suhbatlar → Suhbatni eksport qilish | `chat.json` va `chat.html` bilan alohida imzolangan to'plam, har bir chatga bittadan. | | Yangi suhbat paydo bo'lganda kontekst | Kuzatuv doirasi → Yangi suhbat yoki bot paydo bo'lganda | Uning profili va 1,000 tagacha so'nggi xabar (Tergov rejimida 200). Mavjud chatlarga qo'llanmaydi. | | Ilova baytlari | Ko'rinadigan ilovalarni yuklab oling + har bir tur bo'yicha limitlar | SHA-256 va o'lcham bilan `media.saved` ni qidiring. Navbatda, o'tkazib yuborilgan yoki muvaffaqiyatsiz saqlanmaganini bildiradi. | Chat eksporti jurnal yoki shaxs profillariga kirmaydi. TgWitness ichida eski tarixni qidirish uchun **To'liq tarixni yuklash** yoki snapshot'lardan foydalaning. Bu yerda: kanal, guruh, bot chati va shaxsiy chat, shuningdek hisob-faktura fayli va uning xeshi. Yozib olishdan oldin o'chirilgan narsa yo'qolgan. ## 3. Rivojlanayotgan suhbat va o'z harakatlaringizni saqlang Ishlashda davom etsin. Qizg'in chatlarni ustuvorlik uchun yulduzcha bilan belgilang, **Yozib olish sozlamalari → Qayta tekshirish**da qayta tekshirishni sozlang va `recheck.completed`, FloodWait hamda media natijalarini kuzating. **Chatlar → Profil → Profilni hozir saqlash** chat tavsifi, bot buyruqlari va boshqa metama'lumotlarni saqlaydi. **Botni yoki taklifni ish yurituvi doirasida kuzatish** 1. **Chatlar → Telegram havolasini ochish**, avval oldindan ko'rishni saqlang. Havola va oldindan ko'rish imzolangan yozuvga aylanadi. 2. Kerak bo'lsa, **Qo'shilish / ochish va kuzatish** chatga qo'shiladi yoki botni boshlash parametri bilan ishga tushiradi. 3. Harakatni hujjatlashtirish uchun paneldan javob bering yoki **Tugmani bosish**dan foydalaning. Bot javobi bilan `interaction.requested` va `interaction.result` olasiz. Bular haqiqiy harakatlar. Boshqa ilovada bosilgan tugmalar ko'rinmaydi, faqat bot javobi. Veb-ilovalar, to'lovlar yoki telefon/joylashuv yo'q. ## 4. Suhbatlar bo'ylab odamlar, havolalar va fayllarni kuzatib boring 1. **Jurnal**, **Barcha manbalar**, ibora, domen yoki foydalanuvchi nomini qidiring. Natijalarni oching va **Taxtaga** yuboring. 2. **Chatlar → Odamlar → Profillarni yoqish**, shaxsni tanlang: ismlar tarixi, javoblar, faollik, **Shuningdek…**, havolalar, hamyonlar, telefonlar. Iqtibos keltirilgan yozuvlarni oching. 3. Xuddi shu raqamli foydalanuvchi ID'sini boshqa chatlarda kuzating. Mos ism, hamyon yoki avatar iz, dalil emas. 4. Fayl xeshlarini solishtiring. Bir xil SHA-256 = bir xil baytlar. Ularni kim ulashgani boshqa savol. ISH XARITASI / MANBALARGA E'TIBOR BERINGBadiiy holat · jonli grafika emas KANAL / E'LON**Asl → tahrirlangan manzil** Yozuvlar #101, #188 Xabar #84 · jo'natuvchi aniqlanmagan GURUH / AMALIYOTLAR**Foydalanuvchi 71001 yangi havolani joylaydi** Yozuv #146 · xabar #309 Saqlangan fayl kvitasi #151 BOT / BUYURUQ SUHBATI**Bir tugma o'sha manzilga yo'naltiradi** Yozuv #173 · xabar #12 Tugma metama'lumotlari qaytarildi MAXFIY / KUZATUV**Foydalanuvchi 71001 manzilni takrorlaydi** Yozuv #205 · xabar #922 Saqlangan fayl kvitasi #209 To'rtta suhbat turli kuzatuvlarni taqdim etadi. Har bir ulanish uchun manba yozuvlarini kuzating; kanal postining jo'natuvchisi aniqlanmagan. Raqamli identifikatorlar va yozuv havolalari ushbu bosqichma-bosqich ko'rsatma uchun ixtiro qilingan. Ushbu tushuntiruvchi xarita qidiruv natijalari, profillar va tekshirilgan yozuvlarni qanday bog'lashni ko'rsatadi; Case Board tegishli kartalar va manba havolalarini saqlaydi. | Ulanish | Kuzatuvni qo'llab-quvvatlash | Saqlash uchun xulosa | | --- | --- | --- | | Xuddi shu Telegram akkaunti | Foydalanuvchi ID 71001 #146 guruhida va #205 shaxsiy suhbatida | Ikkala chatda bir xil yuboruvchi ID. U haqiqatda kimligi boshqa savol. | | Takroriy manzil | `pay.example.invalid/new` #146-da, tugma metadatalari #173-da, tahrirlangan post #188 va #205-da | Bir xil havola to'rt joyda. Uni kim boshqarishi uchun boshqa manbalar kerak. | | Bir xil fayl baytlari | Tugallangan media kvitansiyalari #151 va #209 dagi SHA-256 qiymatlari teng | Ikkala fayl baytma-bayt bir xil. | Profillar faqat *bu ish maydoni*da biror narsa yozgan odamlarni qamraydi, a'zolar ro'yxatini emas. Har bir faktga iqtiboslar: **Parametrlar → Har bir faktga keltirilgan yozuvlar**. ## 5. Ketma-ketlikni qayta tiklang va bo'shliqlarni belgilang **Chatlar**da versiyalar, so'ng **Jurnal**da **Barcha manbalar** + **Tahrirlar**, **O'chirishlar**, **Qamrov**. Xronologiyaga ikkala vaqtni yozing: Telegram sanasi va kuzatilgan vaqt. 1. 09:00 · #101**Kanal posti qayd etildi** Asl manzil saqlanadi. 2. 09:12 · #146 / #151**Guruh boshqa havolani taqdim etadi** Foydalanuvchi 71001 uni joylaydi; ilova yuklab olinadi. 3. 09:16 · #173**Bot bir xil manzilni ko'rsatadi** Saqlangan klaviatura metama'lumotlari havolani o'z ichiga oladi. 4. 09:20 · #188**Kanal e'lonidagi o'zgarishlar** Asl va tahrirlangan kuzatuvlar ikkalasi ham saqlanadi. 5. 09:24 · #205 / #209**Shaxsiy keyingi kuzatuv uni takrorlaydi** Saqlangan ilova #151 bilan bir xil to'liq SHA-256 ga ega. 6. 09:28 · #231**Guruhni o'chirish to'g'risidagi bildirishnoma keladi** Avvalgi kuzatuv hanuzgacha amalda; na o'chiruvchi, na aniq o'chirish vaqti taqdim etilmagan. Illyustrativ kuzatuv vaqtlari va manbalari. Ushbu yozuvlar orasida boshqa jurnal yozuvlari mavjud. Jurnal tartibi kelish tartibi, voqealar sodir bo'lgan tartib bo'lishi shart emas. Jonli yozuvlar, snapshot'lar, tiklangan xabarlar, o'chirishlar va "qayta tekshiruvda yo'q"ni alohida saqlang va har bir bo'shliqni noma'lum deb belgilang. ## 6. Ishni boshqa yig'ish hisoblariga ham kengaytirish Har bir hisobga bitta ish maydoni, xuddi shu qadamlar. Har birining rolini va barmoq izini yozing. Xabar raqamlari hisobga bog'liq, shuning uchun doim qaysi ish maydoni va chat ekanini ayting. [Hisoblar guruhi](https://phishdestroy.github.io/TgWitness/uz/docs/groups/) holatni ko'rsatadi, sozlamalarni ulashadi va hammasini birga eksport qiladi, har biri o'z jurnali va kaliti bilan. Hisoblararo xronologiyani eslatmalaringizda o'zingiz tuzasiz. Uzoq ishmi? [Mustaqil guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/witness/) qo'shing va har bir hisob haqiqatan nimani ushlashini sinang. ## 7. Tekshiriladigan ish paketini yetkazib bering Har bir ish maydonidan imzolangan ZIP (doim to'liq jurnal, filtrlar ahamiyatsiz), shuningdek shaxs profillari, chat eksportlari va fayllar. ``` CASE-001/ # assembled by the analyst case-notes.md # question, findings, alternative explanations sources.csv # every chat, role, acquisition result and gap timeline.csv # account + chat + message + seq + both times workspace-A/ evidence.zip # complete signed observation journal retained-checkpoint.json profiles-operations.json # separately signed people profiles history-channel.zip # signed current-history export history-group.zip verification.txt workspace-B/ # separate journal and trusted fingerprint witness/ # retained checks, journal and signed posts SHA256SUMS # hashes of the delivered files ``` Barmoq izlarini alohida yuboring. Hammasini o'z ish maydoniga nisbatan tekshiring: ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json python -m tgwitness.verify profiles-operations.json --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --evidence evidence.zip python -m tgwitness.verify history-channel.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 ``` Tekshiruvchi natijasi, asl fayllar, qamrov va topshirish yozuvini topilmalaringiz bilan saqlang. Hisobotni Report studio'da yozing. Qabul qiluvchiga kamroq kerak bo'lsa, [qisqartirilgan topshirish](https://phishdestroy.github.io/TgWitness/uz/docs/handover/) tayyorlang. --- # Telegram · Case Board yarating Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/case-board/ Saqlangan kuzatuvlar, aniq muhim qismlar va harakat bo'laklarini shaxsiy doskada to'plang, ularni jamoangiz bilan muhokama qiling va to'plamni taqdim eting. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Saqlangan xabarlarni jamoangiz birga ishlaydigan ishga aylantiring. Xatcho'plar, aniq iqtiboslar, kesimlar va muhokama, har biri o'z manbasiga bog'langan. Har bir o'zgarish imzolangan tahrir. ## Xabardan ish kartasiga 1. **Tergov → Case Board** (Standart yoki Ekspert rejimi). Ish uchun to'plam yarating. 2. **Jurnal** yoki chatda **Taxtaga** (yoki **B**) ni bosing. Karta Kiruvchilarga tushadi, unga sarlavha bering va ko'chiring. 3. Xabardagi matnni belgilang, **Belgilash → taxta** aniq iqtibos va versiyani saqlaydi. Nima uchun muhimligini yozing. 4. Muhokama qiling, holat belgilang, kerak bo'lganda manbaga qayting. **Taqdimot** jamoani bosqichma-bosqich olib o'tadi. ### O'zgartirilgan bitta to'lov havolasiga rioya qiling Sun'iy misol · mahalliy illyustratsiya 1. **Yozib olish.** Saqlangan kuzatuv #142 va uning xabar versiyasini oching. 2. **Imzo.** Iqtibos, manba havolasi va savolingizni kartochkaga yozib qo'ying. 3. **Ko'rib chiqish.** Jamoa izohini qo'shing va kartani Ko'rib chiqishga ko'chiring. 4. **Taqdim eting.** Kolleksiyani bosqichma-bosqich ko'rib chiqing va keltirilgan manba kontekstini oching. #### Saqlangan kuzatuv #142 "Yangi to'lov havolasidan foydalaning." Operatsiyalar chat · xabar 38 · kuzatildi 09:12 UTC #### Karta: manzil o'zgartirildi > Yangi to'lov havolasidan foydalaning. Savol: oldingi versiyada qaysi manzil paydo bo'lgan? #### Jamoa ko'rib chiqishi Tahlilchi: kuzatuv #101 bilan solishtiring. Holat: Ko'rib chiqish · tahrir saqlangan #### Manba konteksti Karta → saqlangan versiya → avvalgi kuzatuv Izoh va Telegram kuzatuvi alohida aniqlanishi mumkin bo'lib qoladi. ## Foydali diapazonni bir marta saqlang Ikki xabarni Shift bilan bosib **Oradagi kesim**, **Vaqt bo'yicha kesim**dan foydalaning yoki joriy Jurnal filtrlarini saqlang. **Xatcho'pdan keyin qo'shilgan yozuvlarni ko'rsatish** keyin kelganlarni ko'rsatadi. Vaqt kesimlari kuzatuv vaqtidan foydalanadi; xabar ID kesimlari o'sha xabarlarni o'zgarganda kuzatib boradi. ## Har bir hamkasbga to'g'ri rolni bering **Ko'rib chiquvchi** o'qiydi, **Tahlilchi** kartalar va izohlar qo'shadi, **Operator** to'plamlar va qarorlarni ham boshqaradi. Chat ruxsatlari kartalarga ham tegishli. ## Ishni yetkazib beriladigan hujjatga o'tkazing Kesimlar imzolangan JSON yoki CSV sifatida eksport qilinadi. Hisobotlarga xatcho'plar, kesimlar va izohlar kirishi mumkin, buni [Report studio](https://phishdestroy.github.io/TgWitness/uz/docs/reports/)'da sozlang. Cheklangan qabul qiluvchi uchun [topshirish](https://phishdestroy.github.io/TgWitness/uz/docs/handover/)dan foydalaning. Batafsil: [Case Board ma'lumotnomasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/). --- # Telegram · Hisobotni loyihalash Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reports/ Hisobot ma'lumotlarini tanlang, sakkiz dizayndan birini va uning mazmunini tanlang, so'ngra ko'rinishini ko'rib chiqing va HTML, imzolangan PDF yoki to'liq dalillar paketini eksport qiling. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) O'quvchini ish savolidan to'g'ridan-to'g'ri saqlangan yozuvlarga olib boring. Report studio siz tanlagan ma'lumotlar, o'zgarishlar tarixi, diagrammalar va topilmalaringizni birlashtiradi. Sakkizta dizayn, HTML va mahalliy PDF. Har bir HTML, PDF va JSON hisobot kalitingiz bilan muhrlanadi. ## Uch bosqichda hisobot tuzing 1. **Eksportlar → Sozlash va oldindan ko'rish → Ma'lumotlar**: butun ish maydoni yoki chatlar, mualliflar, sanalar (UTC, TgWitness yozuvni ko'rgan vaqt) va yozuv turlarini tanlang. 2. **Dizayn va mazmun**: dizayn va nima kirishini tanlang: diagrammalar, ishtirokchilar, transkript, o'zgarishlar, Case Board elementlari, ish tafsilotlari va eslatmalaringiz. 3. **Oldindan ko'rish**: sonlar, faollik, namunalar va yo'qolgan ID oraliqlarini tekshiring. Saqlang, so'ng kerakli formatni yuklab oling. ### O'xshash saqlangan materialni o'quvchi uchun tartibga soling Sun'iy misol · sxematik tuzilma, generatsiya qilingan hisobot emas 1. **Tanlang.** Ish uchun ikkita suhbat va kuzatuv davrini tanlang. 2. **Yozish.** Tuzilmani va savolga javob beradigan bo'limlarni tanlang. 3. **Oldindan ko'rish.** Tanlangan sonlarni va saqlangan oldingi hamda keyingi matnni ko'rib chiqing. 4. **Tekshirish.** Yakuniy faylni hosil qiling va uning imzosini ishonchli ish maydoni barmoq izi bilan solishtiring. #### Tanlangan kuzatuvlar 2 ta suhbat · 1 ta kuzatuv kuni Xabarlar, tahrirlar va o'chirish bildirishnomalari #### Hisobot tuzilmasi ##### To'lov manzili o'zgartirildi Holat savoli → doira → natijalar → yozuvga havolalar **Xabar konteksti** Kuzatuv #142: "Yangi to'lov havolasidan foydalaning." **Saqlangan o'zgarishlar** Avval: old.example.invalid → Keyin: new.example.invalid #### Tanlovni ko'rib chiqing 18 ta kuzatuv · 2 ta saqlangan tahrir Yuborilgan, tahrirlangan va kuzatilgan vaqtlar alohida yorliqlarga ega. #### Yakuniy topshiriladigan hujjat Imzolangan PDF + imzolangan JSON, yoki o'qiladigan hisobotga ega imzolangan ZIP Qabul qiluvchi fayl va ishonchli barmoq izini tekshiradi. ## O'qish uslubini tanlang **Classic, Editorial, Briefing, Analytics, Technical, Overview, Reading series, and Ledger & margin**: bir xil yozuvlar, boshqa ko'rinish. Almashtirganda tanlov va eslatmalaringiz saqlanadi. 25 tildan istalgani. PDF'lar birga keladigan shriftlar bilan quriladi, brauzer kerak emas. Xitoy, yapon va koreys tillari uchun serverda Noto Sans CJK kabi shrift kerak (butun tizimda yoki `TGWITNESS_FONT_DIR`da), aks holda faqat HTML va JSON olasiz. ## O'zgarishni uning konteksti bilan o'qing Tahrirlar oldin va keyinni, o'chirishlar oxirgi saqlangan versiyani ko'rsatadi. Javoblar, uzatishlar, reaksiyalar, tugmalar va ilovalar o'z havolalarini saqlaydi. Dizayn oldindan ko'rishi dastlabki 50,000 yozuvdan foydalanadi, ma'lumotlar oldindan ko'rishi hammasini aniq sanaydi. Yakuniy sahifa tartibi uchun PDF yarating. ## Qabul qiluvchining nusxasini ongli ravishda tanlang Filtrlar faqat hisobotni shakllantiradi, dalil ZIP'ida baribir to'liq jurnal va fayllar bor. Qabul qiluvchi kamroq olishi kerak bo'lsa, [qisqartirilgan topshirish](https://phishdestroy.github.io/TgWitness/uz/docs/handover/)dan foydalaning. Batafsil: [hisobot mazmuni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/), [eksportni tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/exports/). --- # Telegram · Ulashish uchun nusxa tayyorlang Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/handover/ Qabul qiluvchi qaysi yozuvlar va maydonlarni olishi mumkinligini tanlang, tayyor nusxani ko'rib chiqing va uning imzolangan manifesti hamda manba jurnalining chegarasini tasdiqlang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Faqat keraklisini ulashing, asl nusxa daxlsiz qoladi. Topshirish alohida imzolangan ekstrakt: chatlar va odamlarni tanlang, shaxslar yoki matnni yashiring, fayllar va jamoa eslatmalarini tanlang. Manifest nima saqlangan, qisqartirilgan va chiqarib tashlanganini qayd etadi. ## Qabul qiluvchining ekstraktini tayyorlang 1. **Eksportlar → Topshirish ekstrakti**: maqsadni yozing, chatlar va davrni tanlang, ismli odamlar kerak bo'lsa **Tanlangan chatlardagi odamlarni yuklash**. 2. Qolgan hammasi: taxalluslar, chiqarib tashlangan yoki yozilganidek. Matn va fayllar alohida kalitlar; telefonlar va e-pochtalarni niqoblash mumkin. 3. Case Board: hech narsa, xatcho'plar va kesimlar yoki izohli kartalar. Jamoa ismlarini taxalluslarga almashtirish mumkin. 4. **Topshirish ekstraktini yuklab olish**, oching, tekshiring, yuborishdan oldin ko'zdan kechiring. ### Bir asl nusxa, ataylab ulashish uchun mo'ljallangan nusxa Sun'iy misol · faqat identifikatsiya uchun illyustratsiya 1. **Tanlang.** Ish suhbatini kiritib, ekstrakt qaysi shaxs haqida ekanligini aniqlang. 2. **Minimalizatsiya.** Ulashish nusxasida boshqa ishtirokchi qanday ko'rinishini tanlang. 3. **Tekshirish.** Yuborishdan oldin hosil qilingan arxivning hisobotini va yozuvlarini oching. 4. **Ulaing.** Tekshirilgan nusxani yetkazib, uning ishonchli barmoq izini alohida xabar qiling. #### Asl kuzatuv Nora · foydalanuvchi 71002 "Men yangilangan havolani oldim." Manba jurnali ushbu saqlangan kuzatuvni saqlaydi. #### Qabul qiluvchining nusxasi Yozib olinganidek ko'rsating: Nora · foydalanuvchi 71002 · "Men yangilangan havolani oldim." Psevdonim: P01 · "Men yangilangan havolani oldim." Omit: ushbu ishtirokchining xabari nusxadan chiqarib tashlanadi. #### Haqiqiy fayllarni tekshiring report.html va records.json fayllarini o'qing. Identitetlarni, matnni, ilovalarni va ixtiyoriy jamoa izohlarini tekshiring. #### Imzolangan ekstrakt Tanlov + fayl hashlar + imzolangan manifest Manba jurnali chegarasiga bog'langan alohida paket ## Boshqaruv elementlarini birgalikda ishlating | Boshqaruv | Matnga ta'sir | | --- | --- | | Odamlar | Tanlangan odamlar ismi bilan qoladi; boshqalar taxallus oladi yoki chiqarib tashlanadi. | | Matn | Barcha matn, faqat tanlangan odamlar va hisobingiz matni yoki hech narsa. | | Fayllar | Tanlangan odamlar va hisobingiz fayllari, barcha ko'rsatilgan fayllar yoki hech narsa. | | Holat paneli | Hech narsa, xatcho'plar va kesimlar yoki muhokamali kartalar. | Matn va fayllarni ham o'qing: taxallus xabar yoki ilova ichida yozilgan ismlarni olib tashlamaydi. Tanlangan fayl yo'q bo'lsa, uni tiklang yoki ilovalarni chiqarib tashlang. ## Matnni mustaqil ravishda tekshirish mumkin bo'lgan holda saqlang ``` python -m tgwitness.verify handover.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 ``` Asl arxiv va nazorat nuqtalarini o'zingiz saqlang. Qabul qiluvchi butun ish maydonini olmasdan o'z nusxasini tekshira oladi. Dizayn: [Report studio](https://phishdestroy.github.io/TgWitness/uz/docs/reports/). Ishonchli ma'lumotnomalar: [eksportni tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/exports/). --- # Telegram · Hisoblar guruhini boshqarish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/groups/ Guruh ish maydonlarini solishtiring, manba toping, kuzatuv davrlarini ko'rib chiqing va har bir hisob uchun istisnolar bilan umumiy sozlamalarni qo'llang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Bir nechta hisobni birga ishlating, har biri o'z yozuvlari va kaliti bilan. Guruh ulanish holati, boshlash/to'xtatish, umumiy sozlamalar va eksportlarni bitta ekranga jamlaydi. Bir nechta hisob bitta ish ustida ishlaganda qulay. ## Guruh ko'rinishini oching Guruhni **Hisoblar**da oching. Har bir hisob holati, marshruti, kechikishi va oxirgi saqlangan xabarini ko'rsatadi. **E'tibor kerak** buzilganlarini sanaydi, **Tuzatish** sizni to'g'ri u yerga olib boradi. **Hammasini boshlash** / **Hammasini to'xtatish** amalga oshirishdan oldin so'raydi. **Guruh sozlamalari** umumiy, lekin hisobning o'z qiymatlari siz almashtirguningizcha qoladi. ### Guruh bo'ylab yo'nalish o'zgarishini ko'rib chiqing Sun'iy misol · ko'rgazmali tekshiruvlar va natijalar 1. **Tanlang.** Guruhni tanlang va qaysi hisoblar o'zgartirilishini ko'rib chiqing. 2. **Tayyorlaning.** Hisobning alohida qolishi kerak bo'lgan holatda uning o'z yo'lini saqlang. 3. **Tekshirish.** Taklif etilgan ulanishni sinovdan o'tkazing va o'lchangan natijalarni ko'rib chiqing. 4. **Qo'llang.** Saqlashdan oldin qayta tekshiring va har bir hisob bo'yicha natijani ko'rib chiqing. #### Case jamoasi Kanal yig'uvchi · Guruh yig'uvchi · Manba hisob 3 alohida ish maydonchalari #### Ko'rib chiqilgan tanlov 2 ta hisob taklif etilgan yo'nalishni tanlaydi. Reference account o'z yo'nalishini saqlab qoladi. #### Tayyorgarlik tekshiruvlari Kanal yig'g'ichi: Telegram transporti 84 ms Guruh yig'uvchisi: Telegram transporti 91 ms Ushbu raqamlar misol uchun ixtiroiy o'lchovlardir. #### Ilova natijalari Kanal yig'g'ichi: yo'l saqlangan, kuzatuv davom ettirildi. Guruh yig'uvchi: qayta tekshirish muvaffaqiyatsiz bo'ldi, oldingi sozlamalar tiklandi. Reference hisob: o'z yo'li saqlangan. ## Yo'nalishni ko'rib chiqish bosqichi bilan o'zgartiring 1. **Guruh marshrutini o'zgartirish**, tur va sozlamalarni tanlang. 2. **Tanlovni ko'rib chiqish**: qaysi hisoblar o'zgarishini va qaysilarining o'z marshruti borligini ko'ring. 3. **Tayyorlash va tekshirish** yangi Telegram ulanishini sinaydi, imkon bo'lsa chiqish IP'sini ham. 4. **Tekshirilgan ulanishni qo'llash** va har bir natijani ko'ring. Ishlayotgan hisoblar davom etadi, bo'sh turganlari bo'sh qoladi. Kechikish Telegram ulanishini o'rnatish vaqti, chiqish IP'si esa tekshiruv paytida marshrut ko'rsatgan manzil. Natijalar hisoblar bo'yicha farq qilishi mumkin. ## Kesishgan kirishdan foydalaning **Bir nechta hisob ko'radigan chatlar** umumiy manbalar va ularning qamrovini sanaydi. Kanallar va superguruhlarni **… hisob bilan eksport** orqali bir nechta hisob birdaniga eksport qilishi mumkin. Shaxsiy chatlar va oddiy guruhlar yo'q, ularning xabar raqamlari hisobga bog'liq. ## Guruhni paket sifatida eksport qiling **Guruhni eksport qilish** har bir hisobning imzolangan eksporti va ularning imzolangan ro'yxati bilan bitta ZIP beradi. Har biri tekshiruv uchun o'z barmoq izini saqlaydi. Birlashgan xronologiyani baribir o'zingiz tuzasiz. Keyingisi: [hisobotlar](https://phishdestroy.github.io/TgWitness/uz/docs/reports/), [Case Board](https://phishdestroy.github.io/TgWitness/uz/docs/case-board/), [eksportlarni tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/exports/). --- # Telegram · Dalillar qanday ishlashini ko'ring Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/concepts/ Xabarni ushlashdan tekshiruv nuqtasigacha kuzating. Namuna yozuvni o'zgartiring, uning SHA-256 zanjirini qayta hisoblang va saqlangan tekshiruv nuqtasi nima aniqlashini ko'ring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Xabarlar o'zgaradi. Ko'rganingiz haqidagi yozuv o'zgarmasligi kerak, va buni istalgan kishi tekshira olishi kerak. Quyida ikkita kichik tajriba. Soxta xabarlar, hammasi brauzeringizda ishlaydi, Telegram'ga hech narsa ketmaydi. ## Suhbat eksportidan tekshiriladigan yozuvga [Telegram Desktop eksporti](https://telegram.org/blog/export-and-more) hozir ko'rinib turgan tarixni HTML yoki JSON sifatida saqlaydi. TgWitness o'zgarishlarning uzluksiz jurnalini, har bir yozuvdagi imzolarni va boshqalar solishtira oladigan nazorat nuqtalarini qo'shadi. | Vazifa | Telegram Desktop eksporti | TgWitness | | --- | --- | --- | | Saqlangan suhbatlarni o'qish | HTML yoki JSON tanlangan media bilan | Saqlangan suhbatlar, qidiriladigan jurnal va oflayn hisobotlar | | Vaqt o'tishi bilan o'zgarishni kuzating | Eksport qilganda mavjud bo'lgan tarix | Eski versiyalar, keyingi tahrirlar va o'chirishlar, hammasi saqlanadi | | Topshiruvdan so'ng fayllarni tekshiring | Standart HTML/JSON eksport fayllari imzolangan emas | Imzolangan manifest, imzolangan yozuvlar va muhrlangan hisobotlar, ishonchli kalit bilan tekshiriladi | | Oldingi saqlangan holat bilan solishtiring | Alohida referens nusxa yoki xeshni saqlang | Imzolangan tekshiruv nuqtalari, alohida guvoh va ixtiyoriy tashqi vaqt belgilari | Taqqoslash 2026-yil 2-noyabr holatiga ko'ra [Telegram Desktop eksport kodi](https://github.com/telegramdesktop/tdesktop/tree/768d47cda6c7f447c10a25d1f363279493a90ed7/Telegram/SourceFiles/export/output)ga asoslangan. ## Bir xabar, uch kuzatuv Yangi xabar, tahrir va o'chirish uchta alohida yozuvga aylanadi. Tahrir birinchisining ustidan yozmaydi, o'chirish ham uni yo'q qilmaydi. 01 / XABAR SAFARIIllyustrativ ketma-ketlik Telegram delivers an update to the collector, which appends a journal record. · Telegram · Yig'uvchi · Jurnal · yangilash → · qo'shish → Joriy suhbat ko'rinishi Xabar #42 Xabar o'chirildi Xabar suhbat ko'rinishidan yo'qoldi. KUZATISH JURNALI 3 yozuv 1. 01 `message.new` 10:00 da uchrashing ✓ 2. 02 `message.edited` 11:00 da uchrashing ✓ 3. 03 `message.deleted` #42 uchun o'chirish bildirishnomas ✓ Uchala qabul qilingan kuzatuvlar jurnalda saqlanadi. Allaqachon tanlangan bitta manba uchun soddalashtirilgan yo'l. Operatsion yozuvlar ham haqiqiy jurnalni baham ko'radi. Qayd qilish hisob qaydnomasi nima ko'rishi va Telegram nima yetkazishiga bog'liq. Telegram xabarni kim yoki aynan qachon o'chirganini aytmaydi. TgWitness taxmin qilish o'rniga bu maydonlarni bo'sh qoldiradi. ## Yozuvni o'zgartiring. Hashni kuzating. Har bir yozuvda oldingisining xeshi bor. Boshqa joyda saqlangan nazorat nuqtasi jurnal uzunligi va oxirgi xeshni mahkamlaydi. 02 / HASH-ZAJIR SANDBOXHaqiqiy SHA-256 · namunaviy yozuvlar Yozuv 01**Xabar qabul qilindi**`h₁ = SHA-256(e₁)`64 ta nolga havolalar Yozuv 02**11:00 da uchrashing**`h₂ = SHA-256(e₂)`h₁ ni o'z ichiga oladi Yozuv 03**O'chirish kuzatildi**`h₃ = SHA-256(e₃)`h₂ ni o'z ichiga oladi Boshqa joyda saqlangan**3 yozuv · bosh `h₃`**Ushbu belgilangan chegarani taqdim etilgan jurnal bilan solishtiring. Voqeani o'zgartirish uning hashini o'zgartiradi. Zanjirni qayta qurish uning boshini o'zgartiradi. Oxirini olib tashlash uni saqlangan tekshiruv nuqtasidan qisqaroq qiladi. **2-yozuvni va to'liq hashlarni tekshiring** Bu misolda ko'rsatilgan aniq UTF-8 JSON hashi. Qadriyatlar tasodifiy; to'qqizta maydon va serializatsiya jurnal formatiga mos keladi. ``` ``` Saqlangan yozuv 2 xesh `` Yozuv 2 hashni qayta hisobladi `` Ushbu sandbox hashlarni hisoblaydi, imzolarni emas. Haqiqiy verifikator har bir voqeaning Ed25519 imzosini, ketma-ketligini va bog'lanishini ham tekshiradi. Hashlarni qayta tuzish ishonchli kalit ostida haqiqiy imzolarni yaratmaydi. ## Asl qoidalar, bir necha satrda HASH + IMZO h0 = 064 hi = hex(SHA-256(C(ei))) σi = Ed25519.Sign(sk, unhex(hi)) **C** to'qqizta hodisa maydoni UTF-8 JSON ko'rinishida: kalitlar tartiblangan, ortiqcha bo'shliq yo'q, ASCII escaping yo'q, NaN/cheksizlik yo'q. `previous_hash` bu hi−1, h0 64 ta nol, imzolar digestning 32 ta xom baytini qamraydi. Maydonlar: `seq`, `observed_at`, `source_at`, `kind`, `chat_id`, `message_id`, `actor_id`, `payload`, `previous_hash`. To'liq spetsifikatsiya: [hodisa kodlanishi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#event-canonicalization). SAQLANGAN NAZORAT NUQTASI Nexport ≥ Ncheckpoint hexport[Ncheckpoint] = Hcheckpoint Nazorat nuqtasi imzosini mahkamlangan kalit bilan tekshiring, so'ng uni jurnal bilan solishtiring. Keyingi eksport uzunroq bo'lishi mumkin, lekin nazorat nuqtasida mos kelishi shart. ## Uchta savol, uch xil tekshiruv [01 / BUTUNLIK**Bu yozuv o'zgardi-mi?** Siz ishonadigan kalitga nisbatan xeshlar va imzolar.](https://phishdestroy.github.io/TgWitness/uz/docs/exports/)[02 / DAVOMI**Avval nimalar saqlangan edi?** Eksportni guvoh saqlagan nazorat nuqtalari bilan solishtiring.](https://phishdestroy.github.io/TgWitness/uz/docs/witness/)[03 / ETKAZIB BERISH**Bu test voqealari yetib keldimi?** Sinov xabarlarini yuboring, tahrirlang va o'chiring, har bir hisob nimani ushlaganini ko'ring.](https://phishdestroy.github.io/TgWitness/uz/docs/cases/) Imzolar "o'zgartirilganmi" degan savolga, nazorat nuqtalari "avvalgisiga mos keladimi" degan savolga, sinov xabarlari "hammasini ushladikmi" degan savolga javob beradi. [Tekshiruv nimani isbotlaydi va nimani isbotlamaydi.](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) Keyingisi: boshidan ish paketigacha [butun hisob bo'yicha tergov](https://phishdestroy.github.io/TgWitness/uz/docs/cases/). [Export Clinic: watch the controlled Desktop experiment](https://phishdestroy.github.io/TgWitness/docs/export-clinic/). Compare the two-minute film, the original recording and seven pairs of test exports. Local modification is disclosed. --- # Telegram · Xavfsiz saqlang Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/security/ Sessiyalar, kalitlar va dalillar qayerda saqlanishini, nima qurilmangizdan chiqib ketishini, himoyalar nimani qamrab olishini va o'rnatishni qanday mustahkamlashni ko'ring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Kompyuteringizdan nima chiqadi, har bir sir nimani ochadi va himoyalar nimani qamraydi, nima esa sizning zimmangizda. **127.0.0.1**paneldagi manzil bo'yicha **256 bitli**tasodifiy panel tokeni **0**CDNlar, analitika yoki masofaviy shriftlar **Ed25519**har bir yozuvda imzo ## Hammasi shu yerda Kollektor, panel va har bir yozuv kompyuteringizda qoladi. Standart holatda faqat Telegram bilan bog'laniladi; qolgan hammasi alohida kalit. 06 / NIMA MASHINADAN CHIQADISizning o'rnatishingiz SIZNING KOMPYUTERINGIZ YOKI SERVERINGIZ **Panel**127.0.0.1:8787· egasi token **Yig'uvchi**har bir ish maydoni uchun bitta Telegram klient MA'LUMOTLAR KATALOGI **Jurnal**SQLite · hash zanjirli · imzolangan **Media**SHA-256 bo'yicha nomlangan fayllar **Ombor**Fernet · sessiya, API juftligi, imzolash kaliti, proksi - **Telegram**Har doim · sizning yo'nalishingiz bo'ylab Hisobning MTProto ulanishi: to'g'ridan-to'g'ri, SOCKS5, HTTP yoki MTProxy. IP ni yashirish rejimi ishlaydigan proksini kutadi. To'g'ridan-to'g'ri zaxira ulanish uchun uni aniq ruxsat etadigan rejim talab etiladi. - **Sayt tashqarisidagi nusxa**Ixtiyoriy · standart bo'yicha o'chirilgan Jurnal, fayllar va tekshiruv nuqtalari S3-mos omborga yuklanishdan oldin AES-GCM bilan shifrlanadi. Kalit sizda qoladi; ilovalar ularning kontent hashi emas, balki kalitli hashlar bo'yicha nomlanadi. - **Bildirishnomalar**Ixtiyoriy · standart bo'yicha o'chirilgan Suhbat sarlavhalari bilan muammolar va o'zgarishlar soni. Xabar parchalarini faqat ularni yoqganingizda yuboriladi. - **Vaqt tamg'asi vakolati**Ixtiyoriy · standart bo'yicha o'chirilgan Faqat imzolangan tekshiruv nuqtasining SHA-256 hash qadami va tasodifiy nonse. Xabarlar yo'q, suhbat nomlari yo'q. - **Guvoh**Ixtiyoriy · standart bo'yicha o'chirilgan Faqat o'qish uchun mo'ljallangan token yordamida imzolangan tekshiruv nuqtalarini va yozib olish hisoblagichlarini oladi. Suhbatlarni o'qiy olmaydi yoki sozlamalarni o'zgartira olmaydi. Standart bo'yicha: faqat Telegram ulanishi ushbu mashinadan chiqadi. Ixtiyoriy manzillar har bir ish maydoni bo'yicha sozlanadi. Xabar matni va media ma'lumotlari shifrlanmagan holda ma'lumotlar katalogida saqlanadi: uni disk shifrlash va fayl ruxsatnomalari bilan himoya qiling. ## Har bir sir nimani ochadi | Maxfiy | Qayerda saqlanadi | Nimani ochadi | Agar u oshkor bo'lsa | | --- | --- | --- | --- | | **Panel tokeni** | Ma'lumotlar katalogidagi `panel-token.txt`; brauzer uni har bir yorliq uchun saqlaydi | Har bir ish maydonidagi hamma narsa | TgWitness'ni to'xtating, `panel-token.txt` ni o'chiring, qayta ishga tushiring: yangisini olasiz | | **Telegram sessiyasi** | Vault, shifrlangan (`credentials.enc`) | Telegram akkaunti o'zi | Telegramda Sessiyani tugatish → *Sozlamalar → Qurilmalar* | | **Imzolash kaliti** | Vault, shifrlangan (`signing.enc`) | Yozuvlarni sizning barmoq izingiz ostida imzolash | Boshqa joyda saqlangan nazorat nuqtalari, guvoh va vaqt belgilari avval nima bo'lganini baribir ko'rsatadi | | **Ombor kaliti** | Ma'lumotlar yonidagi `vault.key` yoki tashqi asosiy kalit | Seyf | Sessiya va imzolash kaliti ham sizib chiqqan deb hisoblang | | **Witness tokeni** | Witness hostida | Faqat o'qish: nazorat nuqtalari va holat | Uni Guvoh sahifasida o'chiring, yangisini yarating | | **Off-site nusxa kaliti** | Ombor; tiklash uchun bir marta yuklab oling | Off-sayt nusxasi | Bucket'ga ham ega bo'lgan kishi uni ocha oladi: nusxani oshkor bo'lgan deb hisoblang | ## Qanday himoyalar qamrab olinadi ### qamrab olindi - O'zgartirilgan, olib tashlangan yoki tartibi buzilgan yozuv: xesh zanjiri yoki imzo buziladi. - Nazorat nuqtasini boshqa joyga saqlaganingizdan keyin qisqartirilgan yoki qayta qurilgan jurnal: nazorat nuqtasi mos kelmay qoladi. - Tokenni taxmin qilish: 256 tasodifiy bit, doimiy vaqtli solishtirish, daqiqasiga 15 ta xato va manzil bloklanadi. - Dushmanona chat mazmuni: matn matnligicha qoladi, hech qachon HTML emas; ilovalar fayl sifatida yuklab olinadi; panel boshqa saytlardan hech narsa yuklamaydi. - Tashqi seyf kaliti bilan o'g'irlangan ma'lumotlar katalogi: sessiyalar va kalitlar shifrlangan qoladi. ### Sizga qoldirildi - Asosiy token hamma narsani qila oladi. Boshqalarga cheklangan kirish bering va asosiysini o'zingizda saqlang. - Kompyuterda administrator bo'lgan kishi hamma narsani o'qiy oladi va jurnalni qayta imzolay oladi. Barmoq izi va nazorat nuqtalarini boshqa joyda saqlang. - TgWitness xabarlar va mediani shifrlamaydi. Diskni shifrlang, ruxsatlarni qattiqlashtiring. - localhost'dan tashqarida oddiy HTTP tokenni sizdiradi. HTTPS yoki SSH tunnelidan foydalaning. - Imzolar nima o'tkazib yuborilganini aytmaydi. O'z hisoblaringiz va manbalaringizda qamrovni tekshiring va yetkazishni sinang. Ruxsatlar, amal qilish muddati va sessiya cheklovlari bilan [ishga kirishni ulashing](https://phishdestroy.github.io/TgWitness/uz/docs/access/). ## O'rnatishni mustahkamlash 8 dan 0 tasi bajarildi 1. **Maxsus Telegram hisobidan foydalaning**, hech qachon asosiysidan emas. 2. **Panelni 127.0.0.1 da saqlang.** Masofaviy kirish faqat HTTPS (birga keladigan Caddy) yoki SSH tunneli orqali. 3. **Diskni shifrlang**, unda ma'lumotlar katalogi bor, xabarlar va media boricha saqlanadi. 4. **Ma'lumotlar katalogini cheklang** xizmat hisobiga (Unix'da 0700, Windows'da papka ruxsatlari). 5. **Serverlarda seyf kalitini boshqa joyda saqlang**: birinchi ishga tushirishdan oldin `TGWITNESS_VAULT_KEY_FILE` ni o'rnating. 6. **Barmoq izi va nazorat nuqtalarini saqlang** boshqa tizimda, guvohni boshqa xostda ishga tushiring. 7. `data/`, sessions, `panel-token.txt` yoki vault kalitlarini GitHubga yoki chatga **hech qachon yuklamang**. 8. `Authorization` sarlavhalarini yoki reverse proxy orqali keladigan so'rov tanalarini **qayd etmang**. **Panel tokenini ma'lumotlarni yo'qotmasdan o'zgartira olamanmi?** Ha, u faqat panelni ochadi. TgWitness'ni to'xtating, `panel-token.txt` ni o'chiring, qayta ishga tushiring. Jurnal, sessiyalar va kalitlar qoladi. Agar `TGWITNESS_TOKEN` o'rnatilgan bo'lsa, uning qiymati fayldan ustun turadi. **Nega xabarlar saqlash vaqtida shifrlanmaydi?** Kollektor qidirish, solishtirish va eksport qilish uchun ularni o'qishi kerak. Xuddi shu kompyuterdagi kalit o'sha kompyuterni baribir o'qiy oladigan odamni to'xtatmaydi. Disk shifrlash o'g'irlangan diskni, ruxsatlar ishlab turgan tizimni himoya qiladi. ## Zaiflikni xabar qiling GitHub'da **Security → Report a vulnerability**. Versiya, ta'sir va soxta ma'lumotlar bilan minimal qayta ishlab chiqarish. Hech qachon hisob ma'lumotlari, hisob papkalari yoki haqiqiy dalillarni yubormang. Maxfiy xabar berish o'chirilgan bo'lsa, ekspluatatsiya tafsilotlarisiz maxfiy kanal so'rab issue oching. --- # Telegram · Witness botini sozlang Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/witness/ Imzolangan jurnal tekshiruv nuqtalarini alohida guvoh, o'z kaliti va faqat o'qish huquqiga ega yig'uvchi bilan Telegram kanaliga e'lon qiling. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Alohida jarayon jurnalingizni tekshiradi va imzolangan nazorat nuqtalarini kanalga joylaydi. ## Ikki mezbon, ikki imzolash kaliti MEZBON / YIĂUVCHI**Hisob + jurnal** Telegram sessiyasi Collector imzolash kaliti Faqat o'qish uchun mo'ljallangan tekshiruv nuqtasi oxiri ← imzolangan javobni so'rash → MEZBON B / GUVOH**Tasdiqlash + saqlash** Biriktirilgan yig'uvchi barmoq izi Alohida guvoh imzolash kaliti O'z jurnali + bot tokeni Witness → Telegram Bot API →**Sizning kanalingiz · imzolangan TGW1 postlari** Witness o'zi tekshiruvlarni bajaradi. Collector foydalanuvchisiga faqat o'qish huquqi berilgan. Bot nashriyoti witnessning ulanishidan va tokenidan foydalanadi; witnessga hech qanday hisob sessiyasi berilmaydi. 03 / CHECKPOINT QARORLARIIllyustrativ javoblar Oxirgi qabul qilingan**120 yozuv**`head 9c7d…` KEYINGI JAVOB**128 yozuv**`head a4f2…` Qabul qilindi: hisob ortadi, imzo tasdiqlanadi va kalit mos keladi. Guvoh ushbu yangi chegarani saqlab qoladi. Barcha javob misollari haqiqiy imzo va biriktirilgan kalitni taxmin qiladi. Bu yerda xeshlar qisqartirilgan misollar bo'lib, faqat ko'proq son butun eski prefiks o'zgarmaganligini isbotlay olmaydi; saqlangan tekshiruv nuqtalariga ega eksportni solishtiring. ## Bot va kanal tayyorlang BotFather bilan bot yarating va unga kanalingizda post qilishga ruxsat bering. Guvohni boshqa joyda ishga tushiring: boshqa xost, iloji bo'lsa boshqa kishi boshqaradigan, kollektor yonidagi ikkinchi jarayondan ancha qimmatli. ## Extras bo'limida uchta qadam 1. **Faqat o'qish uchun kirish.** **Qo'shimchalar → Mustaqil guvoh**, token yarating, faylni saqlang. U faqat nazorat nuqtalari va holatni o'qiydi. 2. **Kanal va interval.** Telegram kanali yoki Discord webhook'i, shuningdek guvoh yeta oladigan kollektor manzili. Sozlamalar faylini saqlang. 3. **Ishga tushirish.** `witness.json`, `witness-token.txt` va `bot-token.txt` ni guvoh xostiga birga joylashtiring va ishga tushiring: ``` python -m tgwitness.witness run --config witness.json --check-config python -m tgwitness.witness run --config witness.json ``` Kanalda birinchi imzolangan post chiqishini kuting, so'ng guvoh barmoq izini xavfsiz joyda saqlang. Uning o'rniga Discord? Webhook URL'ini `discord-webhook.txt` sifatida saqlang. Bitta guvoh bitta joyga post qiladi; uzun tekshiruvlar Discord'ga fayl sifatida keladi. ## Nashr etish chastotasini tanlang Har bir tekshiruvni post qilish muntazam tashqi yozuv beradi: har besh daqiqada bu har bir ish maydoni uchun kuniga taxminan 288 ta post. Kengaytirilgan sozlamalar faqat o'zgarish yoki muammo bo'lganda post qilishi, proksi yoki maxsus Bot API ishlatishi mumkin. **Bot aslida nimani tasdiqlaydi?** U kollektordan imzolangan nazorat nuqtasini so'raydi, uni kutilgan kalit bilan tekshiradi va o'z imzolangan jurnalini, o'tkazib yuborilgan va rad etilgan javoblar bilan birga, saqlaydi. U jurnal holatini tekshiradi, Telegram'ning o'zini kuzatmaydi. Buning uchun nazorat ostidagi yetkazish sinovini o'tkazing. ## Dalillarni keyin tekshiring Guvoh jurnali, postlar va barmoq izlarini saqlang. Kollektor eksportiga nisbatan [ularni qanday tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/#verify). --- # Telegram · Arxiv bilan ishlash Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/archive/ Tarixni yuklang, saqlangan yozuvlarni qidiring, sun'iy intellekt manbalarini ko'rib chiqing va vositalaringizni ulang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Xabarni toping. Manbani tekshiring. Ishni tuzing. 01**Tarixni olib keling** Yoqilgan manbalarning o'tgan xabarlarini ish maydoniga torting. 02**Manbalarga rioya qiling** Qidiring, so'ng har bir natija ortidagi saqlangan xabarni oching. 03**Topshirishni aniq saqlang** Tahlilingiz bitta faylda, imzolangan dalil yonida. Yozib olingan yozuvlar, tan olingan matn va tahlilchi xulosalari alohida saqlanadi. ## Avvalgi xabarlarni yuklash 1. **Manbalar → Qamrovdagi chatlar**: yoqilgan chatlarni tekshiring, kuzatuvni boshlang. 2. **To'liq tarixni yuklash**. U manbalar ro'yxatini hozir qanday bo'lsa, shunday oladi. 3. **Tarixni to'xtatish** / **Tarixni davom ettirish** istalgan vaqtda. Qayta ishga tushirgandan keyin qo'lda davom ettiring. 4. Har bir manba natijalarini va yuklab olish navbatini tekshiring, imzolangan jarayon hisobotini eksport bilan birga saqlang. Bu ish maydonini to'ldiradi. Bitta chatning HTML/JSON eksporti boshqa narsa. [Batafsil](https://phishdestroy.github.io/TgWitness/uz/docs/reference/history/). ## Avvalo qidiring, keyin sun'iy intellekt haqida qaror qiling 1. **Jurnal** mahalliy qidiradi, manba va vaqt bo'yicha filtrlang. 2. Ibora yoki domenni qidiring, yozuv va uning versiyalarini oching. 3. AI uchun administrator **Integratsiyalar** bo'limida provayderni sozlaydi. So'ng **Arxivdan so'rang**: chatlar va davrni tanlang, **Modelga yuborilgan ma'lumotlar**ni ko'ring va tashqariga chiqmasligi kerak bo'lganlarning belgisini olib tashlang. 4. Iqtiboslarni tekshiring, javobni hisobot sifatida saqlang, eslatmalaringizni qo'shing. Qidiruv uchun AI shart emas. Hisobotlar o'z manbalari va tahrirlarini imzolangan jurnaldan alohida saqlaydi. [Provayderni sozlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/analysis/). ## Sizga kerakli ulanishni tanlang | Vazifa | Ochiq | Sozlash | | --- | --- | --- | | AI mijoziga tanlangan chatlarni o'qishga ruxsat bering | **Integratsiyalar → MCP** | [MCP'ni o'rnating, cheklangan token yarating, ulaning](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/) | | Saqlangan mediadagi matnni aniqlash | `media.saved` yozuvi → **Ilovani tan olish** | [Mahalliy Docker worker'ni sozlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/media-analysis/) | | Voqealarni n8n yoki SIEMga yuboring | **Integratsiyalar → Chiqish webhooklari** | [Qabul qiluvchi qo'shing, HMAC'ni tekshiring, takroriy ID'larni olib tashlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/webhooks/) | **Qaysi access token qayerga qo'yiladi?** Panelga kirish odamlar uchun. MCP'ning o'z faqat o'qish tokenlari, webhook'larning o'z HMAC siri bor. Hech biriga Telegram sessiyasi kerak emas. [Panelga kirishni ulashing](https://phishdestroy.github.io/TgWitness/uz/docs/access/) yoki [MCP-klientni sozlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/). ## Manbalar va xulosalarni taqdim eting Hisobotni imzolangan ZIP yoniga qo'ying. Hisobot manbalarni sizning talqiningiz, ZIP esa qabul qiluvchi tekshiradigan narsa. [Eksport va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/exports/) · [To'liq tergovni bosqichma-bosqich o'tkazing](https://phishdestroy.github.io/TgWitness/uz/docs/cases/) --- # Telegram · Bir ishni baham ko'ring Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/access/ Ko'rib chiquvchilar va tahlilchilarga tanlangan hisoblar va suhbatlarga alohida ruxsatnomalar, sessiya cheklovlari va bekor qilinishi mumkin bo'lgan tokenlar bilan kirish huquqini bering. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Kimga kerak bo'lsa, shu holatni ulashing. Qolganlarini nazorat ostida saqlang. 01**Dalilni tanlang** Butun ish maydonlari yoki alohida chatlar. 02**Harakatlarni tanlang** Ko'rish, eksport yoki faqat ularga kerakli amallar. 03**Chegaralarni belgilang** Xohlasangiz amal qilish muddati, sessiya cheklovlari va IP qoidalari bilan shaxsiy token. Yig'ish doirasi nimalar qayd etilishini belgilaydi. Kirish doirasi esa shaxs nimalarni ko'rishi va bajarishi mumkinligini belgilaydi. ## Kimgadir kirish huquqini bering 1. Administrator sifatida **Kirish**ni oching. 2. Nom bering, ish maydonlari va chatlarni tanlang. 3. Ko'rib chiquvchiga faqat **Ko'rish** kerak. Yuklab olish uchun **Eksport** qo'shing. 4. Chegaralarni belgilang, so'ngra **Kirishni yaratish tugmasini** bosing. 5. Tokenni nusxalang (bir marta ko'rsatiladi) va panel manzili bilan maxfiy yuboring. 6. Avval alohida brauzer sessiyasida ular nimani ko'rishini tekshiring. ## Ular bajarishi kerak bo'lgan ishdan boshlang | Shaxs | Kirish | Natija | | --- | --- | --- | | Ko'rib chiquvchi | Tanlangan suhbatlar; faqat ko'rish | Chatni o'qiydi, hech narsani o'zgartira olmaydi. | | Tahlilchi | Tanlangan suhbatlar; ko'rish va eksport qilish | Ishga keraklisini o'qiydi va yuklab oladi. | | Operator | Tanlangan butun ish maydonchalari; manbalar va to'plam | Nima kuzatilishini hal qiladi, kollektorlarni ishga tushiradi va to'xtatadi. | Bular shunchaki misollar, qat'iy rollar emas. Chat bilan cheklangan kirish hech qachon hisob sozlamalari yoki to'liq jurnal eksportini olmaydi. Barcha ish maydonlariga kirish keyin qo'shilgan hisoblarni ham o'z ichiga oladi. ## Ixtiyoringizni istalgan vaqtda o'zgartirishingiz mumkin Kirishni istalgan vaqtda tahrirlang, u keyingi so'rovdan kuchga kiradi. Bitta sessiyani tugating yoki hammasini bekor qiling. Yuklab olingan fayllarni qaytarib bo'lmaydi. Yig'ish davom etadi. **Sessiya va IP cheklovlari** Parallel sessiyalar va kirishlarni cheklang, tugash sanasini belgilang, IP yoki subnetlarga ruxsat bering yoki birinchi kirish IP'siga bog'lang. Amal qilish muddati nofaollikdan hisoblanadi, ochiq panel faol hisoblanadi. Proksi ortida ilova qaysi mijoz IP'sini ko'rishini tekshiring. **Asosiy kalit va faoliyat joriy yozuvlari** Asosiy token administratorda qoladi. Berilgan kirish boshqalarning kirishini boshqara olmaydi yoki administrator konsolini ocha olmaydi. Kirish o'zgarishlari va sessiyalar tokensiz jurnalga imzolanadi. Server administratori baribir hamma narsani ko'ra oladi. Yettala ruxsat va sessiya qoidalari: [kirish ma'lumotnomasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/). --- # Telegram · Uni ishlashda davom ettiring Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/server/ TgWitness-ni doimiy saqlash joyiga, shaxsiy panelga kirish, zaxira nusxalari va qayta ishga tushirgandan keyingi tekshiruvlarga ega serverda ishga tushiring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Kollektorni ishlab turgan va ma'lumotlarni qayta ishga tushirishlarda xavfsiz saqlang. ## Boshlash usulini tanlang Mahalliy: [ishga tushirgich](https://phishdestroy.github.io/TgWitness/uz/docs/start/) va [deploy/](https://github.com/phishdestroy/TgWitness/blob/main/deploy/README.md) dagi xizmat shablonlari. Docker, loyiha papkasidan: ``` docker compose up -d --build --wait docker compose exec tgwitness cat /data/panel-token.txt ``` Panel localhost:8787 da tinglaydi. Uni mahalliy yoki SSH tunneli orqali, ikkinchi buyruqdagi token bilan oching. ## Butun ma'lumotlar katalogini saqlang Mahalliy: `data/live`. Docker: `tgwitness-data` hajmi. Jurnallar, sessiyalar va kalitlar birga bo'lishi kerak. Imzolangan eksport dalil, zaxira nusxa emas. 1. Avval yig'ishni to'xtating. 2. Butun ma'lumotlar katalogini xostdan tashqaridagi xavfsiz joyga nusxalang. 3. Ishonishdan oldin uni alohida o'rnatmada tiklab ko'ring. ## Qayta ishga tushirgandan so'ng tekshiring Ish maydoni va kalit, ulanish, manbalar va yangi xabarlar kelayotganini tekshiring. TgWitness Telegram'da hali bor narsani to'ldiradi, o'chiq turgan paytda sodir bo'lgan hamma narsani emas. "healthy" konteyner veb-server javob berayotganini bildiradi. Yig'ish ishlayaptimi, buni sinov xabari va guvoh aytadi. ## Faqat niyat qilgan narsangizni e'lon qiling HTTPS, hajmlar, yangilanishlar va tiklash joylashtirish ma'lumotnomasida. Haqiqatan sinovdan o'tgan narsa: [tasdiqlash yozuvi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/). --- # Telegram · Nima noto'g'ri ketganini aniqlang Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/troubleshooting/ Har bir muammo uchun to'g'ri signalardan foydalangan holda tekshirish paneliga kirishni, Telegram ulanishini, yo'qolgan xabarlarni, FloodWait va Witness holatini tekshiring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Alomatdan boshlang, bir vaqtda bitta narsani tekshiring. ## Panel token so'raydi U ishga tushirgich chop etgan fayldagi panel tokenini so'raydi. Docker: `docker compose exec tgwitness cat /data/panel-token.txt`. Telegram kodi emas, bot tokeni emas, guvoh tokeni ham emas. ## Telegram ulanmaydi Ulanish tekshiruvini ishga tushiring. Ochiq proksida boshqasini tanlang va saqlang. Proksi turi va sir formatini tekshiring. Ro'yxatlarni yangilash marshrutni o'z-o'zidan almashtirmaydi. ## Ulanish mavjud, lekin yangi xabarlar yo'q 1. Kuzatuv to'g'ri ish maydonida ishlayaptimi? 2. Manba tanlanganmi va o'sha hisobga ko'rinadimi? 3. Sinov guruhingizda noyob xabar yuboring va uni qidiring. 4. Jurnalda uzilishlar yoki Telegram xatolarini qidiring. Jim chatda shunchaki yangi narsa yo'q. To'liqlik muhim bo'lsa, nazorat ostidagi yetkazish sinovini o'tkazing. ## FloodWait yoki qayta ishga tushirgandan keyin bo'shliq FloodWait Telegram'ning "sekinroq" deyishi. U o'tguncha kuting va yukni kamaytiring, qayta ulanish yordam bermaydi. Qayta ishga tushirgandan keyin TgWitness Telegram'da hali bor narsani to'ldiradi; qolgani bo'shliq, uni yozib qo'ying. ## Bot sozlangan, lekin hech narsa joylamaydi Guvoh ishlayaptimi, bot kanalga post qila oladimi, u kollektor va Bot API'ga yeta oladimi? Uning jurnalida muvaffaqiyatsiz postlarni qidiring. Kollektor tomonidagi so'rov post chiqqanini bildirmaydi. ## GitHub token integratsiyasi qayerda? **Rejalashtirilgan.** Qo'shimchalar taklif etilayotgan fork va build tasdiqlash ish jarayonini tasvirlaydi. Hozirda GitHub tokeni shakli yoki ishga tushirilgan o'rnatmaning omborga mos kelishini avtomatik tasdiqlovchi hech qanday vosita mavjud emas. [Joriy xususiyat holatini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/) ko'ring. Xato haqida xabar beryapsizmi? Versiya, OT, qadamlar va shaxsiy ma'lumotlari olib tashlangan xato. Hech qachon sessiyalar, tokenlar, shaxsiy xabarlar yoki ma'lumotlar katalogini ommaviy issue'ga qo'ymang. --- # TgWitness: Telegram Export, OSINT & Verification Canonical page: https://phishdestroy.github.io/TgWitness/docs/reference/overview/ Explore TgWitness installation, Telegram capture, investigation tools and evidence verification. Read measured workloads alongside their methods and limits. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/llms.txt) Bir buyruq bilan o'rnating yoki GitHub Actions'da ishga tushiring. Tekshiruv variantlarini, e'lon qilingan hajmni va arxiv nima tasdiqlayotganini tushuning. TgWitness— bu ochiq manbali Telegram eksport qiluvchi va tergov ish maydoni. Uni bitta buyruq bilan o'rnating, hisobni ulang, suhbatlarni tanlang va imzolangan arxivni eksport qiling. Shuningdek, u GitHub Actions'da vaqtinchalik yig'ishni, saqlangan tahrirlar, o'chirish kuzatuvlari, qidiruv va hisobotlar bilan tergovni davom ettirishni qo'llab-quvvatlaydi. ## Qo'lingizdagi vazifadan boshlang | Sizning vazifangiz | Eng qisqa yo'l | Siz olasiz | | --- | --- | --- | | Suhbat yoki hisobni saqlash | O'rnatish, hisobni ulash, eksport doirasini tanlash | Tanlangan tarix, to'plam natijalari va tasdiqlash materiallaridan iborat imzolangan arxiv | | Vaqtinchalik runnerda to'plash | GitHub Actions yordamida sessiyani boshlang, yangi sessiyani ruxsat bering va doirani tanlang | GitHub ish jarayoni kelib chiqishini aks ettiruvchi shifrlangan arxiv | | Vaqt o'tishi bilan o'zgarishlarni kuzating | Tanlangan suhbatlarda kuzatuvni davom ettiring | Saqlangan versiyalar, o'chirish bildirishnomalari, ilovalar va qayd etilgan qamrov | | Tadqiq qiling va natijalarni baham ko'ring | Arxivni qidiring, Case Board-dan foydalaning va hisobot yoki ulashish nusxasini sozlang | Manba bilan bog'langan topilmalar va qabul qiluvchiga mos keladigan tasdiqlanishi mumkin bo'lgan topshirish | ### Bir buyruqli o'rnatish O'rnatuvchi Python va unga bog'liq paketlarni o'z ichiga oladi. Manba kodini olish, Docker, sun'iy intellekt provayderi va mustaqil guvoh ixtiyoriy tanlov bo'lib, sozlash uchun zarur shartlar emas. Linux / macOS: ``` curl -fsSL https://get.destroy.tools/install.sh | bash ``` Windowsda, PowerShell yoki Command Promptda: ``` powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "irm https://get.destroy.tools/install.ps1 | iex" ``` Panelni oching, Telegram hisobingizni ulang va yig'ish doirasini tanlang. O'rnatish o'zi yig'ishni boshlamaydi.[o'rnatish bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/) mahalliy kirish, serverlar, yangilanishlar va yuklab olingan build-ni tekshirishni tushuntiradi. Vaqtinchalik ijrochi uchun [GitHub Actions capture](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md) bo'limiga rioya qiling. Ushbu ish jarayoni GitHub fork, avtorizatsiya va arxiv parolini talab qiladi. Capture sahifasi bu bosqichlarni va ijro etishdan oldin sessiya vaqti byudjetini tushuntiradi. Hosil bo'lgan arxivni yuklab oling va uning tekshiruv materiallarini saqlab qo'ying. ## Vazifa talab qilganda qo'shimcha sozlamalar Yagona suhbat eksporti uchun hisob qaydnomasi va tanlangan doira talab etiladi. Davom etayotgan kuzatuv, bir nechta hisob qaydnomalar, proksi-serverlar, ilova siyosatlari, hisobot dizayni, ko'rib chiquvchining kirish huquqi, tashqi vaqt tamg'alari va tashqaridagi saqlash turli tergov va topshirish talablariga xizmat qiladi. Tegishli bo'lganda ushbu xususiyatlarni sozlang. Doira, ruxsatnomalar va minimallashtirilgan ulashish nusxalari operatorlarga nimani yig'ish va oshkor qilishni tanlashga yordam beradi. Yurisdiktsiya bo'yicha ko'rsatmalar va hisobot sozlamalari bu qarorni qo'llab-quvvatlaydi; profilni tanlash o'zi huquqiy muvofiqlikni yoki qabul qilinishni ta'minlamaydi. Qarang: [hisob eksporti](https://phishdestroy.github.io/TgWitness/uz/docs/reference/account-export/), [kirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) va [hisobot konfiguratsiyasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/). Ilova tanlangan kompyuter yoki serverda ishlaydi. Asosiy yig'ish GPU yoki LLM talab qilmaydi. Ixtiyoriy OCR, transkripsiya va sun'iy intellekt tahlili o'z resurs talablari mavjud. Xabar tezligi, ilovalar, saqlangan tarix va bir vaqtda ishlaydigan hisoblar bo'yicha joylashtirish hajmini belgilang; oddiy o'rnatish har bir ish yukiga barqaror xotira izi kafolatini bermaydi. ## Yozuvni saqlang, kimga yordam bersa ham Maqsad — kuzatilgan material, kontekst va o'zgarishlarni kimning pozitsiyasini qo'llab-quvvatlashidan qat'i nazar saqlab qolish. Dalillar kollektorning voqealar haqidagi o'z bayonotini inkor etishi mumkin. Manba kuzatuvlarini, yetishmayotgan qamrovni va analitik xulosalarni aniqlash mumkin bo'lishini ta'minlang, shunda boshqa shaxs ham xuddi shu materialni baholay oladi. Mantiq quyidagicha: akkauntda ko'rinadigan kuzatuv → imzolangan jurnal → eksport → qabul qiluvchiga tekshirish. Saqlangan tahrirlar versiyalarni qo'shadi. O'chirish kuzatuvlari avvalgi saqlangan kontentni saqlab qoladi. Qamrov yozuvlari ma'lum uzilishlarni ko'rsatadi. Hisobotlar va sun'iy intellekt tahlillari saqlangan manbalarga murojaat qiladi; talqin imzolangan hisobotda paydo bo'lgani uchun manba kuzatuvi bo'lib qolmaydi. | Verifikatsiya tekshiruvi | Qabul qiluvchi nima aniqlay oladi | | --- | --- | | Fayl hashlar, imzolar va jurnal zanjiri | Taqdim etilgan yozuvlar va fayllar kutilgan kalit va jurnal chegaralariga mos keladi | | Alohida saqlangan tekshiruv nuqtasi yoki guvoh | Arxiv avval saqlangan jurnal holati bilan mos keladi | | Tasdiqlangan tashqi vaqt tamg'asi | Ko'rsatilgan ishonch taxminlari ostida timestamp bo'yicha ko'rsatilgan baytlar mavjud edi | | GitHub tasdiqlash guvohnomasi | Arxiv tasdiqlangan ish jarayoni, yig'uvchi tahriri va qayd etilgan digesti bilan mos keladi | Ushbu tekshiruvlar yaxlitlik va kelib chiqishni ko'rib chiqishni qo'llab-quvvatlaydi. Ular xabar mazmunini haqiqiy bayonotga aylantirmaydi yoki ko'rinmagan o'chirilgan xabarlarni tiklamaydi. Mustaqil ravishda olingan kalit barmoq izi va [ishonch qo'llanmasidagi](https://github.com/phishdestroy/TgWitness/blob/main/docs/TRUST.md) hamda [dalil formatidagi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) tekshiruv bosqichlaridan foydalaning. ## E'lon qilingan miqyos va o'lchangan samaradorlik Quyidagi natijalar turli ish yuklamalari va sanalarni tasvirlaydi. Hisoblar o'zaro almashtirib bo'lmaydi: jurnal hodisasi majburiy ravishda noyob Telegram xabari demak emas. | Sana | Ish yuklamasi | Nashr qilingan natija | Nima o'lchandi | | --- | --- | --- | --- | | 1-noyabr 2026 | Serverni ishga tushirish, o'n ish maydoni ma'lumotlar bazalari | 1,610,818 jurnal yozuvlari; 900,232 yangi xabar voqealari, 80,683 tahrirlash voqealari va 400,536 o'chirish voqealari | Faqat o'qish uchun inventarizatsiya; bu o'tkazuvchanlik testi yoki yangi to'liq zanjir tasdiqlash emas | | 5-noyabr 2026 | 200 suhbatlaridagi 1,000,000 sintetik xabarlari bo'yicha qidiruv | 71 soniyada indeks tuzilgan; har bir so'rov bo'yicha o'rtacha qidiruv vaqtlari 9–190 ms | Mahalliy qidiruv benchmarki; jonli Telegram yetkazib berish emas | | 6 noyabr 2026 | Ikki yangi haqiqiy Telegram eksporti | 27,030 va 29,299 xabarlari; 56,329 esa ikkala ish jarayonida | WARP orqali har bir ijro uchun ikkita hisob: matn va metadata, ilovalar yuklab olinmaydi | | 6 noyabr 2026 | Xuddi shu ikkita eksport, tayyorlash va qadoqlashni o'z ichiga olgan | 127.713 va 141.781 xabar/soniya | O'lchangan to'liq eksport tezliklari; har ikkala arxiv ham mahkam bog'langan kalitlarga nisbatan tekshirildi | [verifikatsiya yozuvi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) server inventarizatsiyasini, jonli yig'ish tekshiruvlarini va qidiruv o'lchovini beradi. [eksport samaradorligi](https://phishdestroy.github.io/TgWitness/docs/validation/) ikkita haqiqiy ish jarayonini, apparatni, davomiylikni, arxiv xeshlarini va imzolangan o'lchov fayllarini e'lon qiladi. Ular o'z yozib olingan tahrirlar va sharoitlar uchun natijalarni belgilaydi, universal tezlik yoki sig'im chegarasini emas. ### Sinov tarixi va davomiyligi Qayta ishlab chiquvchi 6 yil 2026 kungacha olti oydan ortiq sinov o'tkazilganini xabar qiladi. Bu loyihaning sinov tarixini tasvirlaydi. Yuqoridagi sanalangan ommaviy o'lchovlar alohida test o'tkazishlarni hujjatlashtiradi; ular mustaqil tasdiqlangan, uzluksiz olti oylik to'plash jarayonini aniqlamaydi. Eksport qilingan xabarlarning yoshi ham to'plovchining ishlash muddatidan farq qiladi. ## Qobiliyat holatini aniq o'qing Har bir ish jarayonini uning amalga oshirilishi, e'lon qilingan build va yozib olingan testlarga nisbatan baholang. Manba hozirda preview deb belgilangan. Ushbu chiqarish yorlig'i ishlaydigan to'plam, eksportlar, mustaqil tasdiqlash va e'lon qilingan o'lchov natijalari bilan birga mavjud. Preview xususiyati va tasdiqlangan ish jarayoni bir xil ilovada bo'lishi mumkin; baholash ortidagi aniq xususiyat va dalillarni tasvirlang. [Joriy imkoniyatlar](https://github.com/phishdestroy/TgWitness/blob/main/docs/STATUS.md), [xususiyatlar va cheklovlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/), [tasdiqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) hamda [o'zgarishlar jurnalini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/) birgalikda qo'llang. Natijaga murojaat qilganda sinovdan o'tkazilgan tahrirni qayd eting. 6-noyabr o'lchov snapshoti shuningdek muvaffaqiyatsiz va o'tkazib yuborilgan testlarni ham saqlaydi; ular muvaffaqiyatli yakunlanish hisoblanmaydi. ## Insonlar va sun'iy intellekt vositalari tomonidan o'qilishi mumkin Veb-sayt qisqa `llms.txt` hujjatini, to'liq inglizcha qo'llanmani `llms-full.txt` va `llms-full.md` fayllarida hamda sahifalarning Markdown formatidagi nashrlarini taqdim etadi. Bular hujjat formatlari bo'lib, TgWitness ni ishga tushirish uchun sun'iy intellekt talabi emas. Ixtiyoriy [MCP](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/) va [buyruq qatori orqali](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/) ruxsat berilgan vositalar tanlangan saqlangan yozuvlarni o'qishi mumkin. Xabar mazmuni ishonchsiz kirish sifatida qoladi. Xulosalar manbalarni keltirishi, kuzatilgan faktlarni taxmindan ajratishi va noaniqlikni saqlashi kerak. To'liq matnli qidiruv, OCR va sun'iy intellekt chiqishlari asl imzolangan kuzatuvlarni o'zgartirmaydi. --- # Telegram · Tez boshlash Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/ TgWitness-ni o'rnatish va ishga tushirishning barcha usullari: Windows paketi, Python, Docker va sintetik demo, dastlabki tekshiruvlar bilan. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) TgWitness-ni o'rnatish va ishga tushirishning barcha usullari: Windows paketi, Python, Docker va sintetik demo, dastlabki tekshiruvlar bilan. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) ![Boshlash](https://phishdestroy.github.io/TgWitness/assets/chapter-start.svg) **Inglizcha** · [Rus tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/ru/QUICKSTART.md) · [Ukrain tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/uk/QUICKSTART.md) · [Ispancha](https://github.com/phishdestroy/TgWitness/blob/main/docs/es/QUICKSTART.md) · [Portugalscha (Braziliya)](https://github.com/phishdestroy/TgWitness/blob/main/docs/pt/QUICKSTART.md) · [Turkcha](https://github.com/phishdestroy/TgWitness/blob/main/docs/tr/QUICKSTART.md) · [Arab tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/ar/QUICKSTART.md) · [Farsi](https://github.com/phishdestroy/TgWitness/blob/main/docs/fa/QUICKSTART.md) · [O'rdu](https://github.com/phishdestroy/TgWitness/blob/main/docs/ur/QUICKSTART.md) · [hindicha](https://github.com/phishdestroy/TgWitness/blob/main/docs/hi/QUICKSTART.md) · [Indoneziya tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/id/QUICKSTART.md) · [Vyetnam tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/vi/QUICKSTART.md) · [Xoʻllashma xitoycha](https://github.com/phishdestroy/TgWitness/blob/main/docs/zh/QUICKSTART.md) TgWitness – bu mustaqil dastur bo'lib, u sizning hisoblaringiz kira oladigan Telegram guruhlari va kanallarini kuzatadi. U mahalliy tarzda, o'z ma'lumotlar katalogi bilan ishlaydi. **Birinchi marta tashrif buyurayapsizmi?** Hisobni ulashdan oldin [demo bilan tanishing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/#explore-the-interface). Proxylar, guvohlar, eksportlar yoki server sozlamalari bo'yicha [qo'llanma tanlang](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md). ## O'rnatish va ishga tushirish [GitHub Actions orqali yig‘ish (dastlabki versiya)](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md) Bir usulni tanlang. Portativ yuklamalar chiqarilgan versiya e'lon qilingach mavjud bo'ladi: | Mehmondo'st | Hech narsa o'rnatilmagan | Manba: Python 3.11+ | Docker: Engine/Desktop, Compose 2.20+ bilan | | --- | --- | --- | --- | | Windows | `TgWitness--windows-amd64-portable.zip`ni GitHub Releases'dan yuklab oling, `TgWitness.cmd` ustiga ikki marta bosing | `Start.cmd` ustiga ikki marta bosing | `scripts\Docker.cmd` ustiga ikki marta bosing | | Linux / macOS | — | `sh start.sh` | `sh scripts/docker-start.sh` | Manba kodidan foydalanish usullari uchun [joriy `main` tarmog‘ini yuklab oling va arxivdan chiqaring](https://github.com/phishdestroy/TgWitness/archive/refs/heads/main.zip) yoki repozitoriyni klonlang: ``` git clone https://github.com/phishdestroy/TgWitness.git cd TgWitness ``` Agar mos Python topilmasa, `Start.cmd` Windows foydalanuvchingiz uchun Python 3.12 ni o‘rnatishni taklif qiladi (winget yoki imzolangan python.org o‘rnatuvchisi orqali). Agar Python mavjud bo‘lmasa, `start.sh` Linux distributivingiz yoki macOS uchun aniq o‘rnatish buyrug‘ini chiqaradi. Manbadan birinchi marta ishga tushirilganda `.venv` yaratiladi va bog‘liqliklar avtomatik ravishda o‘rnatiladi. Docker ilovani kompilyatsiya qilib, uni fon rejimida ishga tushiradi; host Python keraksiz. `scripts\Docker.cmd` va `scripts/docker-start.sh` konteyner sog'lom holatda bo'lganda panel manzili va tokenni chop etadi. Har bir qo'llab-quvvatlanadigan hostdagi ekvivalent Docker buyruqlari quyidagilardan iborat: ``` docker compose up -d --build --wait docker compose exec tgwitness cat /data/panel-token.txt ``` http://127.0.0.1:8787 saytini oching. Docker yordamchisi yoki ikkinchi Docker buyrug'i tomonidan chop etilgan tokenni ishlating yoki portativ yoki manba o'rnatilmasida **data/live/panel-token.txt faylini** o'qing. Qolgan qismni quyidagi "**Telegramga ulanish**" bo'limida davom ettiring. Native va Docker o'rnatmalari alohida saqlashdan foydalanadi; Docker-ni ishga tushirish mavjud native jurnalni import qilmaydi. Server uchun [joylashtirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) avtomatik HTTPS, qayta ishga tushirish, e'lon qilingan tasvirlar, yangilanishlar va zaxira nusxalarini o'z ichiga oladi. ## Interfeysni o'rganing 1. Portativ paketdagi **TgWitness-Demo.cmd** , Windows manba papkasidagi **scripts\Demo.cmd** yoki Linux/macOS'da `sh start.sh --demo` ni ishga tushiring. Manba kodni ishga tushirish avvalo `.venv` ni yaratadi va zarur kutubxonalarni o'rnatadi. 2. **http://127.0.0.1:8787 saytini** oching. 3. Mahalliy demo namunaviy jurnalni avtomatik ochadi. To'g'ridan-to'g'ri mahalliy kirish uchun token nusxasini ko'chirish shart emas. Demo xabarlari badiiydir. Demo rejimi haqiqiy Telegram hisobiga ulanmaydi. ## Telegramga ulanish > [!OGOHLANTIRISH] **Yo'qotishga qodir bo'lmagan narsalardan foydalanmang.** Shaxsiy yoki qimmatli hisoblarni ulashni va qadrlaydigan hisobingizda API ID / xesh yaratishni qat'iyan tavsiya qilmaymiz. Telegram mijozdan qat'i nazar, hisoblarni oldindan aytib bo'lmaydigan va ko'pincha doimiy ravishda taqiqlaydi. Sinovning muammosiz o'tishi Telegramga bog'liq, TgWitnessga emas, va keyingi holatlar uchun hech qanday kafolat bermaydi. 1. Agar mahalliy demo ishlamoqda bo'lsa, uni to'xtating va **Start.cmd** yoki `sh start.sh` faylini ishga tushiring. Aks holda, yuqorida jonli o'rnatishni ishga tushirgan holda qoldiring. 2. Paneldan foydalanish usulingiz uchun tokenni ishlatib panelni oching. 3. Agar proksi kerak bo'lsa, uni **Hisob → Sozlamalar → Ulanish sozlamalari → Ulanish yo'nalishini o'zgartirish** bo'limida saqlang. 4. **Hisob** bo'limida telefon raqamingizni kiriting va **Davom etish tugmasini** bosing, **QR kod → QR kodni ko'rsatishni** tanlang yoki fayllarni tanlab **Hisobni bog'lash**tugmasini bosing. **API ID + Hash** ixtiyoriy: ish maydoni saqlangan yoki import qilingan juftlikni, yoki o'rnatilgan bazadagi ishlaydigan juftlikni ishlatadi. O'zingizning ilovangizdan foydalanish uchun bitta `API ID:API Hash` juftligini API ID ga joylashtiring. To'liq avtorizatsiya kaliti uchun **Auth kalitini** tanlang, barcha 512 geksadesimal belgini joylashtiring va taqdim etilgan DC ID ni tanlang. Foydalanuvchi ID ixtiyoriy bo'lib, kiritilganda tekshiriladi. 5. Tanlangan kirish usulingizni yakunlang: telefon/kod/2FA, QR uchun kirishga kirgan Telegram ilovasidan tasdiq yoki qo'llab-quvvatlanadigan ruxsat berilgan sessiyani import qilish. 6. Ko'rsatilgan hisob IDni tekshiring. Ochiq **manbalar**: suhbatlaringiz avtomatik yuklanadi; guruhlaringizni qo'shing. 7. **Qaysi o'zgarishlarni saqlashni tanlash** bo'limida voqea toifalarini yoki " **Xabarlar, tahrirlar va o'chirishlar**" oldindan belgilangan sozlamasini tanlang, so'ngra monitoring sozlamalarini saqlang. 8. Ilovalar sozlamalarini alohida tanlang, so'ngra **Kuzatuvni boshlash** tugmasini bosing. API ma'lumotlari sizning ilovangizni aniqlaydi; ular o'zlari hech qanday hisobni ruxsat etmaydi. Xususiy guruhlarga ommaviy foydalanuvchi nomi kerak emas, lekin sizning hisobingizda kirish huquqi bo'lishi kerak. Mavjud hisoblar uchun [hisoblar va sessiya formatlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) bo‘limiga qarang: panel Telethon StringSession, Telethon/Pyrogram SQLite, bitta hisobli TData ZIP va qo‘llab-quvvatlanadigan hisob JSON fayllarini qabul qiladi. Sessiya va unga tegishli JSON faylini birgalikda tanlab, **Hisobni bog'lash** tugmasini bosing. Xuddi shu ixtiyoriy API sozlamalari bilan QR orqali kirish ham mavjud. TDLib, bot sessiyalari va CSV/JSON hisoblar ro‘yxati qo‘llab-quvvatlanmaydi. Bir nechta hisob uchun **Hisoblar → Hisoblarni import qilish** bo‘limidan foydalaning va ularning qo‘llab-quvvatlanadigan sessiya fayllarini tanlang. Qo‘shimcha JSON fayllar asosiy nom bo‘yicha juftlanadi; har bir import qilingan hisob o‘z ishchi maydoniga ega bo‘ladi. [Ommaviy import va hisob guruhlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#bulk-import-and-account-groups) bo‘limiga qarang. Yana bir akkaunt qo'shish uchun akkaunt tanlovchisining yonidagi **+** tugmasini bosing yoki **Akkaunt → Sozlamalar → Ulanish sozlamalari → Ish maydonchalari bo'limini** oching, yoki **Akkauntlar bo'lim**idan foydalaning. Ish maydonchalari alohida sessiyalarga, jurnalarga, kalitlarga, manbalarga va navbatlarga ega. Ko'rinishlarni almashtirish boshqa yig'uvchilarni ishlashda davom ettiradi. Ushbu o'rnatishda bir xil Telegram akkaunti ikki ish maydonchasiga tayinlanishi mumkin emas. Ish maydonlarining doimiy soni yo'q; ular bitta jarayonni baham ko'radi, shuning uchun sig'im mashinaga bog'liq. Jonli panel tokeni Telegram ruxsatnomalaringiz va saqlangan materiallarga kirishni himoya qiladi; u Telegram API ma'lumotlaridan alohida. Faqat aniq boshlangan va to'g'ridan-to'g'ri ulanilgan mahalliy demo avtomatik kirish huquqiga ega. Masofaviy/proxy orqali ulanadigan demo hanuzgacha `data/demo/panel-token.txt` ni ishlatadi. ## Ko'rib chiqish va eksport qilish - **Jurnal:** kuzatuvlarni manba va hodisa turiga ko'ra qidirish va filtrlash. - Voqeani tanlang va uning asl yozuvini, atributsiyasini hamda saqlangan versiyalarini ko'rib chiqing. - Tahrirlash tafsilotlari mavjud bo'lgan oldingi/keyingi kontentni ko'rsatadi. O'chirish tafsilotlari mavjud bo'lsa, oxirgi qayd etilgan kontentni ko'rsatadi; noma'lum aktor noma'lum bo'lib qoladi. - **Eksportlar:** imzolangan ZIP, JSONL, CSV va oflayn HTML. - **To'liq suhbat eksporti** (Manbalar → To'liq suhbat eksporti): bitta suhbatning butun ko'rinadigan tarixini imzolangan paket sifatida `chat.json` bilan (Telegram-eksport uslubida) va o'qiladigan `chat.html` bilan yuklab oling. Xususiy suhbatlar hisob suhbat a'zosi bo'lganida ishlaydi. Bu hozirgi snapshot bo'lib, o'chirilgan yoki ilgari tahrirlangan xabarlarning rekonstruksiyasi emas. `python verify.py chat-export.zip --fingerprint TRUSTED_SHA256` yordamida nusxani tasdiqlang. - **Save checkpoint:** imzolangan jurnal chegarasini to'plovchidan tashqarida saqlang. - **Imzolangan ishga tushirish kvitansiyasini yuklab oling:** to'plovchining dastur/versiya yozuvini saqlang. - **Vaqt tamg'asi so'rovini tayyorlang:** vaqt tamg'asi vakolat organi uchun oflayn so'rov tayyorlang; Javobni olish va tekshirish uchun [TIMESTAMP.md hujjatiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/timestamp/) amal qiling. - **Jurnalni tekshirish:** voqea imzolarini va zanjir bog'lanmalarini tekshirish. ZIP eksporti media fayllarni ham tekshiradi. Qo'llab-quvvatlanadigan brauzerlar katta eksportlarni to'g'ridan-to'g'ri tanlangan faylga saqlaydi. Boshqa brauzerlar eng ko'pi bilan 128 MiB buferlaydi. Server ishlayotgan paytda, oqimli CLI butun javobni buferlamasdan kattaroq yuklab olishlarni qo'llab-quvvatlaydi: ``` python -m tgwitness.download --token-file data/live/panel-token.txt --out evidence.zip ``` Boshqa ish maydoni uchun **Exports → Workspace ID** orqali `--profile ID` ni qo'shing. Masofaviy server uchun `--url https://your-server` ni qo'shing. Standart uzatish limiti 5 GiB; `--max-mib` uni o'zgartiradi. Imzolangan ZIP kontentining standart bo'yicha alohida 4 GiB siqilmagan tekshirish limiti mavjud (**Parameters** uni oshiradi; bunday arxivlarni `verify.py --max-gib N` yordamida tekshiring). Arxivni ishonchli tekshiruvchi nusxasi va mustaqil saqlangan kalit izi/nazorat nuqtasi yordamida tekshiring. ## O'rnatishni tekshiring ``` python start.py --setup-only python start.py --check python start.py --check --json ``` `--check` mahalliy bog'liqliklarni, imzolashni qo'llab-quvvatlashni, saqlash joyini, kalit sozlamalarini va tinglash manzilini tekshiradi. U hech narsa o'rnatmaydi va Telegramga ulanmaydi. Band port boshqa bir nusxa ishlamoqda degani bo'lishi mumkin. Boshqa `--port` dan foydalaning yoki avval uni to'xtating. Ishga tushiruvchi dastur `.venv` ga o'rnatiladi. Yordamchi `python -m tgwitness...` buyruqlari Windowsda `.venv\Scripts\python.exe`, Linux/macOSda esa `.venv/bin/python` ni ishlatishi kerak, agar bu muhit allaqachon faollashtirilmagan bo'lsa. ## Sessiyalar, himoya va ishlash Yopiq, izchil Telethon SQLite `.session` faylini mahalliy tarzda `python -m tgwitness.sessions account.session --out account.tgwitness-session` bilan konvertatsiya qilish va keyin Hisobga yuklash mumkin. To'g'ridan-to'g'ri fayl importi va QR orqali kirish ham mavjud. Kirish formatlari, SOCKS5, HTTP CONNECT, MTProxy va tashqi bosh kalitlar uchun [CONNECTION-SECURITY.md hujjatiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/) qarang. **To'xtatish kuzatuvni** to'xtatadi. **Quqitish** faqat brauzer orqali kirishni yopadi. Vozkani yopish yig'ish jarayonini ishga tushgan holda qoldiradi. Jarayonni to'xtatish yig'ishni uzib qo'yadi; tarixning snapshoti barcha o'tkazib yuborilgan tahrirlar yoki o'chirishlarni qayta tiklay olmaydi. Voqea siyosatlari, ilova navbatlari, hisobni izolyatsiya qilish va qayta ishga tushirish xatti-harakatlari bo'yicha [yig'ish qanday ishlashini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) ko'ring. Sessiyalar va sirlar shifrlanadi. Xabarlar mazmuni, media va eksportlar shifrlangan disk yoki hajmni talab qiladi. Imzolar ishonchli kalitga nisbatan yaxlitlikni ta'minlaydi; ular Telegram kelib chiqishini aniqlamaydi yoki yig'uvchi va uning kalitini nazorat qiluvchi operator tomonidan soxtalashtirishni oldini olmaydi. Zaxira nusxa olish va tiklash uchun [OPERATIONS.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/), hosting uchun [DEPLOYMENT.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) hamda xizmat misollari uchun [deploy/](https://github.com/phishdestroy/TgWitness/blob/main/deploy/README.md) fayllarini o'qing. O'rnatilgan panelda shuningdek `/guide.html` manzilida oflayn sozlash bo'yicha qo'llanma mavjud. Haqiqiy tasdiqlash va qolgan cheklovlar [VERIFICATION.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) hamda [READINESS.md](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/READINESS.md) fayllarida qayd etilgan. --- # O' rnatish, tekshirish va yangilash Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/ Bir buyruq bilan o' rnatish, imzo va xeshlarni tekshirish, o' rnatmani yangilash va o' chirish. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Translation coverage: this edition includes material from the English original. Bir buyruq bilan o'rnatish, imzo va xeshlarni tekshirish, o'rnatmani yangilash va o'chirish. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Boshlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/) ![Boshlash](https://phishdestroy.github.io/TgWitness/assets/chapter-start.svg) [Loyiha](https://github.com/phishdestroy/TgWitness/blob/main/README.md) · [Tez boshlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/) · [Joylashtirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) **Ushbu sahifada** - [Bir buyruq bilan o'rnating](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/#install-with-one-command) - [Har narsa ishlaydigan joy](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/#where-everything-runs) - [To'liq matnli qidiruv sozlamalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/#full-text-search-settings) - [Komanda satri orqali kirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/#command-line-access) - [Ijro etishdan oldin tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/#verify-before-running) - [Mavjud o'rnatishni yangilash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/#update-an-existing-installation) - [Ubuntudagi kundalik buyruqlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/#everyday-commands-on-ubuntu) - [TgWitness so'zini olib tashlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/installation/#remove-tgwitness) ## Bir buyruq bilan o'rnating Yo'naltirilgan o'rnatuvchi shaxsiy Python ijro muhitini o'z ichiga oladi. Keyingi o'rnatishlar uchun ham shu manzilni ishlating: har bir nashr o'rnatuvchi, xeshlar, imzo va kompilyatsiya ma'lumotlarini birgalikda yangilaydi. **Linux / macOS (Bash):** ``` curl -fsSL https://get.destroy.tools/install.sh | bash ``` Ubuntu serverida fon xizmatini o'rnatish uchun root sifatida ishga tushiring. Stol usti kompyuterda esa oddiy foydalanuvchi sifatida ishga tushiring. **Windows (PowerShell yoki Command Prompt):** ``` powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "irm https://get.destroy.tools/install.ps1 | iex" ``` Windowsda administrator kerak emas. Farzand PowerShell jarayoni natija bilan terminalingizni ochiq qoldiradi. Python va unga bog'liq paketlar o'rnatishda qoladi. Ubuntuda "**Ushbu kompyuter**", "**Vaqtinchalik HTTPS havolasi**" yoki "**O'z domeni**" ni tanlang. O'rnatuvchi panel manzili va kirish kalitini chop etadi. Vaqtinchalik havola uchun shu HTTPS manzilini brauzeringizda oching va kalitni kiriting. Masofaviy serverda mahalliy kirishni ta'minlash uchun kompyuteringizdan SSH orqali yo'naltirishdan foydalaning (`ssh -L 8787:127.0.0.1:8787 user@server`) va oching `http://127.0.0.1:8787`. macOS va Windowsda mahalliy panel brauzeringizda ochiladi; uning terminalini ishga tushgan holda saqlang. Panelda Telegramga kiring va nimani yig'ishni tanlang. Faqatgina o'rnatish Telegram ma'lumotlarini yig'ishni boshlamaydi. ## Hammasi ishlaydigan joy `get.destroy.tools` **statik yuklamalarni taqdim etuvchi Cloudflare Worker**'dir. Unda TgWitness paneli, Telegram sessiyasi yoki foydalanuvchi dalillari ma'lumotlar bazasi yo'q. U loyiha VPSiga yo'naltirilmagan. Ilova buyruqni ijro qilayotgan mashinada ishlaydi. | O'rnatish | Dastur | Ma'lumotlar | | --- | --- | --- | | Ubuntu root sifatida | `/opt/tgwitness` | Tizim xizmati: `/var/lib/tgwitness-`; foydalaning `tgwitness paths` aniq yo'l uchun | | Linux / macOS foydalanuvchisi | `~/.local/share/tgwitness` | `data/live` o'sha o'rnatish ostida. | | Windows foydalanuvchisi | `%LOCALAPPDATA%\TgWitness` | `data\live` o'sha o'rnatish ostida. | Sozlash `TGWITNESS_INSTALL_DIR` boshqa papkani tanlash uchun. O'rnatilgan versiyalar va ma'lumotlar alohida. O'rnatuvchi dastur sizning hisoblaringizni, xabarlaringizni yoki kalitlaringizni yuklab olish saytiga yuklamaydi. Cloudflare tunneli tanlanganda panel trafigi Cloudflare orqali yo'naltiriladi; o'zingizning domeningizdan foydalanganda esa u o'zingizning serveringizga yo'naltiriladi. With `TGWITNESS_TRUSTED_PROXIES`, the panel accepts a single `X-Forwarded-Proto: https` from a trusted proxy to set Secure download cookies. Har bir o'rnatishga mahalliy yo'llar, buyruqlar va omborga havolalar bilan **START-HERE.html** va **START-HERE.txt** fayllari kiradi. `tgwitness guide` qo'llanmani ochish uchun. Windowsda esa `& "$env:LOCALAPPDATA\TgWitness\bin\tgwitness.cmd" guide` PowerShell'da ishlating. ## To'liq matnli qidiruv sozlamalari [To'liq matnli qidiruv](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/) (oldindan ko'rish) hech qanday sozlashni talab qilmaydi. Uning indeksi yangilanishdan so'ng fon rejimida yaratiladi. | O'zgaruvchi yoki buyruq | Ta'sir | | --- | --- | | `TGWITNESS_FULLTEXT=disk` | Standart: indeks saqlanadi `search/fulltext.sqlite3` har bir ish maydonining | | `TGWITNESS_FULLTEXT=memory` | Indeks fayli yo'q; indeks har boshlanishda qayta tuziladi | | `TGWITNESS_FULLTEXT=off` | Indeks yo'q; faqat aniq matn bo'yicha qidiruv | | `tgwitness index status` | Har bir ish maydonining holatini indekslash | | `tgwitness stop`, `tgwitness index rebuild`, `tgwitness start` | Imzolangan jurnalning har bir indeksini qayta tuzing | Administratorning **Journal → Filters → Search index** bo'limidagi tanlovi shu ish maydoni uchun o'zgaruvchini ustun qo'yadi. Buyruqlar ularni ishga tushirayotgan o'rnatmaning ma'lumotlar katalogini topadi; boshqa joylarda qo'shing `--data-dir` yo'ldan `tgwitness paths`. To'liq ukraincha lug'at (GPL-3.0 ma'lumotlari) uchun o'rnating `pymorphy3-dicts-uk` o'rnatishning Python muhitida o'rnatiladi. ## Komanda satri orqali kirish [Komanda satri](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/) (oldindan ko'rinish) skriptlar va agentlar uchun arxivni o'qiydi. | O'zgaruvchi | Ta'sir | | --- | --- | | `TGWITNESS_URL` | Panel manzili uchun `tgwitness search`, `context`, `messages`, `stats` va `export`; standart `http://127.0.0.1:8787` token o'rnatilganda | | `TGWITNESS_MCP_TOKEN` | **Integratsiyalar → MCP** bo'limidan MCP mijozlari bilan baham ko'rilgan ulanish tokenini arxivlang; `--token-file` uning o'rniga fayldan o'qiydi | | `TGWITNESS_DATA` | Ma'lumotlar katalogi hech qanday bo'lmaganda to'g'ridan-to'g'ri o'qiladi `--data-dir`, URL yoki token ko'rsatilmagan taqdirda to'g'ridan-to'g'ri o'qiladi | ## Ijro etishdan oldin tekshiring Bir qatorli buyruq dastlabki skript uchun HTTPS ga ishonadi. Ushbu skript o'rnatishdan oldin ilovadagi SHA-256 va loyihaning RSA imzolarini tekshiradi. Shuningdek, avval dastlabki skriptni yuklab olib, uni tekshirishingiz mumkin. Jamoat chiqarish kaliti [release-signing.pub](https://github.com/phishdestroy/TgWitness/blob/main/deploy/installer/release-signing.pub). Uning SHA-256 esa: ``` 039d98a658ccda14253e45a00335b4a68d840976d8ec18b8d4355cc7c458447d ``` Ishonadigan omborning reviziyasidan ushbu barmoq izini saqlang. Xuddi shu yuklab olish serveridan olingan tekshirish summasi nomuvofiqlikni aniqlaydi; mustaqil ravishda ishonchli deb tan olingan jamoat kaliti esa chiqarilgan imzoni autentifikatsiya qiladi. Quyidagi tasdiqlash yuklab olishlari uchun yangi, bo'sh papka ishlating. **Linux / macOS — yangi, bo'sh yuklab olish katalogida ishga tushiring** (curl va OpenSSL talab etiladi): ``` curl -fSLO https://get.destroy.tools/install.sh && curl -fSLO https://get.destroy.tools/install.sh.sig && curl -fSLO https://get.destroy.tools/release-signing.pub && test "$(openssl dgst -sha256 release-signing.pub | awk '{print $NF}')" = \ '039d98a658ccda14253e45a00335b4a68d840976d8ec18b8d4355cc7c458447d' && openssl dgst -sha256 -verify release-signing.pub -signature install.sh.sig install.sh && bash install.sh ``` The `&&` Zanjir yuklash, kalit izi yoki imzo tekshiruvi muvaffaqiyatsiz bo'lsa, ijro etilishdan oldin to'xtaydi. Agar skriptni yuklab olish va uning imzosi o'rtasida nashr qilinsa, ikkalasini yana yuklab oling. Eski o'rnatgichlar o'zgarmas paket URL-manzillarini saqlab qoladi. **Windows — ishga tushirishdan oldin SHA-256 ni tekshiring:** ``` Invoke-WebRequest https://get.destroy.tools/install.ps1 -OutFile install.ps1 -UseBasicParsing Get-FileHash .\install.ps1 -Algorithm SHA256 Invoke-RestMethod https://get.destroy.tools/SHA256SUMS.txt ``` Hashni bilan solishtiring `install.ps1` qator bilan solishtiring. Mustaqil imzo tekshiruvi uchun OpenSSL (masalan, Git Bash orqali) va yuqoridagi xuddi shu jamoat kaliti barmoq izini ishlating: ``` curl -fSLO https://get.destroy.tools/install.ps1 && curl -fSLO https://get.destroy.tools/install.ps1.sig && curl -fSLO https://get.destroy.tools/release-signing.pub && test "$(openssl dgst -sha256 release-signing.pub | awk '{print $NF}')" = \ '039d98a658ccda14253e45a00335b4a68d840976d8ec18b8d4355cc7c458447d' && openssl dgst -sha256 -verify release-signing.pub -signature install.ps1.sig install.ps1 && powershell.exe -NoProfile -ExecutionPolicy Bypass -File install.ps1 ``` Windows o'rnatilishi o'zi .NET yordamida paket imzolarini tekshiradi va OpenSSL talab etilmaydi. Bu Authenticode emas, balki alohida RSA-3072 / SHA-256 imzolaridir. [Manifest](https://get.destroy.tools/manifest.json) dasturiy ta'minot versiyasini, aniq Git commitini, o'zgarmas reliz ID-sini va har bir artefaktning SHA-256-ni qayd etadi. Sahifa tegishli manbaga havola qiladi. Manifest va tekshiruv yig'indisi ro'yxatida ham alohida imzolar mavjud (`manifest.json.sig` va `SHA256SUMS.txt.sig`). ## Mavjud o'rnatishni yangilash **Yangi nashr yuklab olish saytini yangilaydi; o'rnatilgan dasturlar installyerni yana ishga tushirganingizda yangilanadi.** Nazoratsiz yangilovchi yoki ishlayotgan to'plamni avtomatik qayta ishga tushirish mavjud emas. Joriy installyer kanali **ko'rgazmali**; u e'lon qilingan, tekshirilgan build-larni kuzatadi `main`, uning commit-i oxirgi raqamli GitHub relizidan yangiroq bo'lishi mumkin. Sahifaning versiyasi _____ dan olinadi. `pyproject.toml`; uning commit va build IDlari bir xil preview versiyasi ichidagi yangilanishlarni ajratib ko'rsatadi. Ushbu aniq commit ilova va xavfsizlik tekshiruvlaridan o'tib, imzolangan paket Ubuntu xizmati va Windows PowerShell o'rnatish testlaridan muvaffaqiyatli o'tgach, nashr avtomatik amalga oshiriladi. Tekshiruvlar davom etayotgan paytda yoki ular muvaffaqiyatsiz tugasa, xuddi shu buyruqlar avvalgi tekshirilgan buildni o'rnatishni davom ettiradi. Build manifesti hozir qaysi commit mavjudligini ko'rsatadi; preview yangilanishlari orasida faqat versiya raqami o'zgarmasligi mumkin. Avvalgidek o'rnatish papkasi va operatsion tizim foydalanuvchisini ishlating. To'plam to'xtatilgan holda to'liq ma'lumotlar katalogini zaxiralang; `tgwitness paths` uni aniqlaydi. Imzolangan eksport to'liq o'rnatish zaxira nusxasi emas. **Ubuntu root o'rnatilishi `/opt/tgwitness`:** ``` curl -fsSL https://get.destroy.tools/install.sh | TGWITNESS_INSTALL_DIR=/opt/tgwitness bash -s -- --no-start ``` Muvaffaqiyatli o'rnatilgandan so'ng: ``` /opt/tgwitness/bin/tgwitness restart /opt/tgwitness/bin/tgwitness status /opt/tgwitness/bin/tgwitness open ``` Linux/macOS foydalanuvchisi uchun o'rnatishda uning asl `TGWITNESS_INSTALL_DIR` yoki tavsiya etilgan parametrni tanlab, birinchi o'rnatish buyrug'ini yana ishga tushiring. Yangilashdan oldin oldingi panelni yoping va yangilagandan so'ng uni qayta ishga tushiring. Sozlangan Linux foydalanuvchi xizmati uchun uning `tgwitness restart` buyrug'ini ishga tushiring. **Windows:** ishlayotgan panelni yoping, Windows o'rnatish buyrug'ini yana ishga tushiring, so'ngra oching `bin\tgwitness.cmd` shu o'rnatishda. O'rnatuvchi ma'lumotlarni, sessiyalarni, kirish sozlamalarini va imzolash kalitlarini saqlab qoladi. U ishga tushiruvchini faqat yangi muhit o'z tekshiruvlaridan muvaffaqiyatli o'tgach almashtiradi; muvaffaqiyatsiz o'rnatish avvalgi ishga tushiruvchini o'z o'rnida qoldiradi. Saqlash formatidagi o'zgarishlar uchun yangilashdan oldingi zaxira nusxasini saqlang. ## Ubuntudagi kundalik buyruqlar | Buyruq | Natija | | --- | --- | | `tgwitness open` | Joriy panel URL manzili va kirish kaliti. | | `tgwitness paths` | Aniq dastur, ma'lumotlar va yo'riqnomalar yo'llari. | | `tgwitness guide --print` | Oflayn ishlash bo'yicha ko'rsatmalar. | | `tgwitness status` / `tgwitness logs` | Mavjudlik / xizmat jurnallari. | | `tgwitness stop` / `tgwitness start` | Xizmatni to'xtatish / davom ettirish; ma'lumotlarni saqlash. | | `tgwitness token rotate` | Administrator kalitini almashtiring va brauzer sessiyalarini yakunlang. | | `tgwitness tunnel off` | Jamoat tezkor tunnelini o'chirib qo'ying; mahalliy panelni saqlang. | | `tgwitness tunnel on` / `tgwitness tunnel restart` | Tezkor tunnel havolasini yarating / uning manzilini o'zgartiring. | Hamkasb tokenlari, sessiyalar va IP-cheklovlar uchun [Access bo'lim](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) iga hamda GitHub-dan Cloudflare-ga chiqarish ish jarayoni uchun [o'rnatgichni nashr qilishga](https://github.com/phishdestroy/TgWitness/blob/main/deploy/installer/README.md#automatic-publication-from-github) qarang. ## TgWitnessni olib tashlang O'chirish dasturi yo'q: paneldan chiqib, uning papkalarini o'chirib tashlaysiz. Ma'lumotlar papkasini o'chirib tashlash jurnallarni, imzolash kalitlarini, Telegram sessiyalarini va saqlangan fayllarni qaytarib bo'lmas darajada yo'q qiladi. Buni amalga oshirishdan oldin: 1. Sizga kerak bo'lgan narsalarni eksport qiling (**Eksportlar → Imzolangan ZIPni yuklab olish**) va imzolash kalitining barmoq izi hamda tekshiruv nuqtalarini ushbu mashinadan tashqarida saqlang. Ish maydonini saqlab qo'yish uchun to'plam to'xtatilgan holda butun ma'lumotlar papkasini nusxalang. 2. **Extras → Server 24/7** bo'limida, **Your servers** yoki bilan yaratilgan serverlarni o'chirib tashlang `python -m tgwitness.cloud destroy`; provayder ular o'chirilguncha to'lov oladi. 3. Har bir hisobingiz sessiyasini Telegramda **Sozlamalar → Qurilmalar** bo'limida yakunlang. Fayllarni o'chirish Telegram tomonidan sessiyani chiqarib yuborishni anglatmaydi. **Ubuntu root o'rnatilishi.** Ma'lumotlar papkasiga e'tibor bering, xizmatni to'xtating, so'ngra xizmatni, papkalarni va tezkor yo'lni o'chirib tashlang: ``` /opt/tgwitness/bin/tgwitness paths /opt/tgwitness/bin/tgwitness stop systemctl list-unit-files 'tgwitness-*' systemctl disable tgwitness- rm /etc/systemd/system/tgwitness-.service systemctl daemon-reload rm -rf /opt/tgwitness /var/lib/tgwitness- /usr/local/bin/tgwitness ``` **Linux yoki macOS foydalanuvchisi uchun o'rnatish.** Panelni yoping. Sozlangan Linux foydalanuvchi xizmati to'xtatiladi `systemctl --user disable --now tgwitness-`; uning bo'limi `~/.config/systemd/user/`. Keyin o'chirib tashlang `~/.local/share/tgwitness` (yoki sizning `TGWITNESS_INSTALL_DIR`) va `~/.local/bin/tgwitness` qo'lma-qo'lma yo'riqnomasini o'chirib tashlang. **Windows.** Panelni yoping va o'chirib tashlang `%LOCALAPPDATA%\TgWitness` (yoki sizning `TGWITNESS_INSTALL_DIR`). O'rnatuvchi hech qanday xizmat, rejalashtirilgan vazifa yoki tezkor yo'riqnoma qo'shmaydi. --- # Telegram · Birinchi sozlash va parametrlar Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/settings/ Sozlash ustasi, maqsadlar, interfeys darajalari, ulanish yo' nalishlari va hisob guruhi bo' yicha baham ko' riladigan sozlamalar. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Sozlash ustasi, maqsadlar, interfeys darajalari, ulanish yo'nalishlari va hisob guruhi bo'yicha baham ko'riladigan sozlamalar. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Boshlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/) ![Boshlash](https://phishdestroy.github.io/TgWitness/assets/chapter-start.svg) [Hisoblar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) · [Ulanish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/) · [Kirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) Yangi ish maydoni ochiladi `/first-run`: til va vaqt, interfeys darajasi, maqsad, ulanish, Telegram va suhbatlar. Har bir javob serverda o'zgargach darhol saqlanadi, shuning uchun sahifani yangilash (reload) shu bosqichni davom ettiradi. Oxirgi ekranda javoblar ro'yxati keltirilgan va ularning istalganiga qaytish imkonini beradi. Til, IANA vaqt zonasiga, tema va daraja har bir operator va har bir ish maydoni bo'yicha saqlanadi. O'rnatilgan qiymatlar brauzer tili, qurilma vaqt zonasi, tizim mavzusi va Oddiy interfeysdir. Tilni o'zgartirish panel sessiyasini saqlab qoladi. Imzolangan jurnal vaqtlari hech qachon o'zgarmaydi. `/settings` ustuvor yordamchi kabi bir xil yozuvlarni tahrirlaydi. Qidiruv asosiy maydonlar, parametrlar va kengaytirilgan shakllarni qamrab oladi; yashirin maydon darajani o'zgartirmasdan ochilishi mumkin. Darajalar faqat ko'rsatiladigan narsalarni o'zgartiradi: server ruxsatnomalarni mustaqil ravishda tekshiradi. To'plam sozlamalari va birinchi ulanish ish maydoni ma'muri ixtiyoridadir. | Daraja | Maydonlar | Yon panel | | --- | --- | --- | | Oddiy | Faqat eng muhimlari | Bosh sahifa, Suhbatlar, O'zgarishlar, Arxivlar, Sozlamalar | | Standart | Izohlar bilan umumiy sozlamalar | Case Board, Hisoblar va Kirishni qo'shadi | | Mutaxassis | Barcha maydonlar, cheklovlar va texnik tafsilotlar | Manbalar, Qo'shimchalar, Arxivga so'rov, Parametrlar, Hisob, Tizim logi va Integratsiyalarni qo'shadi | [Panel qo'llanmasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/) har bir bo'limni tasvirlaydi. ## Maqsadlar | Maqsad | Yig'ma | Fayllar | Tashqi xizmatlar | Server manzili | | --- | --- | --- | --- | --- | | Arxiv nusxasi | Off; **Start** eksportni ishga tushiradi | 20 MB gacha fotosuratlar | O'chirilgan | Avtomatik | | Suhbatlarni kuzatib boring | Uzluksiz | 60 soniyagacha / 20 MBgacha fotosuratlar va videolar | Vaqt tamg'alari va muammo bildirishnomalari | Avtomatik | | Dalillar | Uzluksiz | 1 GB gacha bo'lgan barcha fayllar | Vaqt tamg'alari, drand, bildirishnomalar | Yo'q, yashir | Dalil sifatida off-site nusxasi, guvoh bot va kod tekshiruvi tavsiya etiladi. Saqlash va bildirishnoma manzillari avvalo manzilga muhtoj. Tashqi xizmat bilan muloqot qiluvchi funksiya Telegram tashqarisidagi so'rovlarni ruxsat etishni so'raydi; uni o'chirish vaqt tamg'alarini, bildirishnomalarni va off-site nusxasini ham o'chirishni taklif etadi. Maqsadni o'zgartirish avvalo farqni ko'rsatadi va qo'lda kiritilgan o'zgartirishlar saqlanishi mumkin. Maqsaddan farq qiladigan maydon "**Siz tomonidan o'zgartirilgan**" deb belgilangan bo'lib, uni tiklash mumkin. Sozlamalar versiyalari boshqa yorliqda kiritilgan o'zgartirish ustidan ko'rib chiqilgan farqni qo'llanilishiga yo'l qo'ymaydi. ## Ulanish **Automatic** avvalo ommaviy MTProxy serverlarini, keyin WARPni, so'ngra to'g'ridan-to'g'ri ulanishni sinab ko'radi; oxirgisi faqat server manzili ko'rsatilishi mumkin bo'lgan holatda ishlatiladi. Automatic va WARP hash-nazorat qilingan komponentlarni o'rnatishi va serverni Cloudflare'da ro'yxatdan o'tkazishi mumkin. WARP mavjud wgcf/wireproxy menejeri va mahalliy SOCKS5 portidan foydalanadi; tizim marshrutlash jadvali o'zgarmaydi. Tashqi xizmatlar kerak bo'lganda, Automatic MTProxy o'rniga WARPni afzal ko'radi. Sizning o'zingizning proksingiz qabul qiladi `tg://proxy`, `socks5://`, `http://` va `https://`. HTTPS proksi sertifikati foydalanuvchi ma'lumotlari unga yuborilishidan oldin tekshiriladi. Ulanishni tekshirish besh daqiqa davom etadi va marshrut, siyosat hamda ustama javoblariga bog'langan; ulardan birini o'zgartirish yangi tekshiruvni talab qiladi. **Tekshirmasdan davom etish** mumkin va bu Telegramga kirishni almashtirmaydi. Tanlangan marshrut fon rejimida qayta tekshiriladi, va ulanish yo'qolgach Automatic o'z zanjirini yana ishga tushiradi. Jamoat proksi javob bermasa, hisob WARP bilan qizil rangga o'tadi va qayta tekshirish harakatlari paydo bo'ladi. ## Hisob guruhlari Guruhdagi hisoblar o'z sozlamalarini baham ko'radi. **Hisoblar → Guruhlar va umumiy sozlamalar → Umumiy sozlamalar** yoki hisobning Sozlamalar sahifasida **Guruh sozlamalari bo'limini** oching. Guruh maqsad, saqlangan fayllar, vaqt tamg'alari, drand, muammo bildirishnomalari, ofis tashqarisidagi nusxa, Telegram tashqarisidagi so'rovlar, IP rejim, nima yozib olish, qayta tekshirish jadval, bildirishnoma qoidalari, hisobot sozlamalari, parametrlar va ulanish yo'nalishini baham ko'radi. Bildirishnoma manzillari, proksi ma'lumotlari va tizimga kirish har bir hisob uchun alohida saqlanadi, shuningdek yozib olishni boshlash va to'xtatish ham alohida hisobda amalga oshiriladi. - Har bir a'zo guruhni kuzatadi. Sozlamalar qiymatni belgilaydi 🔗 **Guruhdan** yoki ✏️ **O'z qiymati**; **Guruh qiymatiga qaytish** uni qaytaradi. - O'zgarish ta'sir qiladigan hisoblarni ro'yxatlaydi (**3 ta hisobdan 2 tasiga tegishli**) va o'z qiymatini almashtirishdan oldin har bir hisob bo'yicha alohida so'raydi. Belgilanmagan hisoblar o'z qiymatlarini saqlab qoladi. - Guruh bo'lishmaydigan parametr **Ular baham ko'rilmaydi: har bir hisob o'z qiymatini alohida saqlaydi** bo'lib qoladi, siz **Ushbu qiymatni ulashing** tugmasini bosmaguningizcha. - **Bir hisobdan sozlamalarni nusxalashda** tanlangan hisobning qiymatlari guruh sozlamalari sifatida qabul qilinadi. - Guruhga ko'chirilgan hisobdan so'raladi: **guruh qiymatlarini olasizmi?** Aks holda u o'z qiymatlarini saqlaydi, ✏️ bilan belgilangan. Keyinchalik qo'shilgan hisoblar guruh qiymatlari bilan boshlanadi. - Kuzatuvchi hisob IP-rejasini pauza qilinguncha saqlaydi. Har bir o'zgarish asosiy ish maydonchasining va unga tegishli bo'lgan har bir a'zoning imzolangan jurnalida qayd etiladi. Guruhni o'chirish uning hisoblarini va ularning joriy qiymatlarini saqlab qoladi. Guruh sahifasi `/groups/` a'zolarni, e'tibor talab qiladigan masalalarni va bir nechta hisoblar ko'radigan suhbatlarni ko'rsatadi. [Hisob guruhlariga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#bulk-import-and-account-groups) qarang. ## Mavjud ish maydonchalari Sessiya yoki ilgari yakunlangan sozlama mavjud bo'lgan ish maydoni ustuvorlik yordamchisini ko'rmaydi. Sahifa yuklanganda uning qiymatlari maqsad bilan almashtirilmaydi. Maydonni yashirish funksiyani o'chirib qo'ymaydi yoki uning qiymatini o'chirib tashlamaydi. O'lcham va vaqt baholovi uchta tanlangan suhbatni va har biridan 20 tagacha xabarni o'qiydi. Bu faqat taxmindir: u Telegram limitlarini, ma'lum bir server tezligini yoki har bir suhbatdagi fayllarni oldindan aytib bera olmaydi. --- # Telegram · Hisoblar va sessiya formatlari Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/ Telefon, QR kod yoki avtorizatsiya kaliti orqali tizimga kiring, Telethon, Pyrogram yoki Telegram Desktop sessiyalarini import qiling va bir nechta akkauntlarni boshqaring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Telefon, QR kod yoki avtorizatsiya kaliti orqali tizimga kiring, Telethon, Pyrogram yoki Telegram Desktop sessiyalarini import qiling va bir nechta akkauntlarni boshqaring. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Boshlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/) ![Boshlash](https://phishdestroy.github.io/TgWitness/assets/chapter-start.svg) TgWitness **Telegram foydalanuvchi**hisobiga (bot emas) MTProto orqali Telethon yordamida kiradi. Har bir hisob o'zining alohida **ish** maydonida (API va buyruq qatori vositalarida "*workspace*" deb ataladi) joylashadi, o'z sessiyasi, manbalari, jurnali va imzolash kalitiga ega. Sessiya fayllari, sessiya satrlari va Auth kalitlari **hisob ma'lumotlari ruxsatnomalaridir**: ularni egallagan har kim o'sha hisob sifatida harakat qilishi mumkin. Ular xabarlar tarixini o'z ichiga olmaydi. > [!OGOHLANTIRISH] **Yo'qotishga qodir bo'lmagan narsani ishlatmang.** Shaxsiy yoki boshqa qimmatli hisoblarni ulashni va qadrlaydigan hisobingizda API ID / API xesh yaratishni qat'iyan tavsiya qilmaymiz. Bu TgWitness sinovdan o'tmaganligi haqida emas: Telegram hisoblarni oldindan aytib bo'lmaydigan tarzda cheklaydi va doimiy ravishda taqiqlaydi — u ortiqcha deb hisoblaydigan so'rov hajmlari uchun, mijoz yoki maqsadga qaramasdan, yetarli hujjatlashtirishsiz. Ko'plab taqiqlar qaytarib bo'lmaydi. Maxsus hisoblardan foydalaning. Sinovlarning muammosiz o'tishi Telegramga bog'liq, dasturiy ta'minotga emas, va keyinchalik hech narsani kafolatlamaydi. - [Bir qarashda](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#at-a-glance) - [Boshlashdan oldin: API ID va API xesh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#before-you-start-api-id-and-api-hash) - [Telefon raqami](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#phone-number) · [QR kod](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#qr-code) · [Auth kaliti + DC identifikatori](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#auth-key--dc-id) - [Hisob fayllari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#account-files): [Telethon .session](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#telethon-session) · [Pyrogram .session](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#pyrogram-session) · [Sessiya + JSON juftligi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#session--json-pair) · [TData](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#telegram-desktop-tdata) · [StringSession](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#telethon-stringsession) · [Hisob JSON](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#account-json) - [Nimangiz borligini aniqlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#identify-what-you-have) · [Qo'llab-quvvatlanmaydigan formatlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#unsupported-formats) - [Bir nechta hisoblar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#multiple-accounts) · [Hisob fayllarini xavfsiz saqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#keeping-account-files-safe) · [Muammolarni bartaraf etish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#troubleshooting) ## Bir qarashda | Sizda nima bor | **Hisob qo'shish** yorlig'i | Shuningdek, sizga quyidagilar ham kerak bo'ladi | | --- | --- | --- | | Telefon raqami va uning kirish kodlariga kirish | **Telefon** | Agar yoqilgan bo'lsa, 2FA paroli | | Telegram boshqa qurilmada ochiq | **QR kod** | Agar yoqilgan bo'lsa, 2FA paroli | | `.session` fayli (Telethon yoki Pyrogram) | **Fayllar** | Ilova sozlamalari uchun ixtiyoriy hamroh JSON | | `.session` va `.json`, bir xil nomga ega | **Fayllar** (ikkalasini ham tanlang) | Odatda boshqa hech narsa | | `tdata` uchun Telegram Desktop papkasi | **Fayllar** (ZIP ko'rinishida) | Agar belgilangan bo'lsa, ish stoli mahalliy paroli | | Telethon StringSession (matn, `.txt`, `.tgwitness-session`) | **Fayllar** | Alohida API juftligi talab etilmaydi | | `.json` sessiya yoki Auth kaliti bilan | **Fayllar** | Alohida API juftligi talab etilmaydi | | Auth kaliti (512 geksadetsimal belgilar) va uning DC raqami | **Auth kaliti** | Ixtiyoriy foydalanuvchi ID | TgWitness fayllarni ularning nomiga qarab emas, **mazmuniga** qarab aniqlaydi. Fayl nomini o'zgartirish uni hech qachon konvertatsiya qilmaydi. ## Boshlashdan oldin: API ID va API xesh Telegram API ilovasini yaratmasdan tizimga kira olasiz. Agar ish maydonida hech qanday juftlik kiritilmagan, import qilinmagan yoki allaqachon saqlanmagan bo'lsa, TgWitness o'zining ichki 50 jamoat API juftliklaridan (`tgwitness/api_pool.py`) yangi kirish uchun avvalo Telegram Desktopni afzal ko'radi va saqlangan juftlikni birinchi o'ringa qo'yadi; qolgan nomzodlar aralashtiriladi. Agar Telegram juftlikni rad etsa (`API_ID_INVALID`, `API_ID_PUBLISHED_FLOOD`, `UPDATE_APP_TO_LOGIN`), keyingisi sinab ko'riladi, kirishda sakkiztagacha; rad etilgan juftliklar qayta ishga tushirilguncha o'tkazib yuboriladi. Kirish uchun ishlatilgan juftlik hisob bilan saqlanadi va undan qayta foydalaniladi. Telegram uchun ilovani aniqlashda **API ID** va **API xesh**idan foydalaniladi; ular o'zlari hisobni avtorizatsiya qilmaydi. Ulanish maydonlari yo'q bo'lsa, biriktirilgan [opentele2 2.0.0 kataloglaridan](https://github.com/DedInc/opentele2/tree/7e973bc71cd7a714ad13ac703c0895a90d36a735) deterministik qurilma/OS juftligi ishlatiladi: Desktop `2040`, Android `6`, Android X `21724`, iOS `10840`, macOS `2834` va Web `2496`. Androidning manba-build IDsi `4` ham [Telegram Android'ning BuildVars'ida](https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java) ko'rsatilganidek Android katalogidan foydalanadi. Web bo'yicha standart A; import qilingan `K` ilova-versiya qo'shimchasi yoki `macos` til paketi K ni tanlaydi, versiya `0.7.0` esa Webogram ni tanlaydi. Noma'lum ilova IDlari Telethon'ning host bo'yicha standart sozlamalarini saqlaydi. Import qilingan maydonlar har doim ustun keladi, jumladan eski ilova versiyasi va bo'sh til paketi. Katalog API ID/hashni hech qachon o'zgartirmaydi. Uning versiya snapshoti aloҳида ko'rib chiqiladi, kirish paytida olinmaydi. Saqlangan profil yangilanishlardan keyin barqaror bo'lib qoladi. `account.getAuthorizations` Telegramning saqlangan ruxsatnoma metama'lumotlarini qaytaradi; u har bir yangi `initConnection` chaqirilishining aks sadosi emas. Uni haqiqiy yuborilgan profil bilan solishtiring. Mavjud ruxsatnomani bog'lash uning hamroh API xeshini tasdiqlamaydi: `initConnection` API IDni yuboradi, xesh esa kirish so'rovlari tomonidan ishlatiladi. Yangi telefon yoki QR avtorizatsiyadan so'ng, TgWitness sozlamalarni, eng yaqin DCni, onlayn holatni, tillarni (tillar paketi bo'sh bo'lmaganida), ilova yangilanishlarini va xizmat ko'rsatish shartlari yangilanishlarini so'raydi, so'rovlar orasidagi vaqt 0.3–1.5 soniyaga teng. Statusi yangilash hisobni qisqa muddat onlayn deb belgilaydi. Ushbu ketma-ketlik faqat tizimga kirish yakunlanganda bir marta bajariladi, import qilish, qayta ulanish yoki qayta ishga tushirishda emas. Avtorizatsiya avval saqlanadi; muvaffaqiyatsiz so'rov ketma-ketlikni qayta urinmay yoki tizimga kirishni bekor qilmay to'xtatadi. Natijalar javob tanalariga emas, balki xato nomlariga asoslanib `account.initialized` sifatida qayd etiladi. Ushbu ketma-ketlik hisob cheklovlariga qarshi kafolat emas. `tdesktop` uchun, agar `tz_offset` ko'rsatilmagan bo'lsa, serverning mahalliy UTC ofseti ishlatiladi, [opentele2 algoritmi](https://github.com/DedInc/opentele2/blob/7e973bc71cd7a714ad13ac703c0895a90d36a735/crates/opentele2-core/src/fingerprint.rs) (MIT; litsenziya `tgwitness/client_profiles.LICENSE` da) yordamida 900 soniyaga to'liqlashtiriladi. U har bir ulanishda yangilanadi, shunda yozgi vaqt o'zgarishlari aks ettiriladi. Import qilingan `tz_offset` barcha platformalarda ustunlikka ega bo'lib, aniq saqlanadi, shu jumladan nol qiymatda. Boshqa `initConnection.params` yozuvlari saqlanib qoladi. HTTP kirish formasida fayl importi orqali qaytarilgan raqamli vaqt zonasini qabul qiladi; boolean qiymatlar, fraksion sonlar va qo'llab-quvvatlanadigan diapazondan tashqaridagi ofsetlar rad etiladi. To'g'ridan-to'g'ri, SOCKS5 va HTTP CONNECT yo'nalishlari Telethonning `ConnectionTcpObfuscated` (obfuskatsiyalangan qisqartirilgan MTProto)dan foydalanadi. HTTPS CONNECT proksi tomon TLSni saqlab qoladi va tunnel ichida xuddi shu obfuskatsiyalangan transportdan foydalanadi. MTProxy o'zining zarur tasodifiylashtirilgan oraliq transporti va maxfiy ma'lumotlarni boshqarishni saqlab qoladi. Yo'nalish almashtirishlar ham xuddi shu tanlovlarni qo'llaydi. Obfuskatsiya paket ramkalashni o'zgartiradi; u hisobni yoki uning klient metama'lumotlarini Telegram'dan yashirmaydi va cheklovlarga qarshi immunitetni anglatmaydi. Ruxsat berilgan mijoz ulanib bo'lgach, TgWitness konfiguratsiyani, eng yaqin DCni, joriy avtorizatsiyani, ko'rib chiqilgan qatlam asosini, tillarni, ilova yangilanishlarini va xizmat ko'rsatish shartlari yangilanishlarini tekshiradi. Ushbu diagnostika har bir mijoz instantsiyasida, ma'lumotlarni yig'ishdan oldin bir marta ishga tushadi va ulanish tafsilotlari ostida vaqti bilan birga ko'rsatiladi. `account.connection_checked` sessiya xeshlarisiz, IP-manzillar, tokenlar yoki API xeshlarisiz natijani qayd etadi. Ular hech qachon shartlarni qabul qilmaydi yoki yangilanishlarni o'rnatmaydi. So'rov muvaffaqiyatsiz tugasa yoki FloodWait keyingi so'rovlarni to'xtatsa, yo'qolgan natija noma'lum bo'lib qoladi. Tarmoq tekshiruvlari o'tkazilmay qolgan bo'lsa ham, mahalliy tekshiruvlar o'z natijalarini hali ham hisobot qilishi mumkin. FloodWait diagnostikasi muvaffaqiyatsiz bo'lgan TL usulini, har qanday Takeout/range o'ramlarini, server tomonidan so'ralgan kutishni va `telegram.backoff` dagi samarali muddatni saqlab qoladi. Ulanish tafsilotlari so'rovlar to'xtatilgan paytda usul va muddatni ko'rsatadi. Diagnostika har bir usul bo'yicha mijoz chaqiruvlari hisoblagichlarini o'z ichiga oladi; bu hisoblagichlar ushbu mijoz yaratilganidan beri ichki tengdosh hal qilishni alohida hisoblaydi, ammo paketlarni yoki Telethonning ichki qayta urinish urinishlarini hisoblamaydi. Joriy hisoblagichlar status APIda `collector.rpc_activity` sifatida ham mavjud. Hech qanday so'rov argumentlari, foydalanuvchi nomlari, kirish hashlari yoki istisno matni kiritilmagan. Oxirgi diagnostika va to'liq muddat qayta ishga tushirishdan keyin saqlanadi. Metod yozuvi bo'lmagan avvalgi kutishlar keyinchalik aniqlab bo'lmaydi. Manbaani ko'rib chiqish uchun [eksport limitlariga](https://github.com/phishdestroy/TgWitness/blob/main/docs/EXPORT-LIMITS.md) va kashfiyot bilan tarixni olish o'rtasidagi farqqa qarang. `official_app=True` yoki `False` — bu Telegramning joriy-ruxsat berish bayrog'i. Hech biri hisob cheklangan, ishonchli yoki kuzatuv ostida ekanligini aniqlamaydi. Mavjud dalil-rejimidagi `account.devices` snapshotlari barcha kirish amalga oshirilgan qurilmalar tarixini saqlab qoladi; ulanish diagnostikasi esa faqat joriy qurilma tavsifini saqlaydi. Ulanishdan oldin, maslahati tekshiruvlar API platformasi, til paketi, qurilma/OS va ilova-versiya formatlari, mobil tizim lokalizatsiyasi hamda Telethonning haqiqiy sxema qatlamini ko'rib chiqilgan katalog asosiy chizig'i bilan solishtiradi. Ogohlantirishlar server logida va hisob ma'lumotlari metadasida paydo bo'ladi; ular hech qachon import qilingan qiymatlarni almashtirmaydi yoki sxema qatlamini o'zgartirmaydi. Boshqa qatlam moslikni tekshirish signali bo'lib, buzilgan yoki cheklangan akkaunt dalili emas. Ushbu tekshiruvlar va `official_app` Telegram akkauntni cheklovlardan xavfsiz deb hisoblashini tasdiqlamaydi. Ulanmagan akkaunt holati yangi qurilma tavsifini yaratish o'rniga saqlangan profilni ishlatadi. Buning o'rniga o'zingizning ilovangizdan foydalanish uchun (ilovani ro'yxatdan o'tkazgan hisob xavf ostida; [Qo'shimcha API havzasi nima uchun?](https://github.com/phishdestroy/TgWitness/blob/main/docs/PROJECT-GUIDE.md#connect-a-telegram-account) bo'limiga qarang): 1. [my.telegram.org saytini](https://my.telegram.org) oching va o'zingizga tegishli istalgan telefon raqami bilan tizimga kiring. Kod Telegram ilovasiga keladi, SMS orqali emas. 2. **API ishlab chiqish vositalarini** tanlang. 3. Ilova yarating: istalgan sarlavha va qisqa nom (5–32 harf), platforma: **ish stoli**. URL va tavsif bo'sh qoldirilishi mumkin. 4. **App api_id** (raqam) va **App api_hash** (32 geksadesimal belgilar) nusxasini oling. Panelda kirish formasining ostida ochiq **API ID va Hashni** ko'ring. Siz bitta `api_id:api_hash` juftligini **API ID**ga joylashtirishingiz mumkin va ikkala maydon ham to'ldiriladi. Bir juftlik barcha hisoblaringiz uchun ishlatilishi mumkin. Muvaffaqiyatli tizimga kirgandan so'ng u faqat shu ish maydonida shifrlangan holda saqlanadi va hech qachon brauzerga qaytmaydi. Uch xil turdagi akkaunt ma'lumotlari ishtirok etadi: | Maxfiy | Ochiladi | Joylashuvi | | --- | --- | --- | | Panel tokeni | TgWitness veb-paneli | Ma'lumotlar katalogida `panel-token.txt` yoki `TGWITNESS_TOKEN` | | API ID + xesh | O'zi hech narsa emas; ilovani aniqlaydi | O'rnatilgan juftlik, import qilingan sozlamalar yoki my.telegram.org saytida o'zingizning ilovangiz | | Hisobni avtorizatsiya qilish | Telegram akkaunti | Telefon/QR logini orqali yaratilgan yoki sessiya sifatida olib kelingan | Agar Telegramga proksi orqali ulanish kerak bo'lsa, avvalo **Hisob → Sozlamalar → Ulanish sozlamalari → Ulanish yo'nalishini o'zgartirish** bo'limida sozlang. ## Telefon raqami 1. **Hisobni** oching, **"Telefon**" yorlig'iga o'ting va raqamni xalqaro formatda kiriting, masalan, `+44 7700 900123`. Bo'shliqlar va chiziqchalar avtomatik ravishda olib tashlanadi. 2. **Davom etish tugmasini** bosing. API ID va Hash bo'sh qoldirilishi mumkin. 3. Telegram yuboradigan kodni kiriting (odatda Telegram ilovasiga; SMS kafolatlanmaydi). 4. Agar akkauntda ikki bosqichli tasdiqlash yoqilgan bo'lsa, o'sha parolni kiriting. Bu panel tokeni yoki qurilma paroli emas. 5. Kirishdan so'ng ko'rsatilgan hisob IDni tekshiring, so'ng manbalarni tanlang. Kirish kodlari va 2FA paroli hech qachon diskka yozilmaydi. ## QR kod Hisob allaqachon telefon yoki boshqa kompyuterda tizimga kirgan bo'lsa, buni ishlating. 1. **QR kod** yorlig'i → **QR kodni ko'rsatish**. API ID va Hash bo'sh qoldirilishi mumkin. 2. Kirish qilingan qurilmada: **Sozlamalar → Qurilmalar → Desktop qurilmasini bog'lash**, kodni skanerlang va tasdiqlang. 3. Telegram so'rasa, TgWitness'ga 2FA parolini kiriting. QR tasviri mahalliy ravishda yaratiladi. Kodlarning amal qilish muddati tugaydi; qayta urinib ko'rish uchun **"Yana bir QR kod yaratish"** tugmasini bosing. Panelni qulflash, ish maydonini almashtirish yoki boshqa kirishni boshlash kutib turgan kodni bekor qiladi. ## Auth kaliti + DC identifikatori Auth kaliti har bir Telegram sessiyasining asosiy 256 baytli ruxsat kalitidir, u **512 geksadesimal**belgida, ma'lumot markazi raqami **DC 1–5** bilan birga yozilgan. 1. Tab **Auth kaliti**. To'liq kalitni joylashtiring; `…`ni o'z ichiga olgan qisqartirilgan kalit ishlamaydi. 2. Kalit bilan birga taqdim etilgan DC ID ni tanlang. 3. Ixtiyoriy ravishda **Foydalanuvchi ID**-ni kiriting. Agar Telegram boshqa hisobni xabar qilsa, TgWitness ulanishni rad etadi. 4. **Connect hisobini** bosing. Auth kaliti (512 belgili) API xeshidan (32 belgili) farq qiladi. Xuddi shu kalitni JSON shaklida ham import qilish mumkin, qarang: [Hisob JSON](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#account-json). ## Hisob fayllari **Hisobga qo'shish → Fayllar** bo'limiga o'ting va **bitta hisobga tegishli**, jami **8 MiB** gacha bo'lgan to'**rt**ta**faylni** tanlang, so'ng **Hisobni bog'lash tugmasini** bosing. **Files** va **Auth kaliti** hamda ommaviy import shakllari ulanishdan oldin parallel sessiya ogohlantirishini ko'rsatadi. Standart bo'yicha import qilingan ruxsatnomalar qayta ishlatiladi. Bu yerda uning kaliti ishlatilayotgan paytda asl mijozni yopiq holda saqlang. **Files** va **Auth kaliti** shuningdek quyida tavsiflangan **mustaqil ruxsatnoma yaratish**imkonini ham beradi. Ommaviy import hanuzgacha to'g'ridan-to'g'ri rejimdan foydalanadi. Telefon va interaktiv QR orqali tizimga kirish alohida ruxsatnomalar yaratadi. Ogohlantirish sarlavhasi import shaklida ko'rinib turadi; fayllar yoki kalit/seans satri taqdim etilganda uning to'liq izohi avtomatik ochiladi. O'qib bo'lgach, uni yopish mumkin, shunda fayl tanlovchisi va ulanish boshqaruvlari telefonida ham ishlatilishi mumkin bo'ladi. - Fayllar TgWitness serveringiz **xotirasida** konvertlanadi. Yuklamalar saqlanmaydi, ZIP arxivlari diskka chiqarilmaydi va hech qanday tashqi xizmatga murojaat qilinmaydi. - Olingan sessiya keyin Telegram bilan tekshiriladi. Agar faylda foydalanuvchi ID ko'rsatilgan bo'lsa, u Telegram xabar qiladigan hisobga mos kelishi kerak. - Turli hisoblar yoki turli API ma'lumotlarini tasvirlovchi fayllar qabul qilinmaydi ularning birini tanlash o'rniga. - **Parol yoki sessiya matni** TData mahalliy parol maydonini o'z ichiga oladi, u StringSession va **Read**fayllarini**imzolamasdan**joylashtirish uchun mo'ljallangan qutidir (Telegram bilan bog'lanmasdan shaklni to'ldiradi). ### Mustaqil avtorizatsiya yarating Import qilingan fayllarni yoki Auth kalitini bog'lashdan oldin **mustaqil ruxsatnomani yarating**. TgWitness import qilingan donorni qisqa muddatga bog'laydi, uni yangi mijozning QR kirish tokenini tasdiqlash uchun ishlatadi va tasdiqlangandan so'ng donorni darhol uzib qo'yadi. Yangi mijozning o'z ruxsat kaliti va alohida tanlangan ish stoli profili mavjud. Donor tomonidan taqdim etilgan API ma'lumotlari va qurilma profili faqat donor ulanishi uchun ishlatiladi. Hech qanday mavjud ruxsat bekor qilinmaydi yoki bekor qilinishi qayd etilmaydi. **Ushbu bosqichda donorning asl mijozini to'liq yopiq holda saqlang.** Dastlabki ulanish hanuzgacha nusxalangan kalitdan foydalanadi, shuning uchun bu rejim dastlabki parallel foydalanish xavfini bartaraf eta olmaydi. Yangi avtorizatsiya ulanishi bilan egasi asl mijozni qayta ochib, ikkalasini mustaqil ravishda ishlatishi mumkin. Interaktiv **QR kodli** kirish asl mijozga kalitni bu yerga nusxalamasdan yoki ulamasdan kirishni tasdiqlash imkonini beradi. Agar Telegram 2ni so'rasa, ushbu rejim mavjud bo'lsa, tanlangan JSON-dagi `twoFA`dan foydalanadi yoki parolni so'raydi. Rad etilgan import qilingan parol parol formasiga qaytadi. Parollar saqlanmaydi. Nomzod kalit `independent_login.enc`da shifrlangan holda saqlanadi, jumladan ma'lumotlar markazi migratsiyasi paytida bo'lgan o'zgarishlar bilan. Tuzilish uzilgach, saqlangan nomzodni davom ettirish uchun bir xil donor va ushbu opsiyani tanlang. Ish maydoni shu hisob uchun ajratilgan holda qoladi; muvaffaqiyatsiz yakunlash yangi ish maydonini o'chirib tashlamaydi. Uning ma'lumotlar katalogi va ombor kalitini saqlang. Yakuniy kirish ma'lumotlari va `account.authorized` jurnal yozuvida import usuli, kirish formatlari va donor API ID ko'rsatiladi, donor kaliti yoki paroli kiritilmaydi. On 5 Noyabr 2026, maxsus hisob Telethon, Pyrogram va TData donorlari bilan jonli tekshiruvlardan oʻtdi: 2FAni yakunlash, alohida yangi avtorizatsiya kalitlari, donor va yangi mijozning bir vaqtda kirish huquqi hamda ommaviy kanalni o'qish. Telethon holatida parol bosqichidagi uzilishdan so'ng saqlangan nomzod qayta tiklandi. Har bir yangi avtorizatsiya kirishdan keyingi oltita dastlabki tashabbus so'rovlarini bajarib, uning imzolangan jurnali tasdiqlandi. Asl sessiya taqdim etilgan to'rt formatning barchasida ishlatilishi mumkin bo'lib qoldi. Telegram [RPC xatoliklar ma'lumotlar bazasi](https://core.telegram.org/api/errors.json) `FRESH_CHANGE_ADMINS_FORBIDDEN` ni administratorlarni o'zgartirish bilan, `FRESH_CHANGE_PHONE_FORBIDDEN` ni telefon raqamini o'zgartirish bilan va `FRESH_RESET_AUTHORISATION_FORBIDDEN` ni boshqa sessiyalarni bekor qilish, ularning umrini o'zgartirish yoki passkey ro'yxatdan o'tkazish bilan bog'laydi. `SESSION_TOO_FRESH_*` va `PASSWORD_TOO_FRESH_*` egalikni o'tkazish hamda daromad yoki sovg'alarni yechib olish bilan bog'liq. Bu yig'im operatsiyalari emas; yangi kirish 24 soatlik o'qish taqiqini anglatmaydi. Eksport alohida holda `TAKEOUT_INIT_DELAY_*` ni qaytarishi mumkin. TgWitness server tomonidan so'ralgan tanaffuslarni saqlab qoladi va cheklovlarni chetlab o'tish uchun tokenni avtomatik qabul qilishni qayta urinmaydi yoki sessiyalarni bekor qilmaydi. ### Telethon `.session` | | | | --- | --- | | Bu nima | SQLite ma'lumotlar bazasi Telethon asosidagi vositalar tomonidan yaratiladi, masalan `my_account.session` | | Tomonidan tan olingan | Jadvalar`sessions` (`dc_id`, `server_address`, `port`, `auth_key`) va `version` = 7 yoki 8 | | Talablar | Aniq bir ruxsat berilgan sessiya qatori; yopiq, to'liq ma'lumotlar bazasi | Avvalo faylni yaratgan dasturni yoping. Agar uning yonida `my_account.session-journal` yoki `my_account.session-wal` mavjud bo'lsa, ma'lumotlar bazasi yakunlanmagan: asl klientni toza ochib, toza yoping. Ushbu yon fayllarni o'chirish buzilgan nusxa qoldirishi mumkin. ### Pyrogram `.session` | | | | --- | --- | | Bu nima | SQLite ma'lumotlar bazasi Pyrogram asosidagi vositalar yaratadi | | Tomonidan tan olingan | `sessions` va `dc_id`, `auth_key`, `test_mode`, `user_id`, `is_bot`; `version` = 2 yoki 3 | | Talablar | Ishlab chiqarish tarmog'ida bitta ruxsat etilgan **foydalanuvchi** sessiyasi. Bot va test-DC sessiyalari rad etiladi | Saqlangan foydalanuvchi identifikatori tizimga kirish paytida Telegram bilan tekshiriladi. ### Sessiya + JSON juftligi Hisoblar ko'pincha bir xil nomga ega ikki fayl ko'rinishida tarqatiladi, masalan `447700900123.session` va `447700900123.json`. **Ikkalasini** bir vaqtda tanlang. - JSONdan TgWitness `app_id`/`api_id` va `app_hash`/`api_hash` ni ishlatadi, shuning uchun odatda API ma'lumotlarini kiritishingiz shart emas. - Ulanish profili quyidagi parametrlardan foydalanadi: `device_model` (`device` nomi bilan ham), `system_version` (`sdk` nomi bilan ham), `app_version`, `lang_code`, `system_lang_code` (`system_lang_pack` nomi bilan ham), `lang_pack` va ixtiyoriy `tz_offset` (UTCdan soniyalarda, -43200 dan 50400 gacha). Taqdim etilgan maydonlar avtomatik hosil qilingan qiymatlar va panel/brauzer tilidan ustun turadi. To'qnashuvchi aliaslar rad etiladi. Hal qilingan profil shifrlangan ish maydoni ma'lumotlarida saqlanadi va qayta ishga tushirilgandan so'ng, jumladan uning ilova versiyasi bilan qayta ishlatiladi. - `phone`, proxy sozlamalari va qurilma tokenlari **e'tiborsiz** qoldiriladi. `twoFA` faqat o'qish uchun mo'ljallangan **Mustaqil avtorizatsiya yaratish** tanlanganda; to'g'ridan-to'g'ri importda e'tiborsiz qoldiriladi. - Qo'llab-quvvatlanadigan avtorizatsiya maydoni bo'lmagan JSON faqat metadata hisoblanadi. Uning sessiya faylini qo'shing yoki telefon yoki QR orqali tizimga kirishni davom ettiring. Qo'llab-quvvatlanadigan sessiya yoki Auth kalitini o'z ichiga olgan JSON mustaqil ravishda avtorizatsiya qilishi mumkin; [Account JSON-ga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#account-json) qarang. ### Telegram Desktop (TData) TData — bu Telegram Desktop ilovasining (desktop.telegram.org saytidan olingan ko'p platformali ilova) `tdata` papkasi. | Tizim | `tdata` bo'yicha standart joylashuv | | --- | --- | | Windows | `%APPDATA%\Telegram Desktop\tdata` (portativ Telegram: `Telegram.exe` yonida) | | Linux | `~/.local/share/TelegramDesktop/tdata` | | macOS | `~/Library/Application Support/Telegram Desktop/tdata` | Uni import qilish uchun: > **Parallel sessiya ogohlantirishi.** To'g'ridan-to'g'ri TData importi Telegram Desktop'ning avtorizatsiya kalitidan qayta foydalanadi. Ushbu kalitni Desktop va TgWitness'da bir vaqtda ishlatmang. Telegram avtorizatsiyani `AUTH_KEY_DUPLICATED` xatosi bilan bekor qilishi mumkin va yangi tizimga kirishgacha ikkala nusxa ishlamay qoladi. > > > > TgWitness import qilingan sessiyadan foydalanganda Desktop-dan, jumladan uning tray jarayonidan to'liq chiqib ketib, shu nusxani yopiq holda saqlang. **Chiqib ketishni tanlang, tizimdan chiqish yoki sessiyani bekor qilishni bajarmang:** bekor qilish import qilingan nusxani ham bekor qiladi. Agar ikkala klientni ham ishlatishingiz kerak bo'lsa, **Mustaqil avtorizatsiya yaratishni** tanlang va yangi kirish muvaffaqiyatli bo'lguncha Desktop-ni yopiq holda saqlang, yoki TgWitness-ga telefon yoki QR orqali kirishni bajaring. Alohida akount tavsiya etiladi, ammo bu nusxalangan kalitlarni parallel ravishda ishlatishni xavfsiz qilmaydi. > > > > Bu shuningdek import qilingan `.session` fayllariga, StringSession matni va Auth Key HEX ga ham tegishli. O'zining mustaqil yaratilgan ruxsatnomalariga ega boshqa mijozlar ham tizimga kirgan holda qolishi mumkin. [Telegramning AUTH_KEY_DUPLICATED hujjatlarini](https://core.telegram.org/api/errors#406-not-acceptable) ko'ring. 1. Telegram Desktop'dan to'liq chiqing. 2. `tdata`-dan **faqat** ushbu ikkita elementni o'z ichiga olgan ZIP yarating: - `key_datas` - `s` bilan tugaydigan 16 belgili fayl yonida, odatda `D877F783D5D3EF8Cs` Media keshini o'z ichiga olgan butun papkani siqib yuborish odatda limitlardan oshadi (512 ta yozuv, 32 MiB ochilmagan holatda). 3. Fayllarda ZIP-ni tanlang. Agar Telegram Desktop'da **mahalliy parol** bo'lsa, avvalo uni **Passcode yoki sessiya matni** satriga kiriting. Bu 2FA paroli emas. Qo'llab-quvvatlanadi: har bir arxiv uchun bitta hisob, zamonaviy `key_datas`/`key_data0`/`key_data1` saqlash, mahalliy parol. Qo'llab-quvvatlanmaydi: bir nechta tizimga kirgan hisoblarga ega papkalar, eski Desktop tartiblari, parol bilan himoyalangan ZIP-fayllar va macOS uchun alohida mahalliy "Telegram for macOS" ilovasi. ### Telethon StringSession Bir qatorli matn, odatda `1` bilan boshlanib, taxminan 350 belgidan iborat. Uni `.txt` yoki `.tgwitness-session` fayli sifatida yuklang (eng ko'pi bilan 4 KiB) yoki **Passcode yoki session matni** ostiga joylashtiring. Faqat Telethon satrlari qabul qilinadi; Pyrogram va TDLib satrlari boshqa formatlardan foydalanadi. ### Hisob JSON **`.json`** bilan tugaydigan faylda, maksimal **64 KiB** hajmdagi bitta JSON ob'ekti. | Maydon (laqablari) | Ma'no | | --- | --- | | `api_id` (`app_id`) | Ilova ID, ijobiy son | | `api_hash` (`app_hash`) | Ilova xesh, 32 geksadesimal belgilar | | `string_session` (`session_string`, `session_str`; eski `session`) | Telethon StringSession matni, fayl nomi emas | | `auth_key` (`auth_key_hex`) + `dc_id` | 512 belgili Auth kalitini va DC 1–5 ni to'ldiring | | `user_id` (`id`) | Ixtiyoriy; ruxsat saqlanmasidan oldin Telegramda tekshiriladi | | `device_model` (`device`) | Ulanish qurilmasi tavsifi | | `system_version` (`sdk`) | Connection OS versiyasi | | `app_version` | Telegramga yuborilgan ilova versiyasi | | `lang_code`, `system_lang_code` (`system_lang_pack`), `lang_pack` | Kliyent tili, tizim tili va kliyent til paketi; bo'sh `lang_pack` ruxsat etiladi | | `tz_offset` | Ixtiyoriy UTC ofseti soniyalarda, `initConnection.params` ga yuboriladi; butun yoki o'nlik butun sonli satr | Agar taxallus va asosiy nom ikkalasi ham mavjud bo'lsa, ular mos kelishi kerak. Aniq Telethon sessiya maydonchalari boshqa formatdagi umumiy `session` blobiga nisbatan ustunlikka ega. Agar ikkalasi ham tanib bo'ladigan Telethon sessiyalarini o'z ichiga olsa, ular bir xil avtorizatsiyani tasvirlashi kerak. Aniq maydoncha bo'lmasa, `session` haqiqiy Telethon StringSession bo'lishi kerak. Misollar: ``` { "app_id": 1234567, "app_hash": "0123456789abcdef0123456789abcdef" } ``` ``` { "api_id": 1234567, "api_hash": "0123456789abcdef0123456789abcdef", "auth_key": "REPLACE_WITH_ALL_512_HEXADECIMAL_CHARACTERS", "dc_id": 2, "user_id": 123456789 } ``` Birinchi misol faqat API ma'lumotlarini to'ldiradi; telefon yoki QR orqali tizimga kiring yoki sessiya faylini qo'shing. Ko'p hisob ro'yxatlari (hisoblarning JSON massiv) qabul qilinmaydi. ## Nimangiz borligini aniqlang | Ko'ryapsiz | Bu | Foydalaning | | --- | --- | --- | | `*.session`; uni matn muharririda ochish yuqorida `SQLite format 3` ko'rinishini ko'rsatadi | Telethon yoki Pyrogram SQLite | **Fayllar** (avtomatik aniqlangan) | | `tdata` papkasi ichida `key_datas` | Telegram Desktop TData | Ikki faylni ZIP qiling, so'ngra **Fayllar** | | `1` bilan boshlanadigan bitta matn qatori, taxminan 350 belgili | Telethon StringSession | **Fayllar** | | `*.json` va `app_id`/`app_hash` | Qo'shimcha metadata | **Fayllar**, sessiyasi bilan birga | | `*.json`, `auth_key` yoki `string_session` bilan | Hisob JSON | **Fayllar** | | 512 belgilar `0-9a-f` | Avtorlik kaliti | **Auth kaliti** | | 32 belgilar`0-9a-f` | API xesh | **API ID + Hash** | | `td.binlog` yoki TDLib ilovasidan `db.sqlite` | TDLib saqlash | Qo'llab-quvvatlanmaydi | | `123456789:AA…` | Bot tokeni | Qo'llab-quvvatlanmaydi | ## Qo'llab-quvvatlanmaydigan formatlar | Format | Alternativ | | --- | --- | | TDLib saqlash (`td.binlog`) va TDLib eksportlari | Telefon yoki QR orqali tizimga kiring | | Pyrogram sessiya **satrlari** | Pyrogram `.session` faylidan yoki telefon/QR kodidan foydalaning | | Bir nechta tizimga kirgan hisoblar bilan TData | Telegram Desktop'dagi boshqa hisoblardan chiqib turing yoki har bir hisob uchun alohida sessiya faylidan foydalaning | | Bot tokenlari | Qo'llab-quvvatlanmaydi: TgWitness foydalanuvchi hisobini kuzatadi | | Ko'plab akkauntlarning CSV/JSON ro'yxatlari | Qo‘llab-quvvatlanadigan sessiya fayllarini **Hisoblar → Hisoblarni import qilish** orqali import qiling yoki alohida ishchi maydonlarda telefon/QR orqali kiring | | Test-DC yoki bot sessiyalari | Ishlab chiqarish foydalanuvchi hisobini ishlating | ## Bir nechta hisoblar Hisob tanlovchisining yonidagi **+** tugmasini bosing yoki **Hisob → Sozlamalar → Ulanish sozlamalari → Ish maydonlari bo'limini** oching, yorliq kiriting va kirishni bosing. - Asosiy ish maydoni hamda istalgan sonli boshqa ish maydonchalari mavjud. Har birining o'z sessiyasi, proxy yo'li, manbalari, yozib olish siyosati, jurnali, imzolash kaliti, tekshirish nuqtalari va eksportlari mavjud. - Ko'rsatilayotgan ish maydonini almashtirish boshqalarni to'xtatmaydi. - Jurnal uni yaratgan akkauntga bog'langan bo'lib qoladi. Boshqa akkauntga kirish uchun alohida ish maydoni talab etiladi va bir akkaunt ikki ish maydoniga tayinlanishi mumkin emas. - Asosiy panel tokeni barcha ish maydonlarini nazorat qiladi. [Berilgan kirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) boshqalarni tanlangan hisoblar va suhbatlarga, alohida ruxsatnomalar va sessiya cheklovlari bilan cheklashi mumkin. - **Hisoblar** ish maydonini qayta nomlaydi va qo'shilgan ish maydonini sessiyasi, jurnali, manbalari va imzolash kaliti bilan o'chirib tashlaydi. Asosiy ish maydoni paneldan o'chirilmaydi. ### Ommaviy import va hisob guruhlari **Hisoblar → Hisoblarni import qilish** orqali bir nechta hisobni qo'shing, fayllarni bazaviy nom bo'yicha juftlang va har bir kirish natijasini ko'ring. Har bir hisobga alohida ish maydoni beriladi. Guruh tegishli hisoblarni ularning sessiyalari, kalitlari yoki dalillarini birlashtirmasdan birga saqlaydi. **Hisoblar** bo'limidagi **Ochiq guruhni** bosish uning sahifasiga olib boradi `/groups/`: - **Hisoblar:** har bir a'zoning ulanish yo'li, kuzatuvi va oxirgi xabari, **Barchasini** boshlash va **barchasini to'xtatish**. - **E'tibor talab qiladi:** tizimdan chiqarilgan, mavjud bo'lmagan yoki ulanish, qabul qilish, manba yoki media bilan bog'liq muammo bo'lgan hisoblar; har bir nom uning kartasiga olib boradi. - **Suhbatlar bir nechta hisoblarni ko'rsatadi:** ulashilgan manbalar, ularni kuzatayotgan hisoblar va mavjud ish maydoni-kuzatuv davrida (7 kungacha) uzilishlar. **N ta hisob bilan eksport** kanal yoki superguruh eksportini ularga bo'lib beradi va bitta arxivni imzolaydi. - **Guruhni eksport qilish:** har bir hisobning imzolangan eksporti bilan bitta ZIP `accounts/` va `manifest.json` SHA-256 va kalit barmoq izlarini ro'yxatlab, asosiy ish maydoni tomonidan imzolangan `manifest.signature.json`. Har bir akkaunt arxivini alohida tarzda bilan tasdiqlang. `python -m tgwitness.verify` va o'sha hisobning ishonchli barmoq izi yordamida. A'zolar guruh sozlamalarini baham ko'radi; hisob o'z qiymatlarini saqlab qolishi mumkin. Qarang [ulashilgan sozlamalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/settings/#account-groups), [import va guruhlar bo'yicha qo'llanma](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Accounts.md#import-accounts-and-share-settings) va [MTProxy pool boshqaruv paneli](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Proxies.md#pool-dashboard-and-custom-sources). ## Chiqish **Hisob → Telegramdan chiqish** (kuzatish to'xtatilgan holda) Telegramdan sessiyani yakunlashni so'raydi, shuning uchun u hisobning **Sozlamalar → Qurilmalar** bo'limidan ham yo'qoladi va ish maydoni shifri omboridan sessiyani o'chirib tashlaydi. Jurnal, manbalar, sozlamalar va imzolash kaliti saqlanib qoladi, va jurnal chiqishni qayd etadi. Ish maydoni hanuzgacha o'z hisobiga tegishli bo'lib qoladi: faqat shu hisob qayta ulanishi mumkin. Agar Telegram javob bermasa ham, sessiya bu yerda baribir o'chiriladi va panel bunga oid xabarni ko'rsatadi; Telegramda **Sozlamalar → Qurilmalar** bo'limida sessiyani yakunlang. ## Hisob fayllarini xavfsiz saqlash - Har bir `.session`, TData ZIP, StringSession, Auth Key va hisob JSON faylini parol kabi muomala qiling. TgWitness import qilingan ruxsatnomalarni shifrlangan omborida saqlaydi; keyin asl fayllarni o'chirib tashlashingiz mumkin. - Bir xil ruxsatni ikki dasturda bir vaqtda ishga tushirmang. Telegram uni bekor qilishi mumkin (`AUTH_KEY_DUPLICATED`), va ikkala nusxa ham ishlamay qoladi. - Muddatidan o'tgan yoki bekor qilingan sessiyani konversiya orqali qayta tiklash mumkin emas. Qayta tizimga kiring. ## Muammolarni bartaraf etish | Xabar yoki simptom | Nima qilish kerak | | --- | --- | | *Ushbu sessiyani o'qib bo'lmaydi. Uning asl mijozini yoping…* | SQLite fayl ochiq yoki yakunlanmagan (`-journal`/`-wal` yon fayl). Asl dasturni toza tarzda yoping va faylni yana nusxalang. | | *Qo'llab-quvvatlanadigan Telethon SQLite sxemalari: 7 va 8* / *Pyrogram … 2 va 3* | Faylni juda eski yoki noma'lum kutubxona versiyasi yaratgan. Buning o'rniga telefon/QR orqali tizimga kiring. | | *Faqat ruxsat etilgan ishlab chiqarish foydalanuvchi sessiyalari qo'llab-quvvatlanadi* | Pyrogram fayli botga yoki test tarmog'iga tegishli. | | *TData arxivi 512 yozuvdan yoki 32 MiBdan oshadi* | Faqat `key_datas` va `D877F783D5D3EF8Cs` ZIP, butun papka emas. | | *TData ni dekript qilib bo'lmadi. Desktop mahalliy parolini tekshiring* | **Passcode yoki sessiya matni** satriga Telegram Desktop mahalliy parolini kiriting. | | *Bir vaqtning o'zida bitta TData hisobini import qiling* | Telegram Desktop bir nechta hisoblarga ega edi; [qo'llab-quvvatlanmaydigan formatlarga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#unsupported-formats) qarang. | | *Tanlangan fayllar turli hisoblar yoki API ma'lumotlarini tasvirlaydi* | Fayllarni faqat bitta akkauntdan tanlang. | | *JSONda qo'llab-quvvatlanadigan API ma'lumotlari yoki avtorizatsiya yo'q* | [Hisob JSON](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#account-json)idagi maydon nomlarini tekshiring. | | *Faqat API metama'lumotlari* | JSONda sessiya yo'q. `.session` faylini qo'shing yoki telefon/QR-koddan foydalaning. | | *Auth kaliti HEX barcha 512 geksadesimal belgini o'z ichiga olishi kerak* | Kalit qisqartirilgan yoki unda`…` mavjud. | | Hisob IDi import qilingan hisob bilan mos kelmaydi | Faylning foydalanuvchi IDi Telegram xabar qilganidan farq qiladi; fayl boshqa hisob uchun mo'ljallangan. | | Hisob allaqachon boshqa ish maydoniga tegishli | Hisobni ikki marta qo'shish o'rniga o'sha ish maydonini oching. | | Ulanish mavjud, ammo **Manbalar** chat ro'yxatida shaxsiy guruh yo'q. | A'zolikni tekshiring. Tanlovchi birinchi 1 000 ta dialogni tekshiradi; **parametrlar** bo'limida limitni oshiring. | | Proxy ulanishi muvaffaqiyatsiz bo'ldi | Yo'nalish va IP rejimini tekshiring. Avtomatik MTProxy boshqa ishlaydigan kirishni sinab ko'radi. "Adressni yashirish" kutadi; "To'g'ridan-to'g'ri" esa oxirgi chora sifatida sozlangan kechikishdan so'ng to'g'ridan-to'g'ri ulanishi mumkin. [Yo'naltirish rejimlarini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/#ip-modes) ko'ring. | Shuningdek qarang: proksi va shifrlash uchun [ulanish va xavfsizlik](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/), hamda tizimga kirgandan keyin [qanday ma'lumotlar yig'ilishi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/). --- # Telegram · Kirish va ruxsatnomalar Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/ Hisoblar va suhbatlarga cheklangan kirish huquqini bering, ruxsatlarni tanlang, sessiyalar va IP-manzillarni cheklang hamda kirishni bekor qiling. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Translation coverage: this edition includes material from the English original. Hisoblar va suhbatlarga cheklangan kirish huquqini bering, ruxsatlarni tanlang, sessiyalar va IP-manzillarni cheklang hamda kirishni bekor qiling. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Boshlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/) ![Boshlash](https://phishdestroy.github.io/TgWitness/assets/chapter-start.svg) Ko'rib chiquvchiga bitta suhbatga, tahlilchiga ishni eksport qilishga yoki operatorga tanlangan hisoblarni boshqarishga ruxsat bering. Har bir kishiga o'z tokeni beriladi. Asosiy panel tokeni administrator qo'lida qoladi. [Hisobni sozlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) · [Ulanish yo'nalishlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/) · [Xavfsizlik modeli](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/) ## Ikki maqsad, ikki xil vazifa **Yig'ish doirasi** hisob qaydnomasining nimani qayd etishini belgilaydi: tanlangan suhbatlar, Telegram papkasi yoki butun hisob qaydnomasi. **Kirish doirasi esa** qayd etilgan hisob qaydnomalari va suhbatlardan qaysilarini boshqa shaxs ko'rishi va ulardan foydalanishi mumkinligini aniqlaydi. Kirish huquqini berish Telegram suhbatiga qo'shilishni, yig'ishni boshlashni yoki Telegram hisob qaydnomasi ruxsatlarini berishni anglatmaydi. Kirish tanlangan ish maydonlarini, ular ichidagi tanlangan suhbatlarni, barcha ish maydonlarini yoki [hisob](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/#bulk-import-and-account-groups)guruhidagi har bir hisobni ochishi mumkin. **Barcha ish maydonlari, keyinchalik qo'shilganlari** ham kelajakdagi hisoblarni qamrab oladi. Guruhga berilgan kirish ham keyinchalik guruhga qo'shilgan hisoblarni qamrab oladi. Ish faqat shu ish maydonlari bilan cheklanishi kerak bo'lgan holatlarda ish maydonlarini aniq tanlang. ## Kimgadir kirish huquqini bering 1. Asosiy administrator sifatida tizimga kiring va **kirishni** oching. 2. "**Kimgadir kirish huquqini berish**" bo'limida jurnalida taniydigan nomni kiriting. 3. Ish maydonlarini tanlang va kerak bo'lganda alohida suhbatlarni ham tanlang. 4. Bu shaxs nima qilishi mumkinligini tanlang. **Ko'rish** har doim kiritilgan. 5. Muddat tugashini, tizimga kirish/sessiya limitlarini va ruxsat etilgan manzillarni zarur bo'lganda sozlang. 6. **Kirishni yaratish tugmasini** bosing. Tokenni hozir nusxalang: u faqat bir marta ko'rsatiladi. 7. Panel manzili va tokenni shaxsiy tarzda yuboring. Qabul qiluvchi o'sha tokenni odatiy kirish sahifasida kiritadi; ularga sizning asosiy panel tokeningiz yoki Telegram sessiyangiz kerak emas. Ajratilgan token bilan panelni alohida brauzer sessiyasida oching va uni topshirishdan oldin ko'rinadigan suhbatlar va ruxsat etilgan harakatlarni tekshiring. Access names remain in encrypted local storage and are resolved by the administrator's panel. Names are omitted from new access and workspace-creation audit records; existing signed records keep their original fields. ## Ruxsatlarni tanlang Matnli ommaviy namoyish uchun oddiy ko'rib chiquvchi kirish o'rniga **Public showcase**-dan foydalaning. U aniq tanlangan ommaviy kanallar, saqlangan tahrirlar va o'chirishlar hamda imzolangan statistikani ko'rsatadi, muallif maydonchalari o'chirib tashlangan va fayllar API chegarasida yopiq bo'ladi. [Showcase yarating va tekshiring](https://phishdestroy.github.io/TgWitness/uz/docs/reference/showcase/). | Ruxsat | U nimaga imkon beradi | | --- | --- | | `view` | Ruxsat etilgan suhbatlar, yozib olingan xabarlar, profillar, fayllar va filtrlangan jurnal yozuvlarini o'qing. Har doim kiritilgan. | | `export` | Suhbat tarixi va dosyealarni eksport qilishga ruxsat beriladi. Butun ish maydoni bo'yicha dalillarni eksport qilish uchun butun ish maydoniga kirish talab etiladi. | | `sources` | Manbalarni, snapshotlarni va profilni qayd etishni boshqarish. Suhbatlar bo'yicha cheklangan kirish faqat ruxsat etilgan suhbatlarda amalga oshirilishi mumkin; hisob bo'ylab manba aniqlash va doira sozlamalari yopiq bo'lib qoladi. | | `collect` | Yig'uvchini ishga tushiring yoki to'xtating. Yig'ish hisobga ta'sir qilgani uchun butun ish maydoni bo'yicha ruxsat talab etiladi. | | `interact` | Kirish doirasida qo'llab-quvvatlanadigan Telegram o'zaro ta'sirlarini amalga oshiring. Chatga cheklangan kirish hisob bo'yicha havola oldindan ko'rish imkoniyatidan foydalanolmaydi. | | `settings` | Yig'ish sozlamalari, vaqt tamg'alari, bildirishnomalar, masofaviy nusxalar va parametrlarni o'zgartiring. Butun ish maydoni bo'yicha kirish huquqini talab qiladi. | | `account` | Telegramga kirish yoki chiqish va ulanish yo'llarini boshqarish. Butun ish maydoniga kirish huquqini talab qiladi. | | `board.read` | Case Board eslatmalarini faqat ruxsat etilgan ish maydoni va suhbatlarda o'qing. | | `board.write` | Belgilar, ajratmalar, bo'laklar, izohlar hamda ochilgan/ko'rib chiqilgan holatlarini qo'shish. Shuningdek, `board.read` funksiyasi ham kerak. | | `board.manage` | To'plamlarni, jamoaning yakuniy holatlarini va boshqa ishtirokchilarning kartalarini boshqarish. Shuningdek, dosye o'qish/yozish huquqi ham talab etiladi. | Only the main administrator can download the off-site replica recovery key. Delegated `settings` or `account` access does not grant that key. Ruxsatlar va doirasi birgalikda tekshiriladi. Ruxsatni belgilash boshqa suhbatlarni ochmaydi yoki suhbatga cheklangan kirish uchun ish maydoni bo'ylab operatsiyani yoqmaydi. Paralel eksport uchun, kirish har bir tanlangan hisobdagi eksport qilinayotgan suhbatni qamrab olishi kerak. Berilgan kirish yangi kirishlarni yaratishi, boshqa odamlarning sessiyalarini boshqarishi yoki administrator konsolini ochishi mumkin emas. ### Uchta foydali sozlama | Shaxs | Doira | Ruxsatlar | | --- | --- | --- | | Ko'rib chiquvchi | Bir ish bo'yicha yozib olingan suhbatlar | `view` | | Analitik topshiriqni tayyorlamoqda | Tergov va eksport qilish uchun suhbatlar | `view`, `export`; faqat ular Telegram orqali harakat qilishi kerak bo'lsa `interact` ni qo'shing | | Yig'ish operatori | Tanlangan butun ish maydonchalari | `view`, `sources`, `collect`; faqat zarur bo'lganda `settings` yoki `account` ni qo'shing | Kirish formasining boshlang'ich sozlamalariga Case Board ham kiritilgan: ko'rib chiquvchi o'qishi mumkin, tahlilchi o'qishi va yozishi mumkin, operator esa boshqarishi mumkin. Sozlamalar tahrirlanishi mumkin bo'lib qoladi va mavjud ruxsatlar avtomatik ravishda kengaytirilmaydi. Meros qilib olingan suhbat doiralari va eksport maxfiyligi uchun [Case Board-](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/)ga qarang. ## Cheklovlar va sessiyalar | Sozlamalar | Qanday ishlaydi | | --- | --- | | Parallel sessiyalar | Bir vaqtning o'zida faol bo'lgan sessiyalar sonini 1–100 tagacha cheklang. Limitga yetganda keyingi kirishni rad eting yoki eng eski sessiyani tugating. | | Kirishlar ruxsat etilgan | Tokenni faqat sessiyalarni boshlash uchun muvaffaqiyatli ishlatishni cheklang. Mavjud sessiyalar faqat oxirgi ruxsat etilgan kirish ishlatilgani uchun tugamaydi. | | Amaldor | Kirish uchun mutlaq muddat cheklovi. Muddati tugagan kirish tizimga kira olmaydi va so'rovlar yuborishni davom ettira olmaydi. | | Faoliyatsiz daqiqalar | Sessiya faoliyatsizligi vaqti tugashi, 5 daqiqadan 30 kungacha. Muvaffaqiyatli so'rovlar uni uzaytiradi; ochiq panel esa polling orqali o'z faoliyatini saqlab turishi mumkin. | | Ruxsat etilgan manzillar | Ma'lum IP-manzillar yoki CIDR subtorlarini qabul qiling. Agar birinchi kirish bog'lanishi yoqilmagan bo'lsa, har qanday manzilga ruxsat berish uchun bo'sh qoldiring. | | Birinchi kirishga bog'lash | Birinchi muvaffaqiyatli tizimga kirish ushbu kirish uchun ruxsat etilgan manzilni belgilaydi. | IP — bu ilova ko'radigan mijoz manzili. Teskari proxy yoki tunnel ortida bo'lsa, IP qoidalariga tayanishdan oldin **Open sessions** bo'limida ko'rsatilgan manzilni tekshiring: aks holda bir nechta foydalanuvchilar proxy manzilini baham ko'rayotgandek ko'rinishi mumkin. ## Kirishni o'zgartirish yoki bekor qilish **Granted access** bo'limidagi yozuvni tahrirlab, uning doirasi, ruxsatlari yoki cheklovlarini o'zgartiring. Doirasi va ruxsatlardagi o'zgarishlar keyingi so'rovlarda, jumladan allaqachon ochilgan sessiyalardan keladigan so'rovlarda ham tekshiriladi. Kirishni bekor qilish uning sessiyalarini tugatadi va berilgan tokenni ishlatilmaydigan holga keltiradi. **Ochilgan sessiyalar** administratorga butun kirishni bekor qilmasdan alohida sessiyani yakunlash imkonini ham beradi. Saved export copies retain their creator, workspace, chat scope and required permissions. An issued access can list or download its own copies only while those permissions still apply; copies containing Case Board also require `board.read`. The administrator can retrieve all copies. Older copies without this metadata and group bundles are administrator-only. Download tickets and prepared file responses recheck access after preparing the file, before sending its bytes. Each access, including the administrator, can hold ten pending download tickets per workspace; the workspace-wide limit is 1,000. Tickets expire after 120 seconds and are single-use. Bekor qilish allaqachon yuklab olingan fayllarni qaytarib ololmaydi. Tizimdan chiqish, panelni qulflash yoki sessiyani yakunlash ishlayotgan yig'uvchini to'xtatmaydi. ## Administrator nima ko'rishi mumkin Tekshiruvchilar va tahlilchilar proxy oxir nuqtalari, pool diagnostikasi, server yo'llari yoki xom ulanish xatolarisiz to'plam holatini ko'rishadi. Ulanish diagnostikasi butun ish maydoni bo'yicha `account` ruxsatini talab qiladi. Bildirishnomani o'qish, masofaviy nusxa va parametr sozlamalari `settings` ruxsatini talab qiladi. User-Agent to'liq brauzer satrlari kirish sessiyalarida saqlanmaydi. Yangi versiya ularni o'zgaruvchan sessiya keshidan ham olib tashlaydi. Panel jarayon logi IP-manzillarni, URL ma'lumotlarini va belgilangan sirlarni yashiradi. Mahalliy xizmat jurnalari va ilgari imzolangan jurnal yozuvlari qayta yozilmaydi. Kirish qoidalari va imzolangan tizimga kirish yozuvlari hanuzgacha mijoz manzilidan foydalanadi. ### Asosiy kalitni almashtiring **Access → My limits → Reissue administrator key**-dan foydalaning yoki panel ishlayotgan paytda boshqariladigan o'rnatishdan `tgwitness token rotate`-ni ishga tushiring. Mavjud barcha brauzer sessiyalari, jumladan hamkasb tokenlari bilan ochilgan sessiyalar ham tugaydi. So'rov qiluvchi brauzer yangi sessiyani oladi; yangi administrator kalitini yashirishdan oldin saqlang. Berilgan hamkasb tokenlari alohida bekor qilinmaguncha amal qiladi. `TGWITNESS_TOKEN`dan foydalangan holda o'rnatish muhit sozlamasini o'zgartirishi va qayta ishga tushirishi kerak. ### So'rov va proksi chegaralari The API admits up to 600 requests per minute per client and credential family: panel, archive/MCP or witness. Authentication cooldowns are separate for these families. Ten rejected authentications within a minute start an exponential cooldown, from one second up to five minutes. A failed attempt after the cooldown increases it; ten minutes without a failed attempt resets escalation. Rejections return HTTP 429 and `Retry-After`. Limits are in memory, shared across workspaces in one panel process; restart clears them. Live streams are limited to four per bearer token and 32 for the panel process. Opening a stream also consumes the API request budget. Request bodies have a 60-second receive deadline, reduced to 10 seconds for login, demo access, archive API and witness-head paths, or 8 seconds for MCP transport. Each application permits four unfinished bodies per client address, with overall limits of 32 and 64 MiB of reserved route allowances. Requests without bodies do not consume these slots. Oversized bodies return 413, timed-out bodies return 408, and exceeded client capacity returns 429 with `Retry-After: 1`. Exhausted overall body capacity returns 503 with `Retry-After`. Yuborilgan IP sarlavhalari e'tiborsiz qoldiriladi, agar haqiqiy TCP tengdosh `TGWITNESS_TRUSTED_PROXIES`ga tegishli bo'lmasa (vergul bilan ajratilgan IP manzillari yoki CIDRlar). `TGWITNESS_PROXY_HEADER`ni `x-forwarded-for` yoki `cf-connecting-ip`ga o'rnating. XFF yaqinroq proksidan birinchi ishonchsiz tengdoshga qarab tekshiriladi. Noto'g'ri yoki takroriy ishonchli manzil metama'lumotlari rad etiladi, shuning uchun ular ruxsat etilgan proksi manzilini meros qilib ololmaydi. Boshqariladigan tezkor tunnel mahalliy Cloudflare konnektoriga ishonadi; o'z domeni sozlamasi mahalliy Caddy'ga ishonadi. To'g'ridan-to'g'ri joylashtirishlar standart bo'yicha hech qanday proksiga ishonmaydi. Agar Uvicornni o'zingiz ishga tushirayotgan bo'lsangiz, uning proksi-sarlavha qayta ishlashini o'chirib qo'ying, shunda bu chegarada haqiqiy tengdosh olinadi. `TGWITNESS_PANEL_ALLOWED_IPS` barcha paneldagi kirishni, jumladan administratorni ham, ro'yxatga kiritilgan IP manzillari yoki CIDR bloklariga cheklaydi. O'rnatuvchining routing-identity probe ommaviy bo'lib qoladi va hech qanday hisob ma'lumotini qaytarmaydi. Allowlistni yoqishdan oldin zarur mahalliy ma'muriy marshrutni kiritish kerak. Boshqariladigan o'rnatishning **START-HERE** qo'llanmasiga xizmat konfiguratsiyasi va tiklash bo'yicha ko'rsatmalar kiritilgan. `ws` so'rov selektori so'rov yo'lida ish maydonini aniqlashi kerak; noma'lum, nomuvofiq va takroriy selektorlar 404 bilan rad etiladi. Panel skriptlari va uslublari SHA-384 yaxlitlik metama'lumotlarini o'z ichiga oladi. Import-map brauzerlarning import-map yaxlitligini qo'llab-quvvatlaydiganlarida mahalliy import qilingan JS modullarini ham qamrab oladi. Dinamik ravishda hosil qilingan til javobi alohida. Ushbu tekshiruvlar yetkazib berilgan sahifaga nisbatan aktivlarning almashtirilishini aniqlaydi; ular sahifa va uning xeshlarini almashtira oladigan buzilgan serverga ishonchni o'rnatmaydi. **Ushbu boshlanishdan beri log** jarayon yozuvlarini har bir ish maydonidan kelgan jurnal faoliyati bilan birlashtiradi: tizimga kirishlar, rad etishlar, yo'nalish o'zgarishlari va operator harakatlari. Bu joriy jarayon uchun xotiradagi konsol bo'lib, har bir xabarning doimiy nusxasi emas. Tez-tez sodir bo'ladigan xabar voqealari konsolni to'ldirish o'rniga jurnalda qoladi. Kirishni berish, o'zgartirish va bekor qilish hamda sessiyalarni boshlash yoki yakunlash ham imzolangan `access.*` jurnal yozuvlarini yaratadi. Tokenlar ushbu yozuvlarga kiritilmaydi. Berilgan tokenlar va sessiya ma'lumotlari shifrlangan omborxonada xeshlar ko'rinishida saqlanadi. ****Asosiy administrator va ishonch chegarasi**** Asosiy token cheklovsiz qoladi. U bilan brauzer orqali tizimga kirish administrator sozlagan sessiya cheklovlariga bo'ysunadigan sessiyalarni yaratadi. Asosiy tokenni to'g'ridan-to'g'ri yuboradigan skriptlar to'liq kirish huquqini saqlab qoladi va brauzer sessiyalari sifatida hisobga olinmaydi. Bu bitta o'rnatmada ilova darajasidagi kirish nazoratidir. Barcha ish maydonchalari server jarayonini baham ko'radi; bu mezbon ma'muridan izolyatsiya emas. Asosiy token, Telegram sessiyalari, imzolash kalitlari va ma'lumotlar katalogini maxfiy saqlang. Witness token alohida tekshiruv nuqtasi/sog'liq guvohnomasi bo'lib, panelga kirish tokeni emas. --- # Telegram · Ulanish, proksi va ma'lumotlarni himoya qilish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/ Avtorizatsiya, avtomatik proksi havzalari, IP rejimlari, zaxira siyosati, tashqi so'rovlar va maxfiy saqlash. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Avtorizatsiya, avtomatik proksi havzalari, IP rejimlari, zaxira siyosati, tashqi so'rovlar va maxfiy saqlash. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) ![Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/assets/chapter-operate.svg) Ushbu hujjat TgWitness 0.8.0 xatti-harakatlari va uning cheklovlarini tasvirlaydi. Avtorizatsiya, manbaga kirish, tarmoq ulanishi va yozib olish to'liqligi alohida holatlardir. Kirish bosqichlari, fayl formatlari va bir nechta hisoblar bo'yicha [hisoblar va sessiya formatlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) bo'limidan boshlang. Hodisalar siyosati va qayta ishga tushirish xatti-harakatlari uchun [to'plash qanday ishlashini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) ko'ring. ## Yo'naltirilgan ulanishni sozlash **Ulanishida**ma'mur quyidagilarni tanlashi mumkin:**bu hisob****guruh hisobi**yoki**barcha hisoblar**, so'ngra yo'nalishni tanlaydi. **tanlovni ko'rib chiqish**ta'sirlangan hisoblarni ro'yxatlaydi. **tayyorlash va tekshirish**taklif qilingan yo'nalishni saqlanganini o'zgartirmay sinovdan o'tkazadi. **tekshirilgan ulanishni qo'llash**yana tekshiradi, zarur bo'lsa kuzatuvni to'xtatadi, yo'nalishni saqlaydi va allaqachon ishlayotgan kuzatuvni davom ettiradi. U ilgari faol bo'lmagan hisobda hech qachon ma'lumot yig'ishni boshlamaydi. Tarixni yuklab olish to'xtatilgan holda qoladi va alohida tiklanishi mumkin. O'tishdan oldin faol eksportlarni to'xtating. Guruh o'zgarishlari hisoblarni standart bo'yicha o'z yo'nalishi bilan saqlaydi. Ko'rinish siz mo'ljallagan o'zgarishlarni ro'yxatlasa, faqat shunda ushbu opsiyani o'chiring. Ilova har bir hisobning natijasini alohida xabar qiladi; bu ma'lumotlar bazalari bo'ylab hamma narsani birdaniga o'zgartiradigan bitta tranzaksiya emas. Muvaffaqiyatsiz almashtirish hisobning oldingi sozlamalarini tiklaydi. Jarayonni qayta boshlashning muvaffaqiyatsizligi aniq ko'rsatiladi. Oldindan ko'rishlar o'n daqiqadan so'ng amal qilmay qoladi va ulanish sozlamalari yoki guruh a'zoligidagi o'zgarishlar yangi tekshiruvni talab qiladi. | Yo'nalish | TgWitness nimani boshqaradi | | --- | --- | | To'g'ridan-to'g'ri | Mehmondan ulanishlar; tashqi mehmondan VPN aniqlanmaydi yoki majburiy qo'llanilmaydi. | | VPN | Har bir hisob uchun bitta to'liq tunel WireGuard profili, mahalliy foydalanuvchi makonidagi SOCKS5 jarayoni tomonidan boshqariladi. Hech qanday host interfeysi yoki drayver o'rnatilmagan. | | Mening proksim | SOCKS5, HTTP CONNECT yoki MTProxy ma'lumotlari. URL manzili SOCKS5/HTTP maydonlarini to'ldirishi mumkin. Bir nechta hisoblarni tanlash kiritilgan proksini bo'lishadi. | | Ochiq MTProto | Mavjud pool Telegram yo'nalishlarini tayinlaydi. Tashqi so'rovlar ilg'or sozlamalarda alohida mos proksi sozlanmaguncha o'chirilgan. | | WARP | Har bir tanlangan hisob uchun alohida mahalliy tunnel, WARP ro'yxatdan o'tkazilishi va o'sha hisobning omborida saqlangan WireGuard profili bilan. | Joriy-yo'nalish tekshiruvi hisob sessiyasidan emas, balki yangi autentifikatsiyalanmagan Telegram transportidan foydalanadi. HTTP-ga mos yo'nalishlar uchun u shuningdek o'sha yo'nalish orqali Cloudflare'ning HTTPS izini so'raydi va uning xabar qilingan chiqish IP manzili, mamlakati, WARP holati va tekshirish vaqtini ko'rsatadi. O'lchangan kechikish — bu ICMP ping emas, balki Telegram ulanishni o'rnatish vaqti. Agar iz Warp faol ekanligini ko'rsatmasa, Warp tayyorlash muvaffaqiyatsiz tugaydi. Ushbu tekshiruvlar ulanishni o'rnatadi, lekin ushlangan xabarlarning haqiqiyligini yoki to'liqligini emas. Faqatgina ishlayotgan mahalliy jarayon muvaffaqiyatli chiqish tekshiruvi hisoblanmaydi. ### Ko'chma WARP va WireGuard Bu [wgcf 2.3.1](https://github.com/ViRb3/wgcf/releases/tag/v2.3.1) va [wireproxy 1.1.3](https://github.com/windtf/wireproxy/releases/tag/v1.1.3) yordamida amalga oshirilgan **norasmiy WARP integratsiyasi**. Ma'mur birinchi yuklab olish yoki WARP ro'yxatdan o'tishdan oldin sozlamalarni aniq qabul qiladi. Ushbu sozlash ulanishlari to'g'ridan-to'g'ri GitHub va Cloudflare ga yo'naltiriladi va kompyuterning IP-manzilini oshkor qiladi. Oddiy hisob trafigi ilova o'rnatilgunga qadar mavjud marshrut bo'ylab harakatlanishni davom ettiradi. Cloudflare chiqish manzili va mamlakatni tanlaydi; alohida tunnellar chiqish manzilini bo'lishishi mumkin. Mamlakatni tanlash, davriy IP aylantirish va butun host bo'ylab VPN o'chirish funksiyasi ushbu xususiyat tomonidan taqdim etilmaydi. Qo'llab-quvvatlanadigan yordamchi yuklab olishlar: Linux va macOS x86-64/ARM64, hamda Windows x86-64. Artifaktlar ko'rib chiqilgan manba kodiga ilova qilingan SHA-256 hashlariga solishtiriladi, va kechirilgan ijro etiladigan fayllar ishga tushirishdan oldin yana tekshiriladi. Yordamchi PATHga qo'shilmaydi, tizim xizmati sifatida o'rnatilmaydi yoki ommaviy tinglovchi berilmaydi. Barcha fayllar ish maydonining `portable-routes/` papkasi va shifrlangan seyf yozuvlari ostida saqlanadi. Loopback SOCKS5 tinglovchisi mustaqil ravishda yaratilgan kirish ma'lumotlarini talab qiladi. Shaxsiy profillar va WARP hisob ma'lumotlari mavjud ish maydoni seyfida shifrlanadi. Ish jarayonida yordamchi faqat egasiga tegishli oddiy matnli konfiguratsiyani talab qiladi; u odatiy to'xtatishda olib tashlanadi. Host qulashi bu faylni egasiga tegishli ma'lumotlar papkada qoldirishi mumkin. Bu diskni shifrlamaydi va uning ma'muridan himoya qilmaydi. Nazoratchi panelning ota quvuri yo'qolsa, tunnelni yopadi. Muvaffaqiyatsiz tunnel hech qachon to'g'ridan-to'g'ri qaytishni yoqmaydi. Panelni qayta ishga tushirish tanlangan tunnelni tiklaydi; muvaffaqiyatsiz boshlanishlar cheklangan kechikish bilan qayta urinadi. **Stop tunnel** ham kuzatuvni to'xtatadi va to'xtagan holatni saqlaydi. **Start tunnel** tunnelni ishga tushiradi; tayyor bo'lganda kuzatuvni alohida tiklaydi. Yuklangan WireGuard profillari bitta Interface va bitta Peer, to'liq IPv4 va IPv6 yo'nalishlari, shuningdek hech qanday hooklar, includes, muhit o'zgaruvchilari yoki qo'shimcha tinglovchilarni o'z ichiga olishi kerak. Jamoat endpoint manzillari ishga tushishdan oldin aniqlanib, mahkamlanadi. OpenVPN/IPsec va xususiy endpointlar uchun tashqi VPN yoki SOCKS5 darvozasidan foydalaning. ## Avtorizatsiya usullari **API ID va API xesh ilovani aniqlaydi; ular hisobga kirishni almashtirmaydi.** Ular TgWitness'da ixtiyoriydir. Uстунлик tartibi: avval formaga kiritilgan juftlik, keyin import qilingan hisob JSON'idan olingan juftlik, keyin ish maydonida saqlangan juftlik, so'ngra 50 ta juftlikdan iborat o'rnatilgan bazadan juftlik (2040) mos Telegram Desktop mijoz tavsifi bilan yuboriladi. [my.telegram.org](https://my.telegram.org) saytidagi API Development Tools bo'limidan olingan o'zingizning juftlikni barcha hisoblaringiz bilan ishlatishingiz mumkin; har bir hisobning alohida ruxsati saqlanadi. | Uslub | Talablar | TgWitness qo'llab-quvvatlashi | | --- | --- | --- | | Telefon, kod, ixtiyoriy 2FA | Hisobga kirish; API juftligi ixtiyoriy | Panelga kirish | | Auth kaliti HEX + DC ID | To'liq 512 belgili kalit va DC 1–5 | **Avtorizatsiya kaliti** yorlig'i; avtorizatsiya saqlanishidan oldin ixtiyoriy Foydalanuvchi ID tekshiriladi | | Telethon StringSession | Amaldagi sessiya satri | Panelga kirish | | Telethon SQLite `.session` | Yopiq, izchil nusxa | Sxemalarni 7/8 to'g'ridan-to'g'ri panel importi; ixtiyoriy oflayn CLI | | Pyrogram SQLite `.session` | Yopiq ishlab chiqarish foydalanuvchi sessiyasi | Sxemalarni paneldan to'g'ridan-to'g'ri import qilish 2/3 | | Telegram Desktop TData ZIP | Bir zamonaviy hisob; mahalliy parol bilan himoyalangan | Tekshirish summalari va dekripsiya tekshiruvlari bilan xotiradagi konvertatsiya | | Hisob JSON | Qo'llab-quvvatlanadigan API/sessiya/kalit maydonlari | Faqatgina metadata API ma'lumotlarini to'ldiradi; sessiya/kalit yoki telefon/QR orqali kirish hanuzgacha talab etiladi | | QR orqali kirish | Ruxsat berilgan Telegram ilovasidan tasdiq | Mahalliy QR kod yaratish, amal qilish muddati/qayta urinish, ixtiyoriy 2FA | | TDLib / Pyrogram StringSession | Boshqa kutubxona-spetsifik formatlar | Qo'llab-quvvatlanmaydi | | Bot tokeni | O'zining kirish/yangilash modeliga ega bot | Ushbu to'plovchi tomonidan ishlatilmagan | Telegram kod yetkazib berishni tanlaydi; SMS kafolatlanmaydi. API xesh bekor qilingan sessiyani tiklay olmaydi yoki unutib qo'yilgan 2FA parolini almashtira olmaydi. TgWitness kirish kodlarini yoki Telegram 2FA parolini diskka saqlamaydi. Shaxsiy manba uchun hisob allaqachon kirish huquqiga ega bo'lishi kerak. Guruh foydalanuvchi nomi keraksiz. Proksi yoki sessiya importi na a'zolik, na administrator huquqlarini bermaydi. Joriy a'zolik oldingi a'zolik tarixiga kirishni kafolatlamaydi. ## Telethon sessiya faylini import qiling Telethon SQLite, Pyrogram SQLite va Telegram Desktop TData turli formatlardan foydalanadi. Panel qo'llab-quvvatlanadigan tuzilmalarni aniqlaydi va konvertatsiya qiladi; fayl nomini o'zgartirish konvertatsiya hisoblanmaydi. **Fayllar** bo'limida bir sessiyani va uning hamrohi JSON-ni tanlang, so'ngra **"Hisobni bog'lash"** tugmasini bosing. To'rtta mos keladigan fayl va jami 8 MiB gacha qabul qilinadi. TData/JSON tafsilotlari uchun [format cheklovlariga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) qarang. Parolni tiklash imkoni yo'q. Telefon/2FA yoki QR orqali kirish alohida ruxsatnoma yaratadi. Ixtiyoriy Telethon-ga xos buyruq qatori yo'li ham mavjud bo'lib qoladi: 1. Asl sessiyani ishlatayotgan mijozni to'xtating va izchil nusxa yarating. Konverter yakunlanmagan WAL/jurnalga ega fayllarni rad etadi. Ushbu tekshiruvni chetlab o'tish uchun fayllarni o'chirish o'rniga asl mijozni to'g'ri yoping. 2. TgWitness muhitidan quyidagini ishga tushiring: ``` python -m tgwitness.sessions account.session --out account.tgwitness-session ``` 1. **Hisob qo'shish → Fayllar** bo'limida natijani yuklang yoki uning satrini joylang va davom eting. 2. Ko'rsatilgan raqamli akkaunt IDni tekshiring, manbalarni tanlang va kuzatuvni boshlang. **Konvertlangan fayl shifrlanmagan akkauntga kirish siridir.** Uni himoyalangan saqlash joyida saqlang va hech qachon uni commit qilmang yoki uchinchi tomon konversiya xizmatiga yubormang. TgWitness ruxsat etilgan sessiyani o'zining shifrlangan omborida saqlaydi. Sessiyani nusxalash alohida ruxsatnoma yaratmaydi: klonlangan avtorizatsiya kalitlari bilan bir vaqtda bir nechta klientni ishga tushirmang va mustaqil yangilanish yetkazib berilishini kutmang. Konversiya vakolatni o'tkazadi, asl xabarlarni, ob'ekt keshini yoki doimiy yangilanish kursorini emas. U jarayon qayta ishga tushirilganda yangilanishlarni tiklashni ta'minlamaydi. ## MTProto, Telethon va proksi-serverlar MTProto – bu Telegramning protokoli. Telethon – bu TgWitness foydalanadigan Python klient kutubxonasi. MTProxy – bu Telegram transport proksi; SOCKS5 va HTTP CONNECT umumiy tunnelarni taqdim etadi. Hech biri akkaunt autentifikatsiyasini almashtirmaydi. Har bir ish maydoni uchun yo'nalishni **Hisob → Sozlamalar → Ulanish sozlamalari → Ulanish yo'nalishini o'zgartirish** bo'limida imzolashdan oldin saqlang. Yangi ish maydonchalari standart bo'yicha **Avtomatik MTProxy · jamoat ro'yxatlari** bilan **manzilni yashirishni** tanlaydi. To'g'ridan-to'g'ri ulanishni aniq belgilagan mavjud ish maydonchalari esa bu imkoniyatni beruvchi rejimni saqlab qoladi. ## IP rejimlari Yo'nalish ulanishni tanlaydi. Panelning Hisob bo'limidagi IP rejimi va **IP himoyasi** server manzili qachon oshkor bo'lishini belgilaydi. Ushbu boshqaruvlar VPN o'rnatmaydi yoki butun qurilma trafigini yo'naltirmaydi. | Rejim | Telegram | Tashqi so'rovlar | | --- | --- | --- | | Manishani yashirish (`hide`) | Proxy ishlating; agar hech biri ishlamasa, kuting. To'g'ridan-to'g'ri zaxira yo'q. | SOCKS5/HTTP talab etiladi; tegishli proksi bo'lmagan so'rovlar rad etiladi. | | Oxirgi chora sifatida to'g'ridan-to'g'ri (`fallback`) | Avtomatik MTProxy sozlangan kechikishdan so'ng Direct-dan foydalanishi mumkin, keyin ishchi proksiga qaytadi. | Sozlangan tashqi proksi yoki hisobning SOCKS5/HTTP yo'nalishini afzal ko'ring; aks holda To'g'ridan-to'g'ri (Direct) ruxsat etiladi. | | Tunnel yoki VPN ortidagi server (`tunnel`) | To'g'ridan-to'g'ri yo'nalishlar va zaxira avtomatik havzaga darhol o'tishga ruxsat beriladi. | Mos proxy sozlanmagan taqdirda Direct ruxsat etiladi. | Tunnel yoki VPN rejimi siz o'sha tarmoqni alohida boshqarishingizni taxmin qiladi. Ishlaydigan tunnel bo'lmasa, manzillar serverning o'z manzilini ko'rishi mumkin. Rejimni variant nomiga emas, balki haqiqiy tarmog'ingizga qarab tanlang. ### Yo'nalishni tanlang | Yo'nalish | Sozlamalar | Chegara | | --- | --- | --- | | Avtomatik MTProxy | O'rnatilgan ro'yxatlar yoki operator katalogi | Ishlaydigan Telegram yo'nalishini saqlab turadi; to'g'ridan-to'g'ri zaxira IP rejimiga bog'liq | | To'g'ridan-to'g'ri | Tunnel yoki VPN rejimi | Telethon mezbonning tarmoq yo'nalishidan foydalanadi | | SOCKS5 | Host, port, ixtiyoriy foydalanuvchi nomi/parol | python-socks, masofaviy manzil DNS yoqilgan | | HTTP CONNECT | Host, port, ixtiyoriy foydalanuvchi nomi/parol | Oddiy HTTP CONNECT; proksiga o'zi TLS qo'llab-quvvatlanmaydi | | MTProxy | Mehmondo'st, port, sir | Eksperimental Telethon transporti; 32 geksaditsit yoki `dd` + 32 geksaditsit | Fake TLS `ee` sirlarini rad etadi. Telethon 1.45 ning normallashtirishi prefiks va domenni olib tashlashi mumkin, lekin bu Fake TLS ni amalga oshirmaydi. `tg://proxy?server=…&port=…&secret=…` yoki `https://t.me/proxy?server=…&port=…&secret=…` ni joylashtiring va **havoladan Maydonlarni to'ldirishni** tanlang. Bu bog'lanish yoki saqlashsiz maydonlarni tasdiqlaydi va to'ldiradi; yo'nalishni alohida ko'rib chiqing va saqlang. Qo'lda to'ldiriladigan maydonlar mavjud bo'lib qoladi. [Telegram proksi havolalarini](https://core.telegram.org/api/links#proxy-links) ko'ring. ### Sizning o'rnatishingiz taqdim etgan ommaviy proksilar Ichki ro'yxat to'rt manbani birlashtiradi: [SoliSpirit/mtproto](https://github.com/SoliSpirit/mtproto), [zakky8/mtproto-proxy-pro](https://github.com/zakky8/mtproto-proxy-pro), [kort0881/telegram-proxy-collector](https://github.com/kort0881/telegram-proxy-collector) va [3yed-61/MTP-Collector](https://github.com/3yed-61/MTP-Collector). Biriktirilgan snapshot oxir nuqta ma'lumotlari, manba aniqligi va yuklab olish sanalarini o'z ichiga oladi. Provayder ro'yxatga kiritilgani proksi ishlaydi yoki Telegramning har bir yangilanishini yetkazib beradi degan dalil emas. **Avtomatik MTProxy** Telegram transport bog'lanishini tekshiradi, ishlayotgan proksini saqlaydi va u ishlamay qolganda boshqasiga o'tadi. Ish maydonchalari yetarli darajada ishlayotgan yozuvlar mavjud bo'lganda turli proksilardan foydalanishni afzal ko'radi; noyob chiqish manzili kafolatlanmaydi. Muvaffaqiyatsiz proxylar keyingi urinishdan oldin dam oladi. Agar hech biri ishlamasa, IP rejimi ma'lumotlarni yig'ishni kutish kerakligini yoki to'g'ridan-to'g'ri ulanish mumkinligini aniqlaydi. Proxylarni o'zgartirish akkauntni o'zgartirmaydi yoki uning jurnalini o'chirib tashlamaydi. Yo'nalish tanlovlari va o'zgarishlari imzolangan jurnalda qayd etiladi. Avtomatik yo'nalishlar faol bo'lganda, ro'yxatlar soatiga bir marta yangilanadi va transport tekshiruvlari standart bo'yicha har o'n daqiqada bajariladi. Ushbu oraliklarni sozlash mumkin. **Jamoat ro'yxatlarini yangilash** so'rovi yangilanishni talab qiladi; ro'yxatni faqat ko'rish saqlangan qo'lda yo'nalishni o'zgartirmaydi. **Telegram trafigi va HTTPS so'rovlari turli yo'llardan foydalanadi.** Ro'yxatni yuklab olish alohida HTTPS ulanish va taqdim etilgan external-request yo'lidan foydalanadi. `TGWITNESS_PROXY_FEED_PROXY` bu yo'lni HTTP/SOCKS5 proksi bilan aniq bekor qiladi; ikkala collector Compose varianti ham uni yo'naltiradi. Orqa fondagi pool asosiy ish maydonchasiga ergashadi. Telegram sessiyasi, API ma'lumotlari, panel tokeni yoki bot tokeni feed provayderlariga yuborilmaydi. Provayder nomlari, snapshot sanalari va yuklab olish yo'li **"Ro'yxat qayerdan olingan"** bo'limida ko'rsatiladi. MTProxy faqat Telegram trafigini o'tkazadi. Ish maydoni HTTP amaliyotlari, masalan, vaqt tamg'alari, bildirishnomalar, masofaviy nusxalar va manba tekshiruvlari, sozlanganida alohida SOCKS5/HTTP proksidan, keyin hisobning SOCKS5/HTTP yo'nalishidan foydalanadi. Ikkalasiz, Hide the address so'rovni rad etadi; boshqa rejimlar Direct-ni ruxsat etadi. Tashqi so'rovlarni o'chirib qo'yish mumkin. Aniq sozlangan feed-download proksi alohida operator ustunligi bo'lib qoladi. Mustaqil guvoh xizmati o'z yo'lini saqlab qoladi. Operator boshqariladigan xususiy xizmatlar uchun mavjud server muhit sozlamasi `TGWITNESS_ALLOW_PRIVATE_DESTINATIONS=1` xususiy manzillarni ruxsat etadi va proxy tomonidan host nomini aniqlashni saqlaydi. Uni panel orqali yoqib bo'lmaydi. Faqat ommaviy rejim `.onion` manzillarini ommaviy resolver so'ralmasidan oldin rad etadi; Tor onion xizmatlari aniq xususiy manzil sozlamasi va mos proxy talab qiladi. Ushbu DNS xatti-harakatlari Telegram transportiga emas, balki tashqi HTTP operatsiyalariga tegishli. Cloudflare [JSON DNS oxirgi](https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/dns-json/) nuqtasini hujjatlashtiradi. ****Avtomatik havza parametrlari**** **Parametrlar → Avtomatik MTProxy** bo'limida nosozlik chegarasi, sovish vaqti, rejalashtirilgan aylanish, proxy ulashish va ruxsat etilgan zaxira kechikishini sozlang. | Boshqaruv | O'rnatilgan | | --- | --- | | Almashishdan oldin uzilishlar | 3 ichida 10 daqiqa | | Har bir ulanish urinishida sinab ko'rilgan proksilar | 3 | | Birinchi / maksimal tanaffus nosozlikdan keyin | 10 daqiqa / 6 soat | | Rejalashtirilgan aylanish | O'chirib qo'yilgan; xato bo'lganda yoqiladi | | Har bir proxy bo'yicha hisoblar | 0: alohida yozuvlarni afzal ko'ring, zarur bo'lganda ulashing. 1ni eksklyuziv yozuvni kutishga o'rnating. | | Ruxsat etilgan to'g'ridan-to'g'ri zaxira variantga o'tishdan oldingi kechikish | 10 daqiqa; Yashirish manzili hanuzgacha rad etadi To'g'ridan-to'g'ri | | Feedni yangilash / transport tekshiruvlari | 60/10 daqiqa; asosiy ish maydoni qiymatlari umumiy havzaga tatbiq etiladi | Turli proxy-lar turli chiqish manzillarini kafolatlamaydi. Ushbu sozlamalar Telegram limitlarini bekor qilmaydi yoki anonimlikni isbotlamaydi. Ommaviy ro'yxatni o'zingizning operator katalogingiz bilan almashtirish uchun quyidagi ustunlikni sozlang. Bu tashqi obunalarni butunlay o'chirib qo'yadi, hatto uning `proxies` massivida hech narsa bo'lmaganida ham. [Bo'sh katalogni](https://github.com/phishdestroy/TgWitness/blob/main/deploy/proxies.config.example) `proxy-config/proxies.json` ga nusxalang va joylashtirilgan ommaviy endpointlaringizni qo'shing: ``` {"format": "tgwitness-proxy-catalog-v1", "proxies": [ {"id": "project-eu", "label": "Project EU", "link": "tg://proxy?server=REPLACE_HOST&port=443&secret=REPLACE_SECRET"} ]} ``` Namuna qiymatlari almashtirilishi kerak. 32 tagacha alohida yozuv qabul qilinadi. Avtorizatsiyalangan ro'yxat sirli ma'lumotlarsiz labelar/mehmonlar/portlarni qaytaradi; birini tanlash uning kreditsialarini ish maydoni seyfiga saqlaydi. Mavjudlik aniq transport testi o'tkazilmaguncha sinovdan o'tmagan hisoblanadi. Noto'g'ri tuzilgan katalog qo'lda sozlashni talab qiladi. Mahalliy ishga tushirish: `TGWITNESS_PROXY_CATALOG` ni mahalliy JSON yo'liga o'rnating. Docker: ``` docker compose -f compose.yaml -f deploy/compose/compose.proxies.yaml up -d --build ``` Qo'shimcha qatlam faqat o'qish uchun`proxy-config`ni o'rnatadi; fayllar konteyner UID 10001 tomonidan o'qilishi kerak. Ushbu papka Git, Docker build konteksti va manba arxivlaridan chiqarib tashlangan. Ushbu katalog ma'lumotlarni yig'uvchi akkauntlarni sozlaydi; [TgWitness boti](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/) MTProxy emas, balki o'zining HTTP/SOCKS5 marshrutidan foydalanadi. To'g'ridan-to'g'ri zaxira yuqoridagi IP rejimiga binoan boshqariladi. Yo'nalishni o'zgartirishdan oldin kuzatuvni to'xtating. Saqlash eski mijozlarni uzib qo'yadi va yakunlanmagan tizimga kirishni bekor qiladi; yangi mijoz saqlangan yo'nalishdan foydalanadi. Hisobning jurnal/sessiya bog'lanishi saqlanib qoladi. Sozlamalar avvalgi yo'nalishni almashtiradi: uni tahrirlashda proksi ma'lumotlarini qayta kiriting. Kirish ma'lumotlari `network.enc`da shifrlangan. API foydalanuvchi nomi, parol yoki sirli kalitni qaytarmaydi. Imzolangan yozuvlarda yo'nalish turi va kirish ma'lumotlari mavjudligi ko'rsatiladi, manzil va sirli kalitlar kiritilmaydi. Operator paneldagi manzilni ko'rishi mumkin. Sirli maydonlar saqlash, qulflash yoki ish maydonlarini almashtirishdan so'ng tozalanadi. **Telegram ulanishini sinab ko'radi**, shuningdek tizimga kirishdan oldin ham mavjud bo'lib, yo'nalish orqali vaqtinchalik ruxsatsiz Telegram ulanishini ochadi va yopadi. U IP-tekshiruv saytiga murojaat qilmaydi. Muvaffaqiyat transport ulanishini o'rnatadi, guruhga kirish, to'liq yetkazib berish yoki anonimlikni emas. Proxy Telegram klientining ulanishlariga, jumladan Telegram DC media yuklamalariga qo'llaniladi. Brauzer, pip, SSH va qo'lda ishga tushirilgan TSA vositalarining alohida yo'llari mavjud. Proxy host nomi mahalliy tarzda aniqlanishi mumkin. `rdns` manzil host nomlariga ta'sir qiladi; Telegram ko'pincha raqamli DC IP-manzillarini taqdim etadi. SOCKS5 va oddiy HTTP CONNECT proxy ma'lumotlarini yoki mijozdan proxyga bo'lgan tunnelni shifrlamaydi. MTProto Telegram trafigini alohida himoya qiladi. Ishonchsiz tarmoqdagi proksiga mos keladigan xavfsiz kanalni ishlating. Xususiy guruhlar bulutli suhbatlardir; MTProto ularni oxirigacha shifrlangan Sirli Suhbatlarga aylantirmaydi. ## Shifrlash va imzo | Qatlam | Amalga oshirildi | Operator mas'uliyati | | --- | --- | --- | | Telegram trafigi | Telethon MTProto | Platforma ishonchliligi, yo'nalish va mavjudlik | | Veb-panel | Ega tokeni, loopback bo'yicha standart, so'rovlarga cheklovlar | Masofaviy kirish uchun HTTPS yoki SSH tunneli | | Sirlar | API akkount ma'lumotlari, sessiya, proksi akkount ma'lumotlari va imzolash uchun xususiy kalit uchun Fernet | Dekripsiya kalitini va ishchi hostni himoya qiling | | Ombor kaliti | Mahalliy kalit yoki yangi o'rnatish uchun tashqi bosh kalit | Maxsus himoyalangan saqlash va kalit zaxira | | Xabarlar va ilovalar | Oddiy matnli ilova saqlash | Shifrlangan disk/hajm | | ZIP/JSONL/CSV/HTML | Butunlik tekshiruvlari, kontentni shifrlash yo'q | Eksport qilingan nusxalar va uzatmalarni himoya qiling | | Manba va vaqt | Imzolangan jurnal, jarayon kviti, RFC 3161 vositalari | Ishonchli kalit, mustaqil tekshiruv punktlari/TSA va saqlash tartibi | Hisobdagi **saqlash himoyasi** ushbu holatlarni ko'rsatadi. Panel tokeni shifrlash paroli emas, balki kirish siridir. U administratorga kirish huquqini beradi; [chiqarilgan tokenlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) hisoblar va suhbatlar bo'yicha chegaralangan bo'lishi mumkin. Ish maydonchalari host jarayonini baham ko'radi va alohida izolyatsiyalangan tenantlar emas. BitLocker, LUKS, FileVault yoki boshqariladigan shifrlangan hajm tegishli tahdid modellariga muvofiq saqlashni himoya qilishi mumkin. Yechilmagan holda ishlayotgan mashinaning ma'murchisi hanuzgacha ma'lumotlarni o'qishi mumkin. Saqlash rejalashtirishda SQLite WAL/SHM, media, vaqtinchalik eksportlar, swap, zaxira nusxalar va brauzer yuklamalarini hisobga oling. Docker hajmi faqatgina hajm bo'lgani uchun shifrlanmaydi. TgWitness SQLCipher yoki obyekt shifrlashni amalga oshirmaydi. ## Tashqi bosh kalit **Yangi** o'rnatish uchun master kalitni ma'lumotlar katalogidan tashqariga joylashtiring. Bu mavjud mahalliy kalit omborini avtomatik ko'chirib o'tkazmaydi. Faqat xizmat identifikatori kirish huquqiga ega bo'lgan kalit katalogini tayyorlang, so'ngra quyidagi buyruqni ijro eting: ``` python -m tgwitness.security create-master-key /private/keys/tgwitness-master.key export TGWITNESS_VAULT_KEY_FILE=/private/keys/tgwitness-master.key python -m tgwitness --data-dir /private/observations/new-case ``` PowerShell, o'rnatilgan loyiha muhitidan foydalangan holda: ``` python -m tgwitness.security create-master-key E:\PrivateKeys\tgwitness-master.key $env:TGWITNESS_VAULT_KEY_FILE = 'E:\PrivateKeys\tgwitness-master.key' python -m tgwitness --data-dir E:\PrivateData\new-case ``` Docker'da faylni `/data` tashqarisida faqat o'qish uchun (read-only) joylashtiring, masalan `/run/secrets/tgwitness-master.key` ga, va muhit o'zgaruvchisini shu yo'lga o'rnating. Xizmatning UID'si uni o'qiy olishi kerak. Yo'lni, kalit baytlarni emas, muhit/sozlash fayllari orqali uzating. Har bir ish maydoni tasodifiy ommaviy salt va HKDF-SHA256 orqali hosil qilingan o'zining Fernet kalitini oladi. `vault.external.json` derivatsiya metama'lumotlarini saqlaydi, asosiy kalitni emas. Kalit yo'qolgan yoki noto'g'ri bo'lsa, u jimjit almashtirmasdan ishga tushishni rad etadi. Tiklash uchun ham salt metama'lumotlarini, ham asosiy kalitni saqlang. Barcha ish maydonchalari bitta asosiy kalitdan kelib chiqadi; uning buzilishi butun o'rnatishga ta'sir qiladi. Ish jarayoni sirlarni dekript qila oladi. Bu HSM yoki parol KDF emas. Tasodifiy kalit o'rniga ixtiyoriy inson parollari qabul qilinmaydi. Mavjud o'rnatmalarda maqsadli migratsiya amalga oshirilib, tekshirilguncha joriy kalitni saqlang. `vault.key`ni o'chirish yoki bosh kalitni almashtirish sessiyalarga/imzolash kalitlariga kirishni yo'qotishiga olib kelishi mumkin. Shifrlangan zaxira nusxalar va kalitlarni alohida saqlang hamda tiklashni izolyatsiyalangan muhitda sinab ko'ring. --- # Telegram · Joriy etish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/ TgWitness-ni Windows, Linux, macOS yoki Docker-da xizmat sifatida, HTTPS orqali, zaxira nusxalari va yangilanishlari bilan ishga tushiring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) TgWitness-ni Windows, Linux, macOS yoki Docker-da xizmat sifatida, HTTPS orqali, zaxira nusxalari va yangilanishlari bilan ishga tushiring. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) ![Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/assets/chapter-operate.svg) **Inglizcha** · [Rus tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/ru/DEPLOYMENT.md) · [Ukrain tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/uk/DEPLOYMENT.md) · [Ispancha](https://github.com/phishdestroy/TgWitness/blob/main/docs/es/DEPLOYMENT.md) · [Portugalscha (Braziliya)](https://github.com/phishdestroy/TgWitness/blob/main/docs/pt/DEPLOYMENT.md) · [Turkcha](https://github.com/phishdestroy/TgWitness/blob/main/docs/tr/DEPLOYMENT.md) · [Arab tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/ar/DEPLOYMENT.md) · [Farsi](https://github.com/phishdestroy/TgWitness/blob/main/docs/fa/DEPLOYMENT.md) · [O'rdu](https://github.com/phishdestroy/TgWitness/blob/main/docs/ur/DEPLOYMENT.md) · [hindicha](https://github.com/phishdestroy/TgWitness/blob/main/docs/hi/DEPLOYMENT.md) · [Indoneziya tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/id/DEPLOYMENT.md) · [Vyetnam tili](https://github.com/phishdestroy/TgWitness/blob/main/docs/vi/DEPLOYMENT.md) · [Xoʻllashma xitoycha](https://github.com/phishdestroy/TgWitness/blob/main/docs/zh/DEPLOYMENT.md) ## O'rnatishni tanlang Portativ paket uchun GitHub Releases'dan `TgWitness--windows-amd64-portable.zip`-ni chiqarib oling. Boshqa usullar uchun manba ZIP-faylni yuklab olib oching yoki omborni klonlang, so'ng loyiha katalogidan quyidagi buyruqni ijro eting: | O'rnatish | Boshlash | Orqa fonda ishlaydimi? | | --- | --- | --- | | Windows uchun portativ paket | `TgWitness.cmd` | Yo'q; oynani ochiq holda saqlang. | | Windows uchun mahalliy | `Start.cmd` | Yo'q; fon rejimida ishlatish uchun ixtiyoriy logon vazifasidan foydalaning. | | Linux/macOS uchun mahalliy | `sh start.sh` | Yo'q; fon rejimida ishlatish uchun systemd/launchd dan foydalaning. | | Har qanday qo'llab-quvvatlanadigan mezbon kompyuterda Docker | `docker compose up -d --build --wait` | Ha, Docker daemon ishlayotgan paytda. | | Windows uchun Docker yordamchisi | `scripts\Docker.cmd` | Ha; yordamchi veb-server sog'lig'ini kutadi. | | Linux/macOS uchun Docker yordamchisi | `sh scripts/docker-start.sh` | Ha; yordamchi veb-server sog'lig'ini kutadi. | Uchinchi tomon tekshira oladigan bulutli server uchun — provayder API orqali yaratilgan, SSHsiz, faqat Cloudflare Tunnel orqali erishiladigan — [yuqori ishonchlilikka ega joylashtirishni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/) ko'ring. Native startup maxfiy `.venv`ni yaratadi va bog'langan bog'liqliklarni o'rnatadi. Docker ularni host Pythonni talab qilmay, image ichida quradi. Birinchi marta o'rnatish uchun Internetga ulanish zarur. Python 3.11+ topilmasa, `Start.cmd` hozirgi Windows foydalanuvchisi uchun Python 3.12 ni o'rnatishdan oldin so'raydi (winget orqali, aks holda Python Software Foundation imzosi tekshirilgach python.org installyeridan); u hech qachon administrator huquqlarini so'ramaydi. Docker va OS xizmatlari oldindan talab qilinadi. Mahalliy va ko'chma o'rnatishlar papkalarida `data/live` dan foydalanadi. Docker `tgwitness-data` nomli hajmni `/data` da ishlatadi. To'liq ma'lumotlar katalogini ataylab ko'chirib o'tmaguningizcha, ular alohida o'rnatishlar hisoblanadi. Yangi Docker konteyneri mahalliy hisoblarni avtomatik ravishda aniqlaydi deb kutmang. ## O'rnatish talablari Mahalliy o'rnatish uchun Python 3.11 yoki undan keyingi versiya, `venv` va `ensurepip`, birinchi bog'liqlikni o'rnatish uchun Internetga ulanish hamda `.venv` uchun yozish huquqiga ega loyiha papkasi kerak. Ilovaga kiritilgan panel uchun Node.js yoki frontend qurilmasi talab qilinmaydi. Launcher-ni odatdagi operatsion tizim akkauntingizdan ishga tushiring; TgWitness uchun administrator/root huquqlari zarur emas. - **Windows:** `Start.cmd` avval `py -3`, keyin `python`, so'ngra foydalanuvchi uchun belgilangan va Program Files o'rnatish papkalarini tekshiradi va 3.11-versiya yoki undan keyingi versiyani talab qiladi. Agar hech biri ishlamasa, u yuqorida tasvirlangan avtomatik foydalanuvchi o'rnatilishini taklif etadi. `py -3 start.py` ham ishlaydi. Portativ paketga umuman Python kerak emas. - **Linux:** `start.sh` `python3.13`, `python3.12`, `python3.11`, `python3` va `python` ni sinab ko'radi va mos keladigan dastur topilmaganda apt, dnf, pacman, zypper, apk yoki Homebrew uchun o'rnatish buyrug'ini chiqaradi. Debian/Ubuntu tizimlarida tanlangan interpretatorga mos `python3-venv` paketini o'rnatish talab qilinishi mumkin. Tarqatishning eski asosiy Python'i Python 3.11+ bilan almashtirilishi yoki to'ldirilishi kerak. - **macOS:** joriy Python 3.11+ tarqatmasini o'rnating; operatsion tizim taqdim etgan interpretator talabga javob beradi deb hisoblamang. Loyiha katalogidan `python3 start.py`-dan foydalaning. - **Docker:** Docker Engine/Desktop-ni Compose v2.20 yoki undan yangiroq versiyasi bilan ishlating. Docker Desktop Windowsda Linux konteynerlaridan foydalanishi kerak. Konteyner o'zining Python bog'liqliklarini o'rnatadi; hostda alohida Python o'rnatilishiga ehtiyoj yo'q. ## Mahalliy kompyuter Windowsda `Start.cmd`, Linux/macOSda esa `sh start.sh` dan foydalaning. `scripts\Setup.cmd` yoki `sh start.sh --setup-only` muhitni tayyorlaydi. Launcher birinchi marta ishlatilganda zarur kutubxonalarni o'rnatadi; keyingi ishga tushirishlarda muhit qayta ishlatiladi. Sozlash va Telegram xabarlarini yig'ish uchun internetga ulanish talab etiladi, ammo mavjud yozuvlarni ko'rib chiqish va eksport yaratish oflayn rejimda amalga oshiriladi. `python start.py --check`-ni sozlamalardan so'ng ishga tushiring, kollektorni ishga tushirmay turib mahalliy bog'liqliklarni, Ed25519, saqlash joyini, kalit konfiguratsiyasini va tinglash manzilini tekshirish uchun. Tuzilgan chiqish uchun `--json` dan foydalaning. Mo'ljallangan `--data-dir`, `--host` va `--port` ni uzating. Tekshiruv paketlarni o'rnatmaydi, jurnal yaratmaydi yoki Telegramga ulanmaydi; bu yaxlitlik yoki qamrov kvalifikatsiyasi emas. Startup alohida mavjud jurnallarni tekshiradi. `python start.py --help` ham o'rnatishni oldini oladi. start.py-dan foydalangandan so'ng, Windowsda `.venv\Scripts\python.exe`, Linux/macOSda esa `.venv/bin/python` yordamchi buyruqlarini ishga tushiring yoki avval shu muhitni yoqing. Quyidagi `python -m ...` misollari muhit faol deb hisoblaydi. ``` python -m tgwitness --data-dir /path/to/private/data --host 127.0.0.1 --port 8787 ``` Atrof-muhit o'zgaruvchilari: TGWITNESS_DATA, TGWITNESS_HOST, TGWITNESS_PORT, TGWITNESS_TOKEN. TGWITNESS_VAULT_KEY_FILE yangi o'rnatish uchun tashqi kalit rejimini tanlaydi; quyida ko'ring. TGWITNESS_TOKEN, agar ko'rsatilsa, kamida 24 belgidan iborat bo'lishi kerak; kriptografik jihatdan tasodifiy qiymatdan foydalaning. U bo'lmasa, ilova panel-token.txt faylida 256 bitli tasodifiy token yaratadi. Atrof-muhit sozlamalari ustunligi ushbu faylni qayta yozmaydi. Kirish ma'lumotlarini aylantirish uchun ilovani qayta ishga tushiring. Aynan bitta jarayon ma'lumotlar katalogiga egalik qilishi mumkin. Platformalararo operatsion tizim fayl qulfi tasodifiy bir vaqtda yozuv qilishni oldini oladi. Bitta Uvicorn ishchisini ishlating. Panel istalgan sonli ish maydonlarini boshqarishi mumkin, qo'shimcha ish maydoni kataloglari profiles// ostida joylashadi. Alohida xizmat instantsiyalari uchun alohida kataloglar va portlardan foydalaning. SQLite WAL fayllari tarmoq fayl tizimida emas, balki mahalliy doimiy saqlash joyida bo'lishi kerak. Bir xajmni nusxa ko'chirishlar (replika) o'rtasida ulashingiz mumkin emas. ## Windows uchun portativ paket Har bir GitHub Release `TgWitness--windows-amd64-portable.zip` va uning `.sha256` versiyalarini o'z ichiga oladi. U python.org saytidan olingan rasmiy embeddable Python 3.12 ijro muhitini (checksum `tools/build_portable.py` da qayd etilgan), TgWitness va uning qayd etilgan bog'liqliklarini, shuningdek uchta ishga tushiruvchini o'z ichiga oladi: | Hujjat | Maqsad | | --- | --- | | `TgWitness.cmd` | Panelni ishga tushiring; qo'shimcha parametrlar uzatiladi, masalan`TgWitness.cmd --port 8790` | | `TgWitness-Demo.cmd` | `data\demo`da sintetik demo-ni ishga tushiring | | `TgWitness-Check.cmd` | Boshlashni boshlamadan tayyorgarlik tekshiruvini ishga tushiring | Mahkam biriktirilgan rus morfologiyasi lug'ati va PDF rang profillari oflayn foydalanish uchun to'plamga kiritilgan. Qadoqlash faqat ularning `data` bog'liqlik papkalaridagi ma'lum fayl yo'llariga ruxsat beradi; kutilmagan fayllar kompilyatsiyani muvaffaqiyatsiz yakunlaydi. Butun arxivni yozish mumkin bo'lgan papkaga, masalan `Documents\TgWitness` ga chiqarib oling; uni ZIP ichida yoki Program Files katalogidan ishga tushirmang. Ijro vaqti alohida modul yo'lidan foydalanadi, shuning uchun boshqa Python o'rnatmalari va `PYTHONPATH` unga ta'sir qilmaydi. Ma'lumotlar paketning `data` papkasida saqlanadi. Yangilash uchun TgWitness-ni to'xtating, yangi versiyani yangi papkaga chiqarib oling va `data` papkasini nusxalab o'tkazing. Uni 64-bit Windowsda Python 3.12 bilan o'zingiz quring: ``` python tools/build_portable.py ``` ## Kontener ``` docker compose up -d --build --wait ``` Bu /data uchun nomlangan doimiy hajm yaratadi. Veb-port 127.0.0.1:8787 ga bog'lanadi. Jarayon UID 10001 sifatida, imtiyozlari cheklangan, faqat o'qish uchun mo'ljallangan root fayl tizimi va yozish mumkin bo'lgan /data hamda /tmp bilan ishlaydi. `--wait` javob qaytarishdan oldin veb-server holatini tekshiradi; u Telegram avtorizatsiyasi yoki yetkazib berishni o'rnatmaydi. Taqdim etilgan yordamchi dasturlar kompilyatsiyadan so'ng 180 soniyalik tayyorlik timeoutidan foydalanadi. Dastlabki bog'liqliklarni yuklab olish buni ham oshib ketishi mumkin. Ikkala asosiy Compose fayllari ham `tgwitness` loyiha nomidan foydalanadi, shuning uchun yangi chiqarilishni boshqa katalogga chiqarish yangi ma'lumot hajmini jimjit tanlamaydi. Ushbu loyiha uchun faqat bitta joylashtirishni faol saqlang. Mustaqil o'rnatishlar uchun noyob `docker compose -p NAME ...` va boshqa host portidan foydalaning hamda yangilanishlarda ikkalasini ham saqlang. Boshqa loyiha nomidan foydalangan eski joylashtirish uchun uning asl nomini `-p` bilan ishlatishni davom ettiring; `docker compose ls` mavjud loyihalarni ro'yxatlaydi. `deploy/env.example` ni `.env` ga nusxa ko'chiring va `TGWITNESS_PORT` ni boshqa loopback portidan foydalanish uchun o'zgartiring. Masalan, `TGWITNESS_PORT=8788` panelni `http://127.0.0.1:8788` da ochadi; konteyner esa hanuz 8787 portda tinglaydi. `.env` Git tomonidan e'tiborsiz qoldirilgan. Boshlang'ich tokenni oling: ``` docker compose exec tgwitness cat /data/panel-token.txt ``` Foydali buyruqlar: ``` docker compose ps docker compose logs --tail 100 -f docker compose stop docker compose up -d --wait ``` `restart: unless-stopped` qulash yoki Docker daemon qayta ishga tushgach kollektorni qayta ishga tushiradi. Linux serverida, odatda `sudo systemctl enable --now docker` bo'lgan distribyutivingizning xizmat menejeri orqali tizim yuklanganda Docker ni yoqishni yoqish. Windows/macOS da Docker Desktop ning tizimga kirishda avtomatik ishga tushirish sozlamasini yoqish. Kompyuterdan chiqish, uxlatish yoki to'xtatilgan Docker daemon yig'ishni to'xtatishi mumkin. Aniq to'xtatilgan konteyner uni qayta ishga tushirmaguningizcha to'xtagan holda qoladi. Misol konfiguratsiyasida /tmp hajmi 512 MiB bilan cheklangan. Eksport qurilishi o'rniga har bir ish maydonining doimiy /data bo'limidagi `temporary-exports/`dan foydalanadi. Simultane eksportlar, jurnal/WAL o'sishi, media va zaxira nusxalar uchun u yerdagi joyni ajratib qo'ying. Ishga tushiruvchi deploy/constraints.txt faylidan foydalanib, malakali ijro muhitiga bog'liqlik versiyalarini mahkamlaydi. Docker va yuqori ishonchlilikka ega serverlar deploy/requirements.lock va deploy/build.lock fayllaridan pip --require-hashes yordamida o'rnatiladi: har bir paket fayli commitda qayd etilgan SHA-256 bilan mos kelishi kerak, shuning uchun PyPI yoki uning oynasida almashtirilgan fayl o'rnatilmaydi. Python asosiy tasviri va operatsion tizim paketlari hanuzgacha mustaqil chiqarish malakasini talab qiladi. Jurnal va kalitlarni yo'q qilmoqchi bo'lmasangiz, docker compose down -v ni ishlatmang. Kontener sog'ligi hisobotlari Telegram xabarlarini muvaffaqiyatli qabul qilishni emas, veb-server mavjudligini ko'rsatadi. Panelning yig'uvchisining holatini, yurak urishini, xatolarini va qamrov voqealarini tekshiring. ### Mustaqil guvoh profili Ixtiyoriy `witness` xizmati [mustaqil guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/)ni o'z konteynerida, o'z kaliti va jurnaliga ega holda `witness-data` hajmida ishga tushiradi va yig'uvchi uchun faqat o'qish huquqiga ega guvoh tokenini taqdim etadi. Tokenni panelning **Witness** sahifasida yarating, uni bot tokeni va kanal bilan `.env` ga qo'shing, so'ng profilni ishga tushiring: ``` docker compose --profile witness up -d # deploy/compose/compose.image.yaml: same flag docker compose logs witness # witness key fingerprint ``` Xizmat Compose tarmog'idagi `http://tgwitness:8787` manzildagi yig'uvchiga ulanadi (`TGWITNESS_WITNESS_COLLECTOR` ustun keladi, masalan, boshqa ish maydoni uchun `/profiles/` ). Alohida serverda, boshqa birov tomonidan boshqariladigan guvoh uchun `deploy/compose/compose.witness.yaml` manzilini ishlating va `TGWITNESS_WITNESS_COLLECTOR` ni yig'uvchining HTTPS manziliga o'rnating; o'sha faylda faqat guvoh bo'ladi. ## Nashr qilingan rasmni o'rnating `deploy/env.example` nusxasini `.env` ga nusxalang. `TGWITNESS_IMAGE` ni e'lon qilingan versiyaga, **kichik harfli** ombor yo'lidan foydalangan holda o'rnating, masalan: ``` TGWITNESS_IMAGE=ghcr.io/your-owner/your-repository:0.9.1 TGWITNESS_PORT=8787 ``` `compose.yaml` o'rniga, ushbu faylni mustaqil ravishda ishga tushiring: ``` docker compose --project-directory . -f deploy/compose/compose.image.yaml pull docker compose --project-directory . -f deploy/compose/compose.image.yaml up -d --wait docker compose --project-directory . -f deploy/compose/compose.image.yaml exec tgwitness cat /data/panel-token.txt ``` Hostda manba kodini kompilyatsiya qilish, Python yoki kompilyator o'rnatilishi shart emas. Reliz jarayoni Linux AMD64 va ARM64 konteynerlarini, jumladan Docker Desktop'ning Linux virtual mashinasi (VM)ni qo'llab-quvvatlaydi. Jarayon tavsifidan versiya tegini yoki `ghcr.io/owner/repository@sha256:...` ni ishlating. `latest` tegini ko'chirish yoki ilovani nazoratsiz yangilash sozlanmagan. Image va manba variantlari loyiha nomlari mos kelganda bir xil ma'lumot hajmini ishlatadi. ## Serverda avtomatik HTTPS Docker bilan ishlaydigan server, nazorat qiladigan domeningiz va doimiy mahalliy saqlash joyidan foydalaning. Domenda A/AAAA yozuvlarini serverga yo'naltiring; IPv6 unga yetib kelganda AAAA yozuvini nashr eting. Kiruvchi TCP 80 va 443 portlarini hamda sertifikat chiqarish uchun chiquvchi DNS/HTTPS trafigini ruxsat eting. Boshqa xizmatlar ushbu portlarni allaqachon egallab olmagan bo'lishi kerak. `deploy/env.example` ni `.env` ga nusxa ko'chiring va sxema yoki yo'l ko'rsatmasdan host nomini belgilang: ``` TGWITNESS_DOMAIN=watch.your-domain.org ``` HTTPS ustki qatlami bilan manba kompilyatsiyasini ishga tushiring: ``` docker compose -f compose.yaml -f deploy/compose/compose.https.yaml up -d --build --wait docker compose -f compose.yaml -f deploy/compose/compose.https.yaml exec tgwitness cat /data/panel-token.txt ``` ``` docker compose --project-directory . -f deploy/compose/compose.image.yaml -f deploy/compose/compose.https.yaml up -d --wait ``` E'lon qilingan rasm uchun o'rniga birinchi fayl sifatida `deploy/compose/compose.image.yaml` ni ishlating. Keyingi holat, loglar, yangilash va to'xtatish buyruqlari uchun ikkala `-f` argumentini saqlang. Caddy sertifikatni oladi va yangilaydi, HTTP-ni HTTPS-ga yo'naltiradi va so'rovlarni xususiy Compose tarmog'idagi yig'uvchiga uzatadi. Sertifikat holatiga o'zining doimiy hajmi biriktirilgan. Yig'uvchining to'g'ridan-to'g'ri host porti faqat loopback uchun mo'ljallangan bo'lib qoladi. Taqdim etilgan Caddy konfiguratsiyasi kirish jurnalini yuritishni yoqmaydi. `https://watch.your-domain.org`ni oching va panel tokenini kiriting. Tayyorlik holatini aniqlash sertifikat berilganini yoki tashqi ulanish imkoniyatini tasdiqlamaydi. Agar HTTPS tayyor bo'lmasa, DNS, firewall qoidalarini tekshiring va: ``` docker compose -f compose.yaml -f deploy/compose/compose.https.yaml logs --tail 100 caddy ``` Taqdim etilgan Caddy tasviri uning `2-alpine` tegiga ega. Pulling o'sha tasvirni yangilaydi; agar sizga infratuzilma versiyalarini barqaror saqlash kerak bo'lsa, joylashtirishingizda sinovdan o'tgan digestni pin qiling. ## Yangilanishlar va zaxira nusxalari Yangilanishlar davomida Compose loyiha nomini va ma'lumot hajmini saqlab qolish. Avvalo, to'plovchini to'xtating va to'liq zaxira nusxasini yarating. Standart manbaga asoslangan joylashtirish uchun: ``` docker compose stop docker compose cp tgwitness:/data ../tgwitness-backup-before-update ``` Har safar ombor tashqarisida yangi zaxira manzilini ishlating va uni hisobga kirish materiali sifatida himoya qiling. Misol yo'li ko'rsatmali; shaxsiy zaxira joyingizdan foydalaning. Yashirin fayllar, barcha ish maydonchalari, kalitlar, jurnal va media hamda butun papkani nusxalang. Agar sozlangan bo'lsa, tashqi omborning bosh kalitini alohida zaxiralang. Dalil ZIP fayli tiklanadigan ilova zaxira nusxasi emas. HTTPS uchun, agar uning sertifikat/hisob holatini saqlash zarur bo'lsa, Caddy hajmlari ham saqlansin. Manbaani ishga tushirish uchun yangi reliz fayllarini oling va quyidagi buyruqni ijro eting: ``` docker compose up -d --build --wait ``` Image deploy uchun `TGWITNESS_IMAGE` ni xohlagan versiyaga o'zgartiring, so'ngra quyidagi buyruqni ishga tushiring: ``` docker compose --project-directory . -f deploy/compose/compose.image.yaml pull docker compose --project-directory . -f deploy/compose/compose.image.yaml up -d --wait ``` Oldingi stop/copy buyruqlari uchun ham o'rnatishingizning Compose fayllaridan foydalaning. `.env`, maxsus konfiguratsiya va loyiha nomini o'zgarmas qoldiring. `down` nomlangan hajmlarni saqlaydi; **`down -v` ularni o'chiradi**. `.venv` ni operatsion tizimlar yoki Python versiyalari o'rtasida nusxalamaslikka harakat qiling. Mahalliy yangilanishlar uchun TgWitness ni to'xtating, uning to'liq ma'lumotlar katalogining zaxira nusxasini oling, manba fayllarini almashtiring va ishga tushirishdan oldin `python start.py --setup-only` ni ishga tushiring. Yangilanishdan so'ng panelga kirish, hisob identifikatori, kuzatuv holati va qamrovni tekshiring. Qayta ishga tushirish o'tkazib yuborilgan Telegram yangilanishlarini tiklamaydi. Agar kelajakdagi versiya saqlash formatlarini o'zgartirsa, rollback uchun oldingi yangilanishdan oldingi zaxira nusxasi talab qilinishi mumkin. ## Masofaviy server Xizmatni loopback manziliga bog'lab qo'ying va SSH tunneli ishlating yoki HTTPSni teskari proxyda yakunlang. Asosiy Compose fayli faqat mahalliy; ixtiyoriy `deploy/compose/compose.https.yaml` ustki qatlami sozlangan domen uchun Caddy'ni ta'minlaydi. URL manzillari va proxy jurnallarida bearer tokenini ko'rsatmang. Revers-proxy so'rov hajmi va ulanish tezligini cheklashi kerak. Oddiy HTTP-ni Internetga ochiq qoldirmang. [deploy/](https://github.com/phishdestroy/TgWitness/blob/main/deploy/README.md) katalogida systemd, Windows logon vazifasi, macOS foydalanuvchi agenti va Caddy uchun misollar keltirilgan. Ularni o'rnatishdan oldin yo'llarini ko'rib chiqing va moslashtiring. Ular shablonlar bo'lib taqdim etilgan, mahalliy ijro etiladigan platforma kvalifikatsiyalari emas. Oddiy ishga tushiruvchi orqali hech qanday fon xizmati yoki vazifa ro'yxatga olinmaydi. Windowsda oynasiz `pythonw.exe` ishga tushirilganda, diagnostika ma'lumotlari `logs/server.log` ning ma'lumotlar katalogida (har bir fayl uchun 5 MiB, ikkita aylantirilgan zaxira nusxa) saqlanadi. Konsolda ishga tushirishlar konsol yozuvlarini saqlab qoladi. HTTP kirish yozuvlari ikkala rejimda ham o'chirilgan. Loglarni ma'lumotlar katalogi bilan himoya qiling va ulashishdan oldin tekshirib chiqing. ## Qayta boshlash va bo'shliqlar So'nggi so'ralgan kuzatuv holati saqlanadi. Agar kuzatuv faol bo'lsa, dastur ishga tushirilganda ulang'ichni qayta ulashga va tanlangan manbalarni tiklashga harakat qiladi. Qo'lda pauza qilish bu niyatni bekor qiladi. Muvaffaqiyatsiz qayta ishga tushirish qayd etilib, panelda ko'rsatiladi. StringSession avtorizatsiyani saqlab qoladi, lekin Telethonning doimiy yangilanish/obyekt holatini emas. Dialog oynalari ishga tushirilganda qayta yuklanadi. Telegram/Telethon ish vaqtida ba'zi transport uzilishlarini tiklashi mumkin, ammo TgWitness jarayonni qayta ishga tushirgandan keyin doimiy qayta ijro etishni kafolatlamaydi. Har bir ishga tushirishda avvalgi jurnal sarlavhasi va oflayn chegarasi qayd etiladi. Monitor har 10 soniyada ulanishni tekshiradi va har daqiqada yurak urishi yozuvini qo'shadi (**Parametrlar → Jonlilik yozuvini har safar qayd etish**). Qisqa uzilishlar e'tibordan chetda qolishi mumkin; ulangan transport to'liq yangilanish yetkazib berilishini kafolatlamaydi. Snapshotlar aniq joriy-tarixiy kuzatuvlar bo'lib, hech qachon bo'shliqlarni to'ldirmaydi. Media navbati har bir ish maydonining SQLite ma'lumotlar bazasida saqlanadi. Xabar va uning ishi atomik tarzda yakunlanadi. To'xtab qolgan ishlar ish boshlanganda qayta urinish uchun tiklanadi. Har bir yuklab olish uchun 120 soniyalik asosiy timeout va hajmiga qarab 256 KiB/s tezlikda hisoblanadigan qo'shimcha vaqt, shuningdek har bir ilova turi uchun 1–2 000 MiB limit mavjud; timeout, tezlik va qayta urinishlar **Parametrlar** bo'limida sozlanadi. Yig'uvchi hajmi noma'lum bo'lgan fayllarni o'tkazib yuboradi. To'xtatish navbatdagi ishlarni saqlab qoladi. Qayta urinish dastlab kuzatilgan fayl tasvirini (file descriptor) ishlatadi, keyinchalik tahrirlangan xabarning eng so'nggi versiyasini emas. Vaqtinchalik xatoliklar cheklangan urinishlarga ega; media FloodWait pauzalari qayta ishga tushirishdan keyin ham saqlanadi. Media tiklash Telegram yangilanishlarini tiklashdan alohida bo'lib, yo'qolgan fayllarni qayta yaratolmaydi. ## Zaxira, tiklash va sig'im **Butun ma'lumotlar katalog**ini, jumladan vault.key, signing.enc, credentials.enc, SQLite ma'lumotlar bazasi/WAL fayllari, media, token, tekshiruv nuqtalari va barcha profil/kichik kataloglarni nusxalashdan oldin jarayonni to'xtating. Maqsadli xizmat to'xtatilgan paytda to'liq nusxani tiklang. Yo'qolgan vault kalitlari yoki signing-key nomuvofiqligi ishga tushirishni muvaffaqiyatsiz yakunlaydi; majburiy kirish uchun kalitlarni qayta yaratmang. Maxfiy zaxira nusxalarini shifrlangan va kirish nazoratli holda saqlang. Dalil ZIP-fayllari ko'chma: ular ilova zaxira nusxalari yoki Telegram sessiyasi zaxira nusxalari emas, balki artefaktlarni ko'rib chiqish uchun mo'ljallangan. Avtomatik saqlash yoki o'chirish mavjud emas. Barcha xabarlar, xom metadata, media, vaqtinchalik eksportlar va zaxira nusxalari uchun disk maydonini rejalashtiring. Butun jurnalni yuklash o'rniga boshlang'ich tekshiruv va eksport oqim yozuvlarini ishga tushiradi. Eksport o'qish snapshotini mahkamlaydi, shu bilan birga yangi WAL yozuvlari davom etishi mumkin; uzoq davom etadigan eksportlar WAL sahifalarini saqlab qolishi mumkin, shuning uchun disk sig'imi hali ham muhim. ZIP-lar 4 GiB bilan cheklangan siqilmagan holda, mustaqil tekshiruvchining standartiga mos kelishi uchun; **Parametrlar → Eng katta imzolangan ZIP** limitni oshiradi va bunday arxivlar `verify.py --max-gib N` bilan tekshiriladi. Boshqa formatlarda voqealar soni bo'yicha cheklov yo'q. Qo'llab-quvvatlanadigan brauzerlar javob bo'laklarini foydalanuvchi tanlagan faylga oqimlaydi. Boshqa brauzerlar eng ko'pi bilan 128 MiB buferlaydi va kattaroq uzatmalarni autentifikatsiyalangan CLI ga yo'naltiradi: ``` python -m tgwitness.download --token-file data/live/panel-token.txt --out evidence.zip ``` Boshqa ish maydoni uchun **Exports → Workspace ID** bo'limidan `--profile ID`, masofaviy server uchun `--format zip|jsonl|csv|html` va `--url https://your-server` yoki 5 GiB uzatish limitini o'zgartirish uchun `--max-mib` ni ishlating. Oddiy HTTP faqat loopback uchun ruxsat etiladi. Tokenlar sarlavhalarda uzatiladi, yo'naltirishlar rad etiladi, mavjud fayllar ustidan yozib tashlanmaydi va to'liq bo'lmagan yuklamalar yakuniy fayllar sifatida e'lon qilinmaydi. Agar TGWITNESS_TOKEN hosil qilingan tokenni bekor qilsa, alohida himoyalangan va o'sha faol qiymatni o'z ichiga olgan fayldan foydalaning: panel-token.txt ustun qo'yish orqali yozib tashlanmaydi. Buyruqning SHA-256 qiymati faqat uzatish tekshiruv yig'indisi hisoblanadi; imzolangan ZIP faylni mustaqil ravishda tekshiring. Panel navbatga qo'yilgan/muvaffaqiyatsiz bo'lgan media, eng qadimgi kutayotgan media, bo'sh disk, Telegram so'rovlari to'xtatib turilgan vaqtlar hamda kirish tasdiqlanmagan manbalarni ko'rsatadi. Ushbu diagnostika vositalari to'liq oxirigacha yetkazib berish monitoringi emas. Ish maydonchalari jarayonni baham ko'radi; shovqinli hisob boshqalarga ham ta'sir qilishi mumkin. Alohida ishchi jarayonlar, saqlash muddati/aylantirish, barqaror yangilanishlarni tiklash va to'liq joriy etishni tasdiqlash saqlanib qoladi. Panelga cheklangan kirish huquqi [kirish va ruxsatnomalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) hujjatlarida qayd etilgan; mustaqil tekshiruv nuqtalari [guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/)qo'llanmasida ko'rib chiqilgan. Batafsil protseduralar: [ulanish/xavfsizlik](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/) va [ishlash rejimlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/). --- # Phala / Intel TDX · Yuqori ishonchlilikka ega joylashtirish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/ Hetzner yoki Phala Cloud' da joylashgan, 24/7 yopiq server, Gateway DNS va uchinchi tomon takrorlay oladigan tekshiruvlar. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Translation coverage: this edition includes material from the English original. Hetzner yoki Phala Cloud'da joylashgan, 24/7 yopiq server, Gateway DNS va uchinchi tomon takrorlay oladigan tekshiruvlar. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) ![Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/assets/chapter-operate.svg) Yuqori ishonchlilikka ega joylashtirish arxivni tekshirishga yig'ish muhitining mustaqil tekshiruvlarini qo'shadi. Ko'rib chiquvchi bulut provayderi va Cloudflare'da saqlangan joylashtirish va kirish yozuvlarini so'raydi, Intel TDX joylashtirishi esa yig'uvchining muhitini apparat tasdiqlash bilan to'ldiradi. Oddiy mahalliy va Docker ishlatish o'zgarmagan. Bu yerda hech narsa ishlamaydi, agar siz uni bilan joylashtirmang `python -m tgwitness.cloud`, va collector faqat joylashtirishda sozlamalar belgilanganida mezbonini o'qiydi. `TGWITNESS_ASSURANCE`. Oqim sxemasi · Operator → Server, kirish qoidalarsiz firewall (provayder API); Operator → Tunnel va DNS (Cloudflare API); Server, kirish qoidalarsiz firewall → Tunnel va DNS (faqat chiqish); Server, kirish qoidalarsiz firewall → Serverda yaratilgan imzolash kaliti; Verifier, faqat o'qish uchun tokenlar → Provayder logi va firewall; Verifier, faqat o'qish uchun tokenlar → Tunnel ulagich manzili va kirish; Verifier, faqat o'qish uchun tokenlar → Imzolangan /api/kafolat bayonoti; Verifier, faqat o'qish uchun tokenlar → Dalil ZIP · Operator · Verifier, faqato'qish uchun tokenlar · Server, kirish qoidalarsizfirewall · Provayder logi va firewall · Tunnel ulagich manzili vakirish · Imzolangan /api/kafolatbayonoti · Dalil ZIP · Tunnel va DNS · Serverda yaratilganimzolash kaliti · provayder API · Cloudflare API · faqat chiqish **Diagramma matn sifatida** 1. Operator → Server, kirish qoidalarsiz firewall (provayder API) 2. Operator → Tunnel va DNS (Cloudflare API) 3. Server, kirish qoidalarsiz firewall → Tunnel va DNS (faqat chiqish) 4. Server, kirish qoidalarsiz firewall → Serverda yaratilgan imzolash kaliti 5. Verifier, faqat o'qish uchun tokenlar → Provayder logi va firewall 6. Verifier, faqat o'qish uchun tokenlar → Tunnel ulagich manzili va kirish 7. Verifier, faqat o'qish uchun tokenlar → Imzolangan /api/kafolat bayonoti 8. Verifier, faqat o'qish uchun tokenlar → Dalil ZIP **Ushbu sahifada** - [Verifikator tekshira oladigan narsalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#what-a-verifier-can-check) - [Provayderlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#providers) - [Phala Cloud'dagi maxfiy VM (Intel TDX)](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#confidential-vm-on-phala-cloud-intel-tdx) - [Boshlashdan oldin](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#before-you-start) - [Panelidan](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#from-the-panel) - [Domensiz tezkor tunnel](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#quick-tunnel-without-a-domain) - [Joylashtirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#deploy) - [Xatoliklarni tuzatish, joylashtirish va qulflash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#debug-deployment-and-lock) - [Joylashtirishni olib tashlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#remove-a-deployment) - [Har qanday server (o'zini tasdiqlagan)](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#any-server-self-attested) - [Tasdiqlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#verify) - [Dalillarni topshirish bo'yicha hisobot](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#report-for-evidence-handover) - [Cloudflare tashqi guvoh sifatida](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#cloudflare-as-an-outside-witness) - [Joylashtirish natijasini o'qish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#reading-the-deployment-result) ## Verifikator nima tekshira oladi | Da'vo | Qanday tekshiriladi | Tomonidan saqlangan | | --- | --- | --- | | Server ma'lum vaqtda provayder API orqali yaratilgan | Server obyekti va uning provayderning o'z logida yaratilishi | Provayder | | Hech kim provayderning kirish yo'llaridan foydalanmadi | Konsol so'rovlari, tiklash, parolni tiklash, qayta qurish, ISO, tasvirlar, zaxira nusxalari logi | Provayder | | Hech narsa unga ulanolmadi | Provayderning firewallida kirish qoidalari yo'q; SSH birinchi yuklashdan boshlab yashirilgan. | Provayder (firewall), host (SSH) | | Panelga faqat tunnel orqali kirish mumkin | Tunnel kirishi faqat paneldagi manzilga yo'naltiriladi; ulagich server manzilidan ishlaydi | Cloudflare | | Aynan shu dasturiy ta'minot ishlaydi | Yig'uvchining imzolangan manba daraxti hashiga joylashtirilgan commitning checkouti teng | Collector, Git bilan tekshirilgan | | Imzo kaliti shu serverda yaratilgan | Kalit provayderning server IDsi va olgan cloud-initning xeshini ko'rsatadigan bayonotni imzolaydi | Provayderga qarshi tekshirilgan Collector | | Jurnal o'sha kalit va serverga tegishli | Har bir jarayon dalillarda boshlanadiZIP o'sha server uchun mezbon o'lchovini o'zida saqlaydi | Dalil ZIP | Yig'uvchi imzolangan process-start va `host.state` yozuvlarida SSH holatini, sessiyalarni, kirish tarixini va ishga tushirish ma'lumotlarini qayd etadi. Oddiy VMda bu mahalliy inventarizatsiya yozuvlari bo'lib, ko'rib chiquvchi ularni provayderning mustaqil yozuvlari bilan solishtiradi. Quyidagi Intel TDX joriy etilishi esa apparat bilan ta'minlangan o'lchovlarni ham tasdiqlaydi. ## Provayderlar | `--provider` | Kirish ma'lumotlari | Verifikatorning faqat o'qish huquqi | Verifikator uchun provayder logi | Saqlangan | | --- | --- | --- | --- | --- | | `hetzner` | `HCLOUD_TOKEN` | Shu loyihaning tokenini o'qish | Server va firewall harakatlari | Resurslar mavjud bo'lsa | | `digitalocean` | `DIGITALOCEAN_TOKEN` | Faqat o'qish uchun shaxsiy kirish tokeni | Droplet harakatlari | Droplet mavjud bo'lgan paytda | | `linode` | `LINODE_TOKEN` | `linodes`, `firewall`, `events` faqat o'qish uchun mo'ljallangan doiralar | Hisob voqealari, firewall qoidalarining versiyalari | 90 kun | | `vultr` | `VULTR_API_KEY` | O'qish huquqiga ega foydalanuvchi va `activity_logs` ruxsati | Hisob faoliyati logi (usul, yo'l, ijrochi) | 30 kun, audit-log obunasiga ega bo'lsa, muddati uzaytiriladi | | `aws` | `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` | `ec2:DescribeInstances`, `ec2:DescribeSecurityGroups`, `cloudtrail:LookupEvents` | CloudTrail voqealari tarixi | 90 kun | | `phala` | `PHALA_CLOUD_API_KEY` | Bir xil ish maydonining API kaliti | Ilova reviziyalari va CVM operatsiyalari: Docker Compose konfiguratsiyasi va muhit o'zgarishlari, qayta ishga tushirishlar, operatsion tizimni yangilashlar | Ilova mavjud bo'lsa | | `generic` | yo'q | yo'q | yo'q: **o'zini tasdiqlagan** | – | Har bir ish uchun maxsus loyiha, jamoa, hisob yoki kichik hisobdan foydalaning: tekshiruvchining faqat o'qish huquqi faqat shu joylashtirishni ko'rsatadi. Kirish ma'lumotlari `--provider-token-file` yoki yuqoridagi o'zgaruvchidan o'qiladi, hech qachon buyruq satridan emas. AWS uchun fayl saqlaydi `ACCESS_KEY_ID SECRET_ACCESS_KEY [SESSION_TOKEN]`; mintaqa esa `--location`. Har bir provayderning yozuvlari ko'rsata olmaydigan narsa har bir hisobotda chop etiladi. Qisqasi: Hetzner konsol so'rovlarini qayd etadi; DigitalOcean'ning Recovery Console, Linode'ning Lish/Glish va Vultr'ning veb-konsoli shu tarzda qayd etilmaydi, shuning uchun root birinchi yuklashda qulflanadi va konsolga kirish parolni tiklash yoki yuklashni o'zgartirishni talab qiladi, bu esa qayd etiladi. Vultr instantsiyani o'qiy oladigan har qanday kalitga konsol manzilini qaytaradi; na yozuv, na hisobot uni saqlamaydi. ## Phala Cloud'dagi maxfiy virtual mashina (Intel TDX) Bilan `--provider phala` to'plovchi dstack tomonidan boshqariladigan [Phala Cloud](https://phala.com/)'dagi Intel TDX maxfiy virtual mashinada ishlaydi. Host va Phala xodimlari uning xotirasini o'qiy olmaydi, protsessor esa mashinaning nimadan yuklanganligi haqidagi tasdig'ni imzolaydi. Tekshiruvchi Phala'ning gapiga ishonmaydi: `tgwitness.tdx` har bir tasdig'ni o'zi, hattoki belgilangan Intel SGX Root CA gacha, Intelning bekor qilish ro'yxatlari va Intelning imzolangan platforma ma'lumotlariga qarshi tekshiradi va xatolik tuzatilishi yoki ko'chirib olinishi mumkin bo'lgan mashinalarni rad etadi. | Hisobot yozuvi | U nimani ko'rsatadi | | --- | --- | | `tdx_binding` | Tasdiq to'plovchining imzolangan bayonoti va ushbu so'rovning tasodifiy qiymatini o'z ichiga oladi. | | `tdx_quote` | Intel attestatsiyani kafolatlaydi; u faqat Intel platformani yangilangan deb baholaganda o'tadi | | `tdx_compose_hash` | RTMR3, dstack voqealar logidan qayta ijro etilganda, kollektorning hisobot bergan app-compose'ini o'lchaydi | | `tdx_compose` | Ushbu kompozitsiya joylashtirilgan commit kodining bytema-byte nusxasi: manba fayllari hash bo'yicha biriktirilgan, ikkala rasm esa digest bo'yicha, boshqa hech qanday kod yo'q. | | `tdx_identity` | Tasdiq joylashtirilgan ilova va instantsiya tomonidan beriladi, kalitlar Phala KMS'idan olinadi va disk shifrlangan. | | `tdx_os` | MRTD va RTMR0-2 qiymatlari verifikator tomonidan Dstack-TEE operatsion tizimi tasviridan (Dstack-TEE tomonidan e'lon qilingan), CVM tomonidan xabar qilingan operatsion tizim tasviri xashi va VM shakli uchun QEMU tomonidan tuzilgan ACPI jadvallariga asoslanib hisoblangan qiymatlarga to'g'ri keladi: firmware, kernel, initrd, ildiz fayl tizimi xashi bilan buyruq qatori, xotira, vCPUlar va qurilmalar. Rivojlantirish tasviri muvaffaqiyatsiz bo'ladi | The OS image (about 180 MB, of which 21 MB are kept) is downloaded once from [Dstack-TEE/meta-dstack](https://github.com/Dstack-TEE/meta-dstack/releases) into `dstack-images` beside the record; `--tdx-image FOLDER` uses another folder or an unpacked image, `--tdx-image none` skips the comparison. The measurement follows `dstack-mr` and the `qemu-acpi` crate of Dstack-TEE/dstack. Private measurement regressions compare QEMU's own ACPI output and a retained Phala Cloud quote; live qualification also needs the published image. `--tdx-measurements` still compares MRTD and RTMR0-2 given as JSON instead. Jurnalga yozilgan har bir kollektor ishga tushishi bunday tasdiqnomaga ega, shuning uchun `verify --evidence` har bir ishga tushishni va uning yuklagan OS tasvirini tekshiradi. Phala ilovasining versiyalari va CVM amallari provayder logi sifatida xizmat qiladi: joylashtirishdan keyin o'zgartirilgan Docker Compose konfiguratsiyasi hisobotda xato sifatida qayd etiladi va qayta ishga tushishlar ko'rib chiqish uchun ro'yxatlanadi. Panelda **Extras** → **Server 24/7** bo'limida **Confidential virtual machine · Phala Cloud** ni tanlang va Phala Cloud API kalitini joylashtiring; tez tunnel Hetzner'da ishlaydi. Buyruq satridan: ``` python -m tgwitness.cloud deploy --provider phala --name case-1 --server-type tdx.small \ --ref v0.8.0 --repository https://github.com/phishdestroy/TgWitness --quick-tunnel \ --provider-token-file phala-key.txt python -m tgwitness.cloud verify --record deployments/case-1/deployment.json \ --provider-token-file phala-key.txt --cloud-init deployments/case-1/docker-compose.yaml \ --source CHECKOUT_OF_COMMIT --fingerprint COLLECTOR_FINGERPRINT --report certificate.md python -m tgwitness.cloud check-report --report certificate.pdf --verifier-fingerprint VERIFIER_KEY ``` `--tdx-collateral` Intel sertifikatlari va bekor qilish ro'yxatlarini Intel'dan yuklab olish o'rniga fayldan o'qiydi. Gateway DNS bu yerda mavjud emas: Phala'da chiquvchi trafik uchun provayder firewalli yo'q. ### Tasdiqlash sertifikati Phala joylashtirish uchun `verify --report certificate.md` ham sertifikatni yozadi: a mustaqil `certificate.html` va A4 `certificate.pdf` xulosasi bilan, Intel ildizidan to'plovchi kalitigacha bo'lgan ishonch zanjiri, oddiy va yuqori kafolatli serverlar bilan solishtirish, e'lon qilingan imidjdan hisoblangan qiymatlar yonidagi o'lchovlar, har bir qism uchun kim kafolat beradi, Intel sertifikat zanjiri, har bir tekshiruv, provayder logi va tekshiruvni qanday takrorlash. JSON hisobot rasmiy yozuv bo'lib qoladi; sahifalar uni ko'rsatadi. Hisobot `certificate.seal.json` va uning yonidagi `.tsq`/`.tsr` fayllarida imzo va vaqt shtamplari bilan raqamli muhrlangan: | Muhr | Qo'shgan yangiliklari | | --- | --- | | Malakali elektron vaqt shtampi, `http://tsa.belgium.be/connect` | RFC 3161 vaqt shtampi Belgiya federal hukumatining malakali ishonch xizmat provayderi (FPS Siyosat va Qo'llab-quvvatlash, BOSA) tomonidan taqdim etilgan `certificate.json` aniq baytlariga nisbatan qo'llanadi. Ushbu birlik Belgiya Yevropa Ittifoqi ishonchli ro'yxatida malakali vaqt belgilash xizmati sifatida, maqoli berilgan holda keltirilgan; root (Belgium Root CA6) va ro'yxatdagi yozuvlar 2026-yil 20-oktabrdagi ro'yxatga muvofiq `tgwitness/tsa_roots.py` ga mahkamlangan. 910/2014-sonli Reglamentning 41-moddasiga muvofiq, bunday vaqt shtampi har bir Yevropa Ittifoqi a'zo davlatida sana va vaqt hamda ma'lumotlarning yaxlitligi bo'yicha to'g'ri deb qabul qilinadi. | | RFC 3161 vaqt shtampi, FreeTSA | Ikkinchi, mustaqil vaqt tamg'asi | | Verifikator imzosi | Ed25519 hashi hisobotning SHA-256 va har bir vaqt shtampini o'z ichiga olgan bayonot ustida, verifikatorning o'z kaliti (`--sign-with FOLDER`, standart `~/.tgwitness/verifier`) bilan tuziladi; PDF ham shu kalit bilan imzolangan | `--timestamp URL` (takrorlanadigan) boshqa vakolatli organlarni tanlaydi, `--timestamp none` hech birini tanlamaydi, `--sign-with none` muhrni imzolamasdan qoldiradi. `check-report` hisobotning xeshini, tasdiqlovchi imzosini, har bir vaqt shtampini ishonchli ildizga va uning malakali holatini, shuningdek PDF faylining imzosini tekshiradi. Yevropa Ittifoqi tashqarisidagi malakali vaqt shtampining va hisobotning butunlay huquqiy og'irligi uni qabul qiluvchi sud yoki organ zimmasidadir; muhr hisobot qachon mavjud bo'lganini va u o'zgarmaganini ko'rsatadi. Attestatsiya Intel'ning TDX modulidagi yoki mikrokodidagi nuqsonni yoki xotira magistraliga jismoniy kirishni inkor eta olmaydi. Phala hisobidagi ilovani nazorat qiluvchi shaxs boshqa compose joylashtirishi mumkin; u yangi compose hash bilan yangi tahrir sifatida paydo bo'ladi. Mezbon mashina vaqt manbai va tarmog'ini nazorat qiladi. Joylashtirish, `--evidence` bilan tekshirish, qayta ishga tushirishlar, operatsion tizim tasvirini solishtirish, imzo va vaqt shtamplari bilan raqamli muhrlangan sertifikat va yo'q qilish amallari Phala Cloud'da o'zida bajarilgan; qarang [, 2026-yil 4-noyabrdagi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#live-phala-cloud-deployment--4-november-2026) ishga tushirish. ## Boshlashdan oldin 1. Cloudflare zonasining, uning hisob IDsi va **Cloudflare Tunnel Edit**, **Zone Read** va **DNS Edit** huquqlariga ega API tokeni, berilgan `--cloudflare-token-file` yoki `CLOUDFLARE_API_TOKEN`Verifikatsiya qiluvchi uchun: **Cloudflare Tunnel Read**, **DNS Read** va audit log uchun **Account Settings Read**. Domensiz [tezkor tunnel](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#quick-tunnel-without-a-domain)ga bularning hech biri kerak emas. 2. Maxsus loyihaga yozish huquqiga ega provayder ma'lumotlari; `lock` xuddi shunday ishlatadi: - Hetzner: O'qish va yozish huquqiga ega API tokeni; - DigitalOcean: yozish huquqiga ega shaxsiy kirish tokeni; - Linode: shaxsiy kirish tokeni bilan `linodes`, `firewall` va `events` o'qish/yozish doiralariga ega; - Vultr: maxsus hisob yoki sub-hisobning API kaliti; - AWS: IAM kreditsiyalari ruxsat etilgan `ec2:DescribeVpcs`, `ec2:DescribeImages`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:RunInstances`, `ec2:CreateTags`, `ec2:DescribeInstances`, `ec2:DescribeSecurityGroupRules` va `ec2:RevokeSecurityGroupIngress`. 3. Ijro etiladigan commit. Reliz tegini bir marta uning commitiga hal qiladi `git ls-remote`; server faqat 40 belgili commitni oladi. ## Panelidan O'zingizning kompyuteringizda **Extras → Server 24/7** ham xuddi shunday ishlaydi `deploy` Hetzner uchun uch bosqichda: Yevropa yoki Qo'shma Shtatlarni tanlang, Hetzner tokenini (O'qish va yozish) joylashtiring, so'ng server turi, oylik narxi, manzil va panel ushbu token orqali topgan versiyasini ko'rib chiqing. Siz tasdiqlamaguningizcha hech narsa yaratilmaydi. Panel har bir bosqichni quyidagicha ko'rsatadi `deploy` hisobot beradi, keyin manzil, panel tokeni va imzolash kalitining barmoq izi ko'rsatiladi. Domen bo'lmasa, serverga [tezkor tunnel](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#quick-tunnel-without-a-domain) beriladi; **Sizning serverlaringiz → Joriy manzilni topish** qayta ishga tushirilgandan keyin uni yana tekshiradi. O'zingizning domeningiz ostida doimiy manzil uchun, **Imtiyozli · o'zingizning domeningizni** oching va Cloudflare tokenini qo'shing (tayyorlangan havola Zona o'qish, DNS tahrirlash va Cloudflare Tunnel tahrirlashni tanlaydi). Tokenlar brauzer yorlig'idan TgWitnessgacha bo'lgan har bir so'rov bilan birga harakatlanadi va biror joyga yozilmaydi; joylashtirish yozuvi, tahrirlangan cloud-init, panel tokeni va tezkor tunnel uchun manzil kaliti `deployments/NAME` ma'lumotlar katalogi ichida. Panel buni faqat asosiy ma'murga to'g'ridan-to'g'ri loopback ulanishida taklif etadi (`127.0.0.1`, proksi yoki tunnel sarlavhalarsiz); tarmoq orqali ulanilgan panel esa uning o'rniga buyruqlarni ko'rsatadi. Versiya o'lchovi ishlayotgan panelning chiqarish tegiga (release tag) o'rnatilgan bo'lib, u GitHub API orqali aniqlanadi. Joylashuv, server turi va narxi Hetzner API'sidan olinadi: `cpx22` agar u taklif etilsa, aks holda kamida 2 GB xotiraga ega eng arzon x86 turi. ## Domensiz tezkor tunnel `--quick-tunnel` o'rnini bosadi `--zone`, `--cloudflare-account` va `--panel-host`; Cloudflare hisob qaydnomasi yoki token ishtirok etmaydi: ``` python -m tgwitness.cloud deploy --provider hetzner --name case-2026-11 --server-type cpx22 \ --ref 0123456789abcdef0123456789abcdef01234567 --quick-tunnel --provider-token-file hetzner.token ``` Serverda cloudflared panelga [tez tunnel](https://developers.cloudflare.com/tunnel/get-started/quick-tunnels/) ochadi: tasodifiy `https://….trycloudflare.com` manzilni har safar cloudflared yoki server qayta ishga tushirilganda o'zgartiradi. Serverdagi kichik bir xizmat har bir manzilni tasodifiy ntfy.sh mavzusiga joylaydi, uni faqat joylashtirish katalogida saqlangan kalit bilan imzolaydi (HMAC-SHA256) (`address-key.txt`), va uni har uch soatda takrorlaydi, chunki ntfy.sh postlarni 12 soat davomida saqlaydi. `deploy` **Joriy manzilni topish** faqat imzolangan postlarni qabul qiladi, shuning uchun soxtalashtirilgan post sizni va panel tokeningizni boshqasining manziliga yubora olmaydi. Mavzu yozuvda va e'lon qilingan cloud-initda mavjud: ularga ega bo'lgan har kim joriy manzilni o'qishi mumkin, u hanuzgacha panel tokenini so'raydi. Server hech qanday kiruvchi portni ochmaydi. Verifikatorning manzil kaliti yo'q va mavzuni o'qiydigan har kim unga post yozishi mumkin. Shuning uchun collector ham manzilni o'zining Ed25519 kaliti bilan imzolab post qiladi va `verify` joylashtirish yozuvida collector kaliti bilan imzolangan eng yangi postni oladi; postlar ularning da'vo qilgan vaqtiga emas, balki ntfy.sh ularni qabul qilgan vaqtga ko'ra tartiblanadi. Ushbu o'zgarishdan oldingi kollektor hech narsani imzolamaydi va `verify` eng yangi postni oladi va `statement` tekshiruvida shuni bildiradi; soxtalashtirilgan post faqatgina ushbu tekshiruvni muvaffaqiyatsiz qilishi mumkin, chunki manzil hali ham kollektor kaliti bilan javob berishi kerak. Nima uchun: tezkor tunnel yozuvlarini saqlamaydigan Cloudflare hisobotlari yo'qligi sababli, `verify` tunnel, konnektor va DNS tekshiruvini mavjud emas deb hisoblaydi va natija eng yaxshi holatda ham `incomplete` (Phala'da Cloud tekshiruv o'rniga o'tkaziladi: ulagich o'lchangan Docker Compose konfiguratsiyasi ichida ishlaydi); provayder yozuvlari, firewall, imzolangan bayonot, host o'lchovlari va o'rnatuvchi solishtirish odatdagidek tekshiriladi. Referens o'rnatuvchi bilan bayt solishtirish `--quick-tunnel` ni allaqachon biladigan joylashtirilgan commitni talab qiladi; 0.7.0 checkout domen o'rnatuvchini yaratadi va farqni xabar qiladi. Cloudflare tezkor tunnelar uchun ish vaqti kafolatini bermaydi, 200 ta so'rovni bir vaqtda uzatishga ruxsat beradi va Server-Sent Eventsni uzatmaydi, shuning uchun paneldagi jonli yangilanishlar (0.7.0 dan keyingi versiyalar) birinchi usul orqali yetib kelmasligi mumkin va ko'rinishni qayta yuklash talab qilinadi; bu qism sinab ko'rilmagan. Ishga tushirish zarur bo'lgan holat uchun o'zingizning domeningizdan foydalaning. ## Joriy etish Avvalo yuboriladigan barcha narsalarni ko'ring. `plan` provayder yoki Cloudflare so'rovini yubormaydi: ``` python -m tgwitness.cloud plan --provider hetzner --name case-2026-11 --server-type cpx22 \ --ref 0123456789abcdef0123456789abcdef01234567 --zone example.org \ --cloudflare-account CLOUDFLARE_ACCOUNT_ID --panel-host case.example.org ``` Keyin bir xil parametrlar va kirish ma'lumotlari bilan joylashtiring: ``` python -m tgwitness.cloud deploy --provider hetzner --name case-2026-11 --server-type cpx22 \ --ref 0123456789abcdef0123456789abcdef01234567 --zone example.org \ --cloudflare-account CLOUDFLARE_ACCOUNT_ID --panel-host case.example.org \ --witness-host case-witness.example.org \ --provider-token-file hetzner.token --cloudflare-token-file cloudflare.token ``` Boshlash uchun server turlari: `cpx22` (Hetzner), `s-1vcpu-2gb` (DigitalOcean), `g6-standard-1` (Linode), `vc2-1c-2gb` (Vultr), `t3.small` (AWS). `--location` va `--image` har bir provayderning Yevropa mintaqasidagi Ubuntu 24.04 tizimini standart sifatida tanlaydi. `--repository` URLda parol ko'rsatmasdan boshqa https Git omboridan commitni oladi (defolt `https://github.com/phishdestroy/TgWitness.git`). `deploy` ham qabul qiladi `--out` boshqa joylashtirish katalogi uchun (bo'shliganida `deployments/NAME`; allaqachon joylashtirish (deployment) mavjud bo'lgan papka rad etiladi) va `--wait`, yig'uvchining imzolangan bayonotini kutish uchun daqiqalar: 1 dan 240 gacha, standart 20, yoki 60 uchun `generic`. Buyruq: 1. Cloudflare tunneli yaratadi, uning kirish qismi panel hostnomini panellarga yo'naltiradi va, agar berilgan bo'lsa, guvoh hostnomini `/api/witness/head` va `/api/assurance` faqat; 2. ushbu hostnomalar uchun proksi orqali CNAME yozuvlarini yaratadi, allaqachon mavjud bo'lgan nomlarni rad etadi; 3. kirish qoidalarsiz provayder firewalli va uning ortida SSH kalitisiz, zaxira nusxalarsiz, konsol agenti bo'lmagan va SSH ni yashiruvchi, rootni qulflash va o'rnatishni amalga oshiruvchi cloud-init bilan server yaratadi `cloudflared`, aynan kerakli commitni oladi, uni tekshiradi va TgWitnessni mustahkamlangan systemd xizmati sifatida ishga tushiradi; 4. yig'uvchining imzolangan bayonotini kutadi va unda aynan shu server hamda shu cloud-initning xeshini ko'rsatilganligini tekshiradi. `deployments/case-2026-11/` so'ngra saqlaydi: | Hujjat | Mavzular | Ulaish? | | --- | --- | --- | | `deployment.json` | IDlar, xeshlar, bajarilgan API chaqiruvlari (metod, yo'l, holat) va birinchi imzolangan bayonot | Ha, verifikator bilan | | `cloud-init.redacted.yaml` | Aniq cloud-init ikkita sir o'rniga `REDACTED` | Ha | | `panel-token.txt` | Panel tokeni | Yo'q | Provayderning root paroli, tunnel tokeni va panel tokeni hech qachon yozilmaydi `deployment.json`. Yakunda chop etilgan kollektor barmoq izini o'zingiz nazorat qilmaydigan kanal orqali, masalan guvoh kanali yoki qabul qiluvchiga xabar orqali e'lon qiling. Telegramga kirish uchun `https://case.example.org` panel tokeni bilan, [hisob](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/)yo'riqnomadagi kabi. Panel harakatlari imzolangan jurnalga yozib olinadi; ular SSH sessiyalari emas. [Guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/) so'rov yuborishi mumkin `https://case-witness.example.org`. SSH yo'q: agar bootstrap muvaffaqiyatsiz bo'lsa, yig'uvchi hech qachon javob bermaydi. Serverni o'chirib tashlang va qayta joylashtiring, yoki sababini aniqlash uchun debug joylashtirishdan foydalaning. ### Foydalanuvchi ma'lumotlaridagi sirlar cloud-init ikkita sirni o'zida saqlaydi: panel tokeni va Cloudflare tunnel tokeni. Imzo kaliti ularning ichida yo'q; u serverda yaratiladi. Hetzner, DigitalOcean va Linode o'z API orqali foydalanuvchi ma'lumotlarini qaytarmaydi. Vultr esa instantsiyani o'qiy oladigan har qanday kalitga ma'lumotni qaytaradi, EC2 esa orqali `DescribeInstanceAttribute`. AWS uchun tasdiqlovchiga faqat jadvaldagi uchta harakatni bering, hech qachon `ec2:Describe*`. Vultr uchun verifikator kaliti ikkala tokenni ham o'qiy oladi deb hisoblang. Tunnel token kimgadir ikkinchi konnektorni ishga tushirishga imkon beradi: `verify` serverda bo'lmagan har qanday konnektorni aniqlaydi, va yig'uvchining bayonotlari shu tarzda soxtalashtirilmaydi, chunki har biri yangi chaqiriqni imzolaydi. `--quick-tunnel` ikkinchi sir o'rniga manzil kalitidir: uni o'qiydigan har kim paneldan qabul qilinadigan yolg'on manzilni joylashtira oladi. Yig'uvchining ommaviy bayonotida server manzili va kirish manbalari keltirilmaydi; ular ikkalasi ham imzolangan jurnal ichida saqlanadi. ## Xatoliklarni tuzatish, joylashtirish va qulflash `--debug-ssh-key KEY --debug-ssh-from 198.51.100.4` bitta manzil yoki kichik tarmoqdagi bitta kalit uchun SSHni saqlaydi, IPv4 uchun maksimal /24 yoki IPv6 uchun /48. `KEY` allaqachon provayderda ro'yxatdan o'tkazilgan: Hetzner loyihasidagi SSH kalitining nomi yoki IDi, DigitalOcean jamoasidagi SSH kalitining IDi yoki barmoq izi, profil SSH kalitlari root'ga qo'shilgan Linode foydalanuvchi nomi, Vultr hisobidagi SSH kalitining IDi yoki mintaqadagi EC2 kalit juftligining nomi. Ushbu variantlarga tegishli emas `generic`. Bunday joylashtirish `debug` va **hech qachon** yuqori ishonchlilik (high-assurance) darajasida hisoblanmaydi. Ishingiz tugagach, quyidagi buyruqni ijro eting `sudo tgwitness-lock` so'nggi SSH sessiyasining oxirgi buyrug'i sifatida, keyin: ``` python -m tgwitness.cloud lock --record deployments/case-2026-11/deployment.json --provider-token-file hetzner.token ``` Firewall barcha kiruvchi qoidalarni yo'qotadi. Hisobotlar keyin SSH qachon ruxsat etilgani va qachon yopilganini ko'rsatadi; o'sha oynacha ko'rinib turaveradi. ## Joylashtirishni olib tashlash `destroy` server va uning firewall'ini, deployment'ning label'i bo'yicha topilgan holda o'chiradi, shunda yarim yo'lda muvaffaqiyatsiz bo'lgan deployment ham olib tashlanadi, keyin uning tunneliga yo'naltiruvchi DNS yozuvlari va tunnelni o'chiradi. Serverning jurnal va imzolash kaliti ham birga o'chiriladi: avvalo dalillarni eksport qiling. Yozuv qoladi, belgilangan `removed`, olib tashlash bo'yicha API chaqiruvlari bilan. ``` python -m tgwitness.cloud destroy --record deployments/case-2026-11/deployment.json --confirm case-2026-11 \ --provider-token-file hetzner.token --cloudflare-token-file cloudflare.token ``` Hetzner uchun API orqali o'chirish amalga oshiriladi. Boshqa provayderlar uchun `destroy` hech narsani o'chirishdan oldin to'xtaydi va provayder konsolida o'chirish uchun yorliq nomini ko'rsatadi. Qo'lda o'rnatilgan server (`generic`) faqat tunnel va DNS yozuvlarini yo'qotadi. Tez tunnelni ishga tushirish uchun Cloudflare tokeni kerak emas: uning tunneli serverda tugaydi va uning postlari ntfy.sh saytida 12 soat ichida o'chadi. ## Istalgan server (o'zini tasdiqlagan) `--provider generic` qo'lda sotib olingan yoki o'rnatilgan server uchun mo'ljallangan. `deploy` tunel va DNSni yaratadi, yozadi `install.sh` (maxfiy) va `install.redacted.sh` (e'lon qilish uchun), va kutadi. Ko'chirish `install.sh` Uni yangi o'rnatilgan Ubuntu 24.04 serveriga nusxalab oling va u yerda ishga tushiring: ``` sudo bash install.sh ``` U hostni avvalgi holatda yozib oladi (kirishlar, hisoblar, `authorized_keys`, tinglovchi soketlar, xizmatlar, rejalashtirilgan ishlar, paketlar), commitni o'rnatadi, host firewallini yoqadi, o'zini o'chirib tashlaydi, SSHni yashiradi va sessiyani yakunlaydi. Bunday server uchun hisobot eng yaxshi holatda **O'Z-O'ZINI TASDIQLANGAN**: installyerni ishga tushirgan kishi oldinroq root huquqlariga ega bo'lgan va tasdiqlovchi uchun provayder yozuvi mavjud emas. Bu hanuzgacha tushuntirilmagan serverdan yaxshiroq: inventarizatsiya, installyer xesh va har bir keyingi kirish imzolangan. ## Tasdiqlang Verifikatorga kerak `deployment.json`, nashr etilgan o'rnatuvchi, faqat o'qish huquqli ma'lumotlar va, ideal holda, commit-ning nusxasi va dalilZIP: ``` git clone -c core.autocrlf=false https://github.com/phishdestroy/TgWitness.git checkout git -C checkout checkout 0123456789abcdef0123456789abcdef01234567 python -m tgwitness.cloud verify --record deployment.json \ --provider-token-file read-only.token --cloudflare-token-file cloudflare-read.token \ --fingerprint COLLECTOR_FINGERPRINT --cloud-init cloud-init.redacted.yaml \ --source checkout --evidence tgwitness-evidence.zip --report report.md ``` Har bir provayder va Cloudflare qiymati shu paytda tasdiqlovchi tomonidan so'raladi; yozuv faqat so'raladigan IDlarni taqdim etadi. Chiqish kodi **PASS** uchun 0, **FAIL** uchun 1 va **REVIEW**, **INCOMPLETE** yoki **SELF-ATTESTED** uchun 2 hisoblanadi. `--fingerprint` mustaqil kanal orqali kelishi kerak; aks holda kalit faqat operatorning yozuvi bilan solishtiriladi. `python verify.py` ZIP o'zi dalillarni hanuzgacha tasdiqlaydi, xuddi [Evidence](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) dagi kabi. Provayder harakatlari tasniflanadi: yaratish va yaratilganidan keyin 30 daqiqa ichida boshlanish muvaffaqiyatli; konsol, qutqarish, parolni tiklash, qayta qurish, ISO, tasvirlar, snapshotlar, zaxira nusxalari, Systems Manager, EC2 Instance Connect va firewall ochilishlari muvaffaqiyatsiz; quvvat harakatlari va kutilmagan har qanday harakat ko'rib chiqish uchun belgilangan. Noma'lum harakat hech qachon jim o'tkazilmaydi. ## Dalillarni topshirish bo'yicha hisobot `--report report.md` Markdown hisobotini yozadi va `report.json` uning yonida: 1. natija, yig'uvchi kalit barmoq izi, joylashtirish, ta'minlovchi, commit, server, firewall, tunnel; 2. har bir tekshiruv uning holati va manbai bilan (provayder API, Cloudflare API, yig'uvchi bayonoti, dalillar jurnali); 3. provayderning har bir harakat bo'yicha bahosi va, provayder uni qayd etgan joyda, ijrochi; 4. tunelning ulanishlari, konfiguratsiyasi va audit logini saqlovchi Cloudflare nuqtalari; 5. imzolangan kollektor bayonoti; 6. hisobot nimani tasdiqlaydi va nimani tasdiqlamaydi; 7. Uni qayta yaratish uchun buyruqlar va unga berilgan har bir faylning SHA-256i. Hisobotni topshiring, `report.json`, `deployment.json`, nashr etilgan o'rnatuvchi va dalillarniZIP. Hisobotni erta taqdim eting: provayder jurnallari cheklangan muddatgacha saqlanadi. ## Cloudflare tashqi guvoh sifatida Bu yerda hamma narsa ixtiyoriy. Cloudflare hisobisiz ham server ishlaydi, va bugun ulardan ikkitasi ishlaydi: | Nima | U nimani ko'rsatadi | TgWitnessda | | --- | --- | --- | | Tez tunnel yoki sizning domeningiz tunneli | paneldan faqat tunnel orqali erishiladi | server ustasi, yuqoriga qarang | | drand relay `drand.cloudflare.com` | drand raundidan keyingi yozuvlar undan yangiroq: jurnal yozilgani sayin yozilgan | dalil rejimi, **Qo'shimcha guvohlar**, hisob yo'q ([format](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#optional-records-in-evidence-mode-drand-and-telegram-devices)) | | Tunnel holati bo'yicha bildirishnomalar | tunel ishlamay qolganda, elektron pochta yoki Cloudflare webhook orqali | ularni Cloudflare boshqaruv panelida sozlang | | Gateway DNS (`--gateway-dns`, yoki ustadlikda **Cloudflare Gateway DNS**) | server so'rab topgan har bir nom, TLS orqali Cloudflare tomonidan javob berilgan; Hetzner firewall DNS-ni boshqa hech narsaga yo'naltirmaydi; Gateway siyosati javoblarni qayta yozishi mumkinmi | Hetzner, bepul Zero Trust rejasi, domensiz; `verify` fayervolni, joylashuvni, loglashni, siyosatlarni, server so'rovlarini va audit logini tekshiradi; dalil rejimi logni jurnalga nusxalaydi | | Serverdagi Cloudflare One mijoziga ega Gateway, faqat Cloudflare'ni ruxsat etadigan chiqish devori | Server amalga oshirgan har bir ulanish, faqat DNS emas | hanuz yaratilmagan | | Panel oldidagi kirish | kim paneldan qachon tizimga kirgan | qurilmagan: o'zingizning domeningiz kerak | | SSH buyruqlarini loglash | debug sessiyasidagi har bir buyruq | hanuz yaratilmagan | Logpush, u Cloudflare'ning o'z nusxasini R2'da saqlaydi, Enterprise xususiyati hisoblanadi: bepul rejada Cloudflare javob beradi `logpush is not enabled for this account`. U yerda Gateway logi 24 soat davom etadi, shuning uchun dalil rejimi uni imzolangan jurnalga nusxa ko'chiradi (**Cloudflare Gateway'ning ushbu serverning DNS so'rovlari logi**, Hisob Analitikasi O'qish huquqiga ega o'qish uchun mo'ljallangan token). Zero Trust rejasi bo'lmasa, hisobning bitta DNS manzili bo'ladi. Cloudflare boshqa manzilni rad etganda, server mavjud manzilni baham ko'radi va uning so'rovlari manzili bo'yicha ajratiladi; o'sha filtrga ham Zero Trust PII Read huquqi kerak, va `destroy` ulashilgan joyni tark etadi. Bitta log so'rovi ko'pi bilan uch soatni qamrab oladi, shuning uchun nusxa va `verify` kunni uch soatlik oynalarda o'qiydi. Gateway DNS tizim resolverini qamrab oladi. 443-port orqali HTTPS orqali boshqa resolverga yo'naltirilgan DNS so'rovlari va hech qayerda qidirilmagan manzillarga (masalan, Telegramning ma'lumot markazlariga) bo'lgan ulanishlar uning logida qayd etilmaydi. Cloudflare Telegramning shifrlash ichki qismiga, Telegram hisobidagi boshqa qurilmalarga (evidence mode'ning qurilmalar ro'yxati ularni Telegram tomonidan qayd etadi) yoki provayderning gipervizoriga kira olmaydi. ## Joylashtirish natijasini o'qish Oddiy VM uchun provayder host infratuzilmasini va mahalliy inventarizatsiyani nazorat qiladi hamda provayder yozuvlari bilan birga tekshiradi. Intel TDX uchun verifikator shuningdek apparat iqtibosi, yig'uvchi bog'lanishi, kompozitsiya va operatsion tizim o'lchovlarini ham tekshiradi. Qaysi tekshiruvlar o'tgani yoki mavjud emasligini ko'rish uchun yakka natijalarni o'qing. Tarixiy firewall tafsilotlari provayderga bog'liq; Linode qoidalar versiyalarini saqlab qoladi. [Validatsiya yozuvi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) sinovdan o'tkazilgan joylashtirishlarni va qolgan jonli tekshiruvlarni ro'yxatlaydi, hamda [tasdiqlash doirasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) ushbu muhit tekshiruvlarini arxiv olish va yaxlitlik bilan bog'laydi. --- # Telegram · Panel bo' yicha qo' llanma Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/ Panelning har bir ekrani: suhbatlar, jurnal, manbalar, eksportlar, Extras, himoya rejimlari va kod tekshiruvi. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Panelning har bir ekrani: suhbatlar, jurnal, manbalar, eksportlar, Extras, himoya rejimlari va kod tekshiruvi. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Boshlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/) ![Boshlash](https://phishdestroy.github.io/TgWitness/assets/chapter-start.svg) [Birinchi sozlash va parametrlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/settings/) · [Hisoblar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) · [Eksport va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) · [Holat hisobotlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/) Har bir ekran nima qilishini, imzolangan jurnalga nimalarni yozishini va batafsil qo'llanma qaerda ekanligini ko'rsatadi. Panel bir vaqtning o'zida bitta ish maydonini ko'rsatadi: o'z manbalari, jurnali va imzolash kalitiga ega bitta Telegram hisob. Yon panelning yuqori qismidagi selektor ish maydonlarini almashtiradi. Manzil ish maydonini o'zida saqlaydi (`?ws=…`); manzil ish maydonini o'zida saqlaydi ( manzil, selektor va yuklangan hisob bir-biriga to'g'ri kelmasa, harakatlar bloklanib qoladi. Jonli kuzatuv, to'liq tarix, yangi hisob/suhbat eksportlari va saqlangan yozuvlarni topshirish o'rtasida tanlash uchun [Eksport usullarini solishtirish](https://github.com/phishdestroy/TgWitness/blob/main/docs/COLLECTION-MODES.md)dan foydalaning. Eksportlar sahifasi yuklab olish boshqaruvlaridan yuqorida xuddi shu solishtirishni o'z ichiga oladi. **Ushbu sahifada** - [Yo'l toping](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#find-your-way) - [Mana bu yerdan boshlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#start-here) - [Suhbatlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#chats) - [Jurnal](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#journal) - [Manbalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#sources) - [Eksportlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#exports) - [Sozlamalar, hisoblar va ulanish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#settings-accounts-and-connection) - [Qo'shimchalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#extras) - [Himoya rejimlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#protection-modes) - [Qo'shimcha vositalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#more-tools) ## Yo'lingizni toping Kunlik bo'limlar yon panelning yuqori qismida, **Hisoblar** esa **Ish maydoni** ostida joylashgan, va boshqa barcha narsalar **Qo'shimcha vositalar va sozlamalar** ostida. Yuqori panelda joylashgan **Interfeys darajasi** kaliti nechta bo'lim ko'rinishini belgilaydi: | Daraja | Yon panel bo'limlari | | --- | --- | | Oddiy | Bosh sahifa, Suhbatlar, O'zgarishlar, Arxivlar va Sozlamalar | | Standart | Shuningdek Case Board, Hisoblar va Kirish | | Mutaxassis | Shuningdek Manbalar, Qo'shimchalar, Arxivga so'rov, Parametrlar, Hisob, Tizim logi va Integratsiyalar | Oddiy qo'ng'iroqlar: Mana bu yerdan boshlang, Jurnal va Eksportlar **bosh sahifasi**, **O'zgarishlar** va **Arxivlar**. Daraja faqat bo'limlarni yashiradi. Yashirin xususiyat ishlashda davom etadi va server har bir ruxsatni mustaqil ravishda tekshiradi. Daraja, til, mavzu va vaqt zonasiga operator va ish maydoni bo'yicha alohida saqlanadi; [sozlamalarni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/settings/) ko'ring. Yuqori panelda shuningdek quyidagilar mavjud: - **Bo'limga o'ting** (Ctrl+K yoki Mac'da ⌘K): suhbat, parametr yoki jurnal yozuvini toping `#number`. Yuk yo'nalish tugmalari harakatlanadi, Enter ochadi, Esc yopadi. - **Bildirishnomalar**: jurnal orqali aniqlangan muammolar va suhbat o'zgarishlari. **Hammasini o'qilgan deb belgilash** hisoblagichni tozalaydi va **Bildirishnoma qoidalari** oynasini ochadi. Telegram, Discord yoki elektron pochta orqali yetkazib berish [Qo'shimchalar → Bildirishnomalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#notifications) bo'limida sozlanadi. - Ushbu ish maydoni uchun ulanish indikatori. Yuqori panel ostidagi **Collector holati** uni Telegram ulanishi, voqealarni qabul qilish, manbalar va ilova navbatiga bo'ladi. - **Qulflash**: ushbu brauzerdagi panelni yopadi. Kollektsiya serverda ishlashni davom ettiradi. - Versiya raqami yonidagi himoya rejimi; [himoya rejimlariga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#protection-modes) qarang. Demo ish maydoni badiiy xabarlardan iborat bo'lib, hech qachon Telegramga ulanmaydi. Haqiqiy ish maydonini o'zgartiradigan harakatlar u yerda rad etiladi. ## Mana bu yerdan boshlang Vazifa tanlang. **Hisobimni eksport qilish** hozirda hisobingiz o'qiy oladigan ma'lumotlarni yuklaydi. **Tergovni kuzatish** siz tanlagan suhbatlardagi yangi xabarlar, kuzatilgan tahrirlar va o'chirish bildirishnomalarini qayd etadi. Sozlash kartasi uch bosqichni ko'rsatadi: hisobni ulash, manbalarni tanlash, kuzatuvni boshlash. Maqsad savoli siz uni javob berguningizcha yoki o'tkazib yuborganingizcha shu sahifada qoladi. Yangi ish maydoni o'rniga [birinchi sozlamani](https://phishdestroy.github.io/TgWitness/uz/docs/reference/settings/) ochadi. ## Suhbatlar Saqlangan suhbatlar, standart bo'yicha faqat o'qish uchun. - Ro'yxatni nom yoki ID bo'yicha qidiring. Kuzatilayotgan suhbatlarni qo'shish yoki olib tashlashni **tanlang**. **Telegram havolasini** ochish foydalanuvchi nomini yoki taklif havolasini oladi va jurnalga oldindan ko'rinishni saqlaydi. **Qo'shish/ochish va kuzatish** suhbatga qo'shiladi va uni manbalariga qo'shadi; botni ochish uni yuboradi `/start`. - Suhbat sarlavhasida xabarlar soni **o'chirildi, matn saqlandi**, **saqlashdan oldin o'chirildi** va **qayta tekshirishda topilmadi** hisoblanadi. Suhbat ro'yxati va bildirishnomalar ham shu ta'riflardan foydalanadi. O'chirilgan xabar qizil rangda bo'lib, saqlangan matnini saqlab qoladi; tahrirlangan xabar esa har bir saqlangan versiyasini saqlab qoladi. Har bir o'chirish nimani anglatishini ko'rsatadi: u qachon ko'rilgani, Telegram kim uni o'chirganini xabar qilmasligi yoki faqat bildirishnoma kelgani. - **Tarixni yuklash** oxirgi 100, 250 yoki 500 xabarni ushbu ko'rinishga va jurnalga olib keladi. Har bir yoqitilgan manbani yuklash uchun [Manbalar → To'liq tarixni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#sources) ishlating. - **Suhbatni eksport** qilish butun ko'rinadigan tarixni imzolangan `chat.json` va `chat.html`. Bir nechta bog'langan hisoblar ishni bo'lishishi mumkin: har biri o'zining xabar raqamlari diapazonini yuklab oladi va o'z qismini imzolaydi, eksportni boshlagan hisob esa arxivni imzolaydi. [Bir suhbatni eksport qilishni](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Chat-Export.md) ko'ring. - **People** ro'yxati ushbu suhbatda saqlangan xabarlari bo'lgan har bir kishini ko'rsatadi. People profillari odatda o'chirilgan, chunki ular uchinchi tomonlar haqidagi shaxsiy ma'lumotlardir. Suhbat uchun ular yoqilganda, profil ism va foydalanuvchi nomi tarixi, Telegram bayroqlari, avatar xeshlari, faollik, kim kimga javob berayotgani, boshqa kuzatilgan suhbatlar hamda tilga olingan hamyonlar, telefonlar, foydalanuvchi nomlari va havolalarni ko'rsatadi. Har bir fakt o'z yozuviga havola qiladi. **Profilni eksport qilish** imzolangan faylni saqlaydi, ixtiyoriy ravishda parol bilan himoyalanganZIP; profillarni o'chirish esa profil faylini o'chirib tashlaydi. [Odamlar profillarini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#people-profiles) ko'ring. - **Endi profilni saqlash** suhbat yoki bot profilining snapshotini yozib oladi: tavsif, a'zolar, taklif havolasi, bot buyruqlari. ### Faqat o'qish, yuborish va sirlar Xabarlar ustidagi ikkita kalit hisobni va o'quvchini himoya qiladi: - Suhbat ochilganda **faqat o'qish rejimi** yoqilgan bo'ladi. Xabar yuborish yoki bot tugmalarini bosish uchun uni o'chirib qo'ying. Har bir harakat **"@account sifatida yuborishmi?"** yoki **"@account sifatida ushbu bot tugmasini bosishmi?"** deb so'raydi, suhbat a'zolariga ko'rinishini va imzolangan jurnalga yozilishini bildiradi. **"10 daqiqa davomida yana so'ramaslik" opsiyasi suhbatda**keyingi so'rovni vaqtinchalik o'tkazib yuboradi. **Dalil**maqsadi uchun yuborish paneldagi va API-dagi yuborish funksiyasini o'chirib qo'yadi. - **Mask secrets** parol, kirish kodi, API kaliti yoki hash, bot tokeni, sessiya satri, xususiy kalit, JWT yoki to'lov kartasi raqamini (karta raqamlari Luhn yig'indisi bo'yicha tekshiriladi) yashiradi. **Show** bitta qiymatni ko'rsatadi; bu ko'rsatish jurnalda qayd etiladi. Ushbu brauzer uchun maskalashni o'chirish ham qayd etiladi. Faqat ko'rinish o'zgaradi: asl yozuvlar va har bir eksport to'liq matnni saqlab qoladi. ## Jurnal Ish maydoni imzolagan har bir yozuv, eng yangi yozuvdan boshlab. - **Ushbu ko'rinish** kuzatilgan xabarlar, qayd etilgan tahrirlar, o'chirish bildirishnomalari va tanlangan manbalar sonini ko'rsatadi. - **Voqealar kronologiyasi** voqea turiga (barchasi, tahrirlar, o'chirishlar, munosabatlar, a'zolik, qamrov), matn va manba bo'yicha filtrlaydi. **Oldingi voqealarni yuklash** sahifani orqaga qaytaradi. - Yozuvni oching va uning tafsilotlari, xesh va yuklamasini ko'ring. **Ushbu yozuvga havola** — bir xil yozuvni ochadigan manzildir. Imkoniyati bo'lgan sirlar ushbu ko'rinishda yashiriladi; eksportlar esa asl nusxani saqlaydi. - Jurnal faqat qo'shimcha kiritishga mo'ljallangan: panelda hech narsa yozuvni tahrirlamaydi yoki o'chirib tashlamaydi. Buni **Exports → Verify journal** or orqali tekshiring `python -m tgwitness.verify`; [eksport va tasdiqlashni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ko'ring. ## Manbalar Ushbu ish maydoni qaysi suhbatlarni yozib olishini va ulardan nimalarni saqlab qolishini. O'zgarishlar kelajakdagi faoliyatga tatbiq etiladi; saqlangan yozuvlar esa o'zgarmay qoladi. **Suhbatlar ro'yxatini yangilash** hisobning suhbatlari va papkalarini o'qiydi. U xabarlarni yuklab olmaydi. ### Doira - **Ushbu hisob nima yozib oladi** : **Tanlangan suhbatlar** (faqat siz qo'shgan suhbatlar), **Telegram papkasi** (hisob papkalaridan biri, keyinchalik qo'shilgan suhbatlar bilan birga) yoki **Butun hisob** (har bir suhbat, shuningdek paydo bo'lishi bilan har bir yangi guruh, shaxsiy suhbat yoki bot). **Tergov rejimi** maxsus hisob uchun mo'ljallangan: u hisob ko'radigan barcha narsalarni, o'z xabarlari va tugma bosishlarini yozib oladi va har bir yangi suhbatning profilini hamda avvalgi ko'rinadigan xabarlarini darhol saqlaydi. [maxsus hisob bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/docs/dedicated-account/) asosiy hisobingizni hech qachon ishlatmaslik sabablarini tushuntiradi. - **Manba turlari** papka va butun-akun rejimlarini faqat kanallar, guruhlar, shaxsiy suhbatlar va botlarga cheklaydi. **O'z harakatlari** akunning o'z xabarlari, tahrirlari va javob-klaviatura bosishlarini qo'shadi. - **Yangi chat yoki bot paydo bo'lganda**: uning profilini va tanlangan sonigacha bo'lgan eng so'nggi ko'rinadigan xabarlarini saqlang. Cheklovlar: e'lon qilingan bulutli yig'uvchi Sirli suhbatlarni qabul qilmaydi. Alohida [Pseudo-sirli interfeys va uning demos](https://phishdestroy.github.io/TgWitness/uz/docs/reference/secret-chats/)ida rivojlantirish holati hamda bartaraf etilmagan nuqsonlar hujjatlashtirilgan. TgWitness ishlamayotgan paytda hech narsa qayd etilmaydi; qayta ishga tushirilgandan so'ng u faqat Telegram hali ham qaytarayotgan ma'lumotlarni to'playdi va hisobotdagi bo'shliqni ko'rsatadi. Suhbatlar ro'yxati chegarasidan (Parametrlarda o'zgartirilmagan bo'lsa, 1,000 dialog) oshadigan suhbatlar keyingi faollashuvida qo'shiladi. Boshqa ilovada bosilgan inline bot tugmalari ko'rinmaydi; botning javobi qayd etiladi. ### Doiradagi suhbatlar Holat (**Yoqilgan**, **To'xtatilgan**, **Prioritetli**, **Istisno qilingan**, **Tasdiqlanmagan kirish**, **E'tiborsiz qoldirilgan**) va tur bo'yicha filtrlang, so'ng tanlov ustida harakat qiling: yoqish, to'xtatish, prioritet belgisini qo'yish yoki olib tashlash, doiradan istisno qilish yoki olib tashlash. Holat belgisi faqat holatni ko'rsatadi; harakatlar har bir qatorning menyusida, ularning nima qilishi haqidagi izoh bilan berilgan. To'xtatish va istisno qilish tasdiqni talab qiladi, ommaviy tarzda ham. Manbani olib tashlash uning nomini so'raydi va uning foydalanuvchi profillarini o'chirib tashlaydi; saqlangan yozuvlari jurnalda qoladi. Manba – hisobning suhbatlar ro'yxatida ko'rinmaydigan, yozuvlar kelishda davom etarkan **yangilanishlarni qabul qilish, suhbatlar ro'yxatida emas**, aks holda **kirish tasdiqlanmagan**. **Mavjud suhbatlar** **Tanlanganlarni qo‘shish** yoki **Barcha mos natijalarni qo‘shish** bilan suhbatlarni qo'shadi. ### To'liq tarix Har bir yoqitilgan manbaning mavjud tarixini Söhbatlar va jurnalga yuklaydi. Taraqqiyot qayta ishga tushirilganda saqlanadi; ilovalar media sozlamalaringizga muvofiq bo'ladi. [Manba tarixini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/history/) ko'ring. ### Yozib olish - **Saqlanadigan o'zgarishlarni tanlang**: yangi xabarlar, tahrirlar, o'chirish bildirishnomalari, ko'rinadigan munosabatlar, guruhga qo'shilishlar va tark etishlar. Oldindan belgilangan sozlama shaklni o'zgartiradi; **Yozuv sozlamalarini saqlash** uni qo'llaydi. Toifani qayta yoqish o'tkazib yuborilgan voqealarni tiklamaydi. - **Mavjud bo'lganda media saqlash**: har bir fayl uchun o'rnatilgan hajmgacha ilovalarni yuklab olish, turiga qarab 1 dan 2 000 MiB gacha sozlash va videolarni soniyalarda cheklash (0 — cheklov yo'q). Har bir yuklab olish urinishida yozib olingan natija beriladi. - **Qayta tekshirish**: ustuvor suhbatlar har bir necha daqiqada, boshqa suhbatlar esa kamroq tekshiriladi, shuning uchun hisob Telegramning FloodWait limitlaridan xoli bo'ladi. 0 guruhni o'chiradi. Ustuvor suhbatlarni ro'yxatda yulduzcha bilan belgilang; har bir o'tishdagi suhbatlar soni va suhbatlar orasidagi tanaffus Parametrlarda belgilangan. [To'plamni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) ko'ring. ## Eksportlar **Downloads** fayllarni tayyorlaydi; **Build report** hisobotlarning ko'rinishini tanlaydi. | Nima | Undan foydalaning | Qo'llanma | | --- | --- | --- | | Hisobni eksport qilish | Hisob hozirda nima o'qishi mumkinligining yangi snapshoti | [Hisobni eksport qilish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/account-export/) | | Ko'chirishni baham ko'rish | Tugallangan akkaunt eksportining minimallashtirilgan törämisi | [Ochiqlik](https://phishdestroy.github.io/TgWitness/uz/docs/reference/account-export/#prepare-a-disclosure-for-a-lawyer-or-another-recipient) | | Imzolangan ZIP | Jurnal, hisobot, ilovalar va tasdiqlash vositalari belgilangan jurnal chegarasida | [Eksport va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) | | HTML, PDF, JSON hisobot | Muhrlangan va o'qilishi mumkin bo'lgan hisobot | [Holat hisobotlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/) | | JSONL, CSV | Imzolar bilan birga bo'lgan asl yozuvlar; formula-xavfsiz elektron jadvali | [Eksport va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) | | Topshirish qismi | Faqat qabul qiluvchiga kerak bo'lgan suhbatlar, nuqta va odamlar | [Dalil](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#investigation-handoff) | | Suhbat eksporti | Imzolangan bitta suhbat `chat.json` va `chat.html` | [Bir suhbatni eksport qilish](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Chat-Export.md) | - **Yuqoridagi yuklamalarni parol bilan shifrlang** (12 belgidan oshgan) 7-Zip yoki WinRAR ochadigan AES-256 ZIP faylni saqlaydi. Ichidagi imzolangan fayl o'zgarmagan. Parol saqlanmaydi. - **Tayyorlangan eksportlar** 2 GiB ichida 20 tagacha faylni, shuningdek eng so'nggisini takroriy yuklab olish uchun har biri o'zining SHA-256i bilan saqlaydi. Faylni tayyorlash uning yetkazilganini isbotlamaydi. - Brauzer saqlash dialogini rad etganda, panel oddiy yuklab olishga qaytadi. - **Imzo qo'yuvchi identifikator** kalit barmoq izini ko'rsatadi. **Chekpointni saqlash** va **imzolangan ijro kvitansiyasini** yuklab olish sizga yig'uvchidan tashqarida saqlash uchun yozuvlar beradi. **Vaqt shtampini so'rov** tayyorlash hech qanday xizmatga murojaat qilmasdan RFC 3161 so'rovini yaratadi. ## Sozlamalar, hisoblar va ulanish - **Sozlamalar**: maqsad, ulanish, nima yozib olish va interfeys. [Birinchi o'rnatish va sozlamalarni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/settings/) ko'ring. - **Hisoblar**: har bir ish maydoni o'z holati, manbalari, voqealari va ilova navlari bilan. **E'tibor talab qiladi**, **yig'ilmoqda**, **oflayn yoki to'xtatilgan** yoki **ulanmagan** bo'yicha filtrlash; tanlovni pauzalash yoki davom ettirish; hisob fayllarini ommaviy import qilish va guruhlarni boshqarish. [Hisoblarni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) ko'rish. - **Hisob**: hisobga kirish va ushbu hisob uchun ulanish yo'li. To'g'ridan-to'g'ri, WireGuard profili, o'zingizning proksi, ommaviy MTProto havzasi yoki WARP; yo'lni tayyorlang va tekshiring, so'ng uni ushbu hisobga, guruhga yoki barcha hisoblarga qo'llang. [Ulanish va proksilar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/) [bo'limlariga](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Proxies.md) qarang. ## Qo'shimchalar Ixtiyoriy: yig'ishni boshlash uchun faqat hisob va manbalar yetarli. Faqat siz tanlagan variant sozlamalarini ochadi va hech narsa avtomatik ulanmaydi. Yuqoridagi **Himoya darajasi** kartasi [himoya rej](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#protection-modes)imini ko'rsatadi. | Karta | Qo'shgan yangiliklari | Qo'llanma | | --- | --- | --- | | Saqlash va disk joyi | Zaxira nusxalari, eski fayllarni bulutga ko'chirish, o'chirilmaydigan dalil nusxasi | [Saqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/) | | Maqsad va himoya darajasi | Maqsadingiz va ikki shkalaga mo'ljallangan tavsiya etilgan sozlamalar | [quyida](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#goal-and-protection-level) | | Bildirishnomalar | Muammolar, o'zgartirilgan xabarlar va kunlik xulosa; o'zingizning boshqaruv botingiz | [quyida](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#notifications) | | Dalillar va zaxira nusxalar | Vaqt tamg'alari, qo'shimcha guvohlar va shifrlangan tashqi nusxa | [quyida](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#evidence-and-backups) | | Server 24/7 | SSHsiz bulutli server, paneldan yaratilgan va o'chirilgan | [Yuqori ishonchlilik](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#from-the-panel) | | Mustaqil guvoh | Imzolangan cheklarni Telegram kanaliga yoki Discordga joylashtirish | [Guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/) | | Kod tekshiruvi | Joriy dasturni ommaviy GitHub commit bilan solishtiradi | [quyida](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#code-check) | ### Maqsad va himoya darajasi To'rtta savol: 1. **Bu nima uchun kerak?** Shaxsiy yozuv, tergov yoki ish uchun dalil sifatida. 2. **Qancha kuzatasiz?** Bir nechta suhbat (taxminan 50 tagacha), ko'p suhbat (taxminan 500 tagacha) yoki butun akkauntlar. Bu suhbatlar ro'yxati chegarasini 1 000, 3 000 yoki 20 000 ga o'rnatadi. 3. **Foto va fayllar?** Faqat matn, fotosuratlar va qisqa media (foto 20 MB, video 100 MB), yoki hammasi (har biri 1 GB gacha bo'lgan video va hujjatlar). Hammasi to'liq hisoblar bilan ham diskda 4 GiB bo'sh joyni saqlaydi. 4. **U qayerda ishlaydi?** Ushbu kompyuterda yoki doimo yoqilgan serverda. Taklif mustaqil vaqt tamg'alari, drand va Telegram qurilmalar ro'yxatini, har biri nimani qo'shishi haqidagi satr bilan sanab o'tadi. Vaqt tamg'alari shaxsiy yozuv, tergov yoki dalil uchun har 60, 30 yoki 10 daqiqada boshlanadi; drand va qurilmalar ro'yxati vaqt tamg'alarini talab qiladi. Faqat shu o'zgarishlar, ilova siyosati va yuqoridagi ikki parametrni **qo'llang**. Har bir o'zgarish jurnal yozuvi bo'lib, shuningdek `setup.applied`. Bildirishnomalar, tashqi nusxa, server, Gateway DNS, kod tekshiruvi va guvoh keyingi qadamlar sifatida o'z shakllari bilan taklif etiladi. Ikki o'lchov belgilangan sozlamalardan, maqsaddan emas, hisoblanadi: | Miqyos | Ballar | | --- | --- | | Ishonchlilik | Imzolangan jurnal 1, vaqt tamg'alari 3, drand 1, qurilmalar ro'yxati 1, mos keladigan kod tekshiruvi 1, guvoh so'rovi 1, tasdiqlangan server 2, Gateway DNS logi 1 | | Ishonchlilik | Doimiy ishlaydigan server 3, tashqi nusxa 3, Object Lock 1, muammo bildirishnomalari 1 | 80% yoki undan yuqori o'qishlar **maksimal**, 50% **yuqori**, 25% **o'rtacha**, undan pastroq esa **oddiy hisoblanadi**. Ishonchlilik hozirda 4-savolga berilgan javobdan kelib chiqqan holda, har qanday server tekshirilishidan oldin doimiy ishlayotgan serverni hisobga oladi. ### Bildirishnomalar Bildirishnomalar Apprise orqali Telegram, Discord, Slack, ntfy, elektron pochta, Matrix va 100+ boshqa xizmatlarga yuboriladi. Xizmatni tanlang, bir yoki ikki maydonni to'ldiring va test yuboring yoki Apprise manzillarini to'g'ridan-to'g'ri joylashtiring. - **Muammolar**: disk deyarli to'la, hisob chiqib ketgan, to'plash, nusxa olish yoki vaqt tamg'asi xatolari. Muhrlangan serverda ochilgan SSH porti yoki kirish ham muammo tug'diradi. - **O'zgarishlar**: kuzatilgan suhbatlardagi o'chirilgan, tahrirlangan va yo'qolgan xabarlar har bir tekshiruv bo'yicha bitta bildirishnoma (Parametrlarda o'zgartirilmaguncha har daqiqa) shaklida guruhlandi. - **Bajarilgan vazifalar**: tarix, eksportlar va saqlash nusxalari. - Tanlangan soatda, server vaqtiga ko'ra **kunlik xulosa**. Bildirishnomalar suhbat nomlari va sonini ko'rsatadi. Xabar parchalarini ko'rsatish standart bo'yicha o'chirilgan; ular yoqilganda xabar matni ushbu qurilmadan chiqariladi. **Sizning operator botingiz** @BotFather'dan olingan o'zingizning boti bo'lib, javob beradi `/status` va `/stats`, va ixtiyoriy ravishda `/pause`, `/resume` va `/copy`Faqat ro'yxatda ko'rsatilgan chat va Telegram foydalanuvchi IDlari undan foydalanishi mumkin; suhbat matni ish maydonida qoladi. Agar boshqa ilova allaqachon uning buyruqlarini olayotgan bo'lsa, alohida botdan foydalaning. [Bildirishnomalar](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Notifications.md) va [operator bot bo'limlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/#operator-bot-and-completion-notices)iga qarang. ### Dalillar va zaxira nusxalar - **Mustaqil vaqt tamg'alari** har bir imzolangan tekshiruv nuqtasining faqat RFC 3161 vakolatli organlari va OpenTimestamps taqvimlariga SHA-256ini har 5 dan 1 440 daqiqagacha yuboradi. **Anchor hozir** bir o'tishni bajaradi. [Vaqt tamg'alariga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/timestamp/) qarang. - **Qo'shimcha guvohlar**, tanlanmaguncha har biri o'chirilgan: eng yangi drand round, IP manzillarsiz Telegramga kirgan qurilmalar ro'yxati va Cloudflare Gateway'ning server DNS so'rovlari logi. [Ixtiyoriy yozuvlarga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#optional-records-in-evidence-mode-drand-and-telegram-devices) qarang. - **Shifrlangan zaxira** jurnal, fayllar, tekshiruv nuqtalari va suhbat eksportlarini S3-ga mos saqlashga nusxalaydi (Wasabi, Amazon S3, Backblaze B2, Cloudflare R2, MinIO). Avvalo, ushbu mashinadagi barcha ma'lumotlar shifrlanadi. **Shifrlash kalitini yuklab oling** va uni alohida joyda saqlang: u bo'lmasa nusxa o'qilmaydi. Governance yoki Compliance rejimidagi Object Lock obyektlarning belgilangan kunlar davomida o'chirilishini oldini oladi. [Off-site nusxa ko'chirishni](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Off-site-Copy.md) ko'ring. ### Kod tekshiruvi O'rnatilgan dastur nashr etilgan versiyaga mos kelishini tekshiradi. 1. GitHub omborini (rasmiysi allaqachon kiritilgan) va teg, filial yoki commitni kiriting. 2. **Check now** hozirgi ish maydonchasining tashqi so'rovlar yo'li orqali GitHub API'iga murojaat qilib, o'sha commitning fayllar ro'yxatini so'raydi. U har bir o'lchangan dastur faylining git blob ID'sini commit bilan solishtiradi. Satri tugash belgilarini konvertatsiya qilgan Windows checkout ham mos keladi. 3. Natija o'zgargan, ortiqcha va yetishmayotgan fayllarni (har biridan 50 tagacha) ro'yxatlaydi va saqlanadi `source.checked` jurnal yozuvi. Natija faqat dastur faoliyat ko'rsatayotgan paytda joriy hisoblanadi: yangilanishdan keyin yana tekshiring. Token talab qilinmaydi va faqat ommaviy omborlar ishlaydi; suhbatlar va parollar yuklanmaydi. Moslik diskdagi kodni aniqlaydi. Bu apparat attestatsiyasi emas; buning uchun [Phala Cloud](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#confidential-vm-on-phala-cloud-intel-tdx)-ga qarang. ## Himoya rejimlari Versiya raqami yonidagi kalit tanlangan rejimni va 18 ta himoya qatlamidan nechtasi faol ekanligini ko'rsatadi, masalan `🟠 Witnessed 9/18`. **Rejimni o'zgartirish** uchun **Qo'shimchalar → Himoya darajasi** bo'limini oching. Rejim maqsadni ta'riflaydi va nima yetishmayotganini ro'yxatlaydi; yozib olish, imzolash va saqlangan sozlamalar har bir rejimda bir xil bo'ladi. | Rejim | Uchun | Qo'shadi | | --- | --- | --- | | 🟢 Oson | Suhbatni kuzatish va nusxasini saqlash | Suhbatlar, jurnal va suhbat eksportlari; imzolash fon rejimida ishlaydi | | 🟡 Imzolangan | Platforma, host yoki suiiste'mol bo'limi hisobotiga | Imzolangan arxiv, jurnal tekshiruvi, tekshiruv nuqtalari, topshirish qaydnomasi | | 🟠 Guvohlik berildi | Yozuv o'zgartirilganligini da'vo qilishi mumkin bo'lgan holatlar | Mustaqil guvoh imzolangan jurnal sarlavhalarini joylaydi | | 🔴 Sudga tayyor | Advokat, politsiya yoki sud uchun dalil | Vaqt tamg'alari, shifrlangan tashqi nusxa, hisobotlardagi ish tafsilotlari | | 🟣 GitHub tomonidan tasdiqlangan | Har kim dasturiy ta'minotni tekshira olishi kerak bo'lgan yozuvlar | Kod tekshiruvi va GitHub Actions yozib olish | | ⚫ Mossad | Moliyaviy jihatdan mustahkam raqibga qarshi yuqori garovli ishlar | 24/7 muhrlangan server, yashirin IP manzil, barcha 18 qatlam | Qatlamlar: har bir yozuv imzolangan va zanjirlangan; imzolangan ijro kvitasi; ilovalar SHA-256 bilan saqlangan; imzolangan tekshiruv nuqtalari; qayta tekshiruvlar; muammo bildirishnomalari; faqat o'qish huquqli guvoh kirish; jadval bo'yicha guvoh tekshiruvi; RFC 3161 vaqt tamg'alari; OpenTimestamps isbotlari; tasdiqlangan eng so'nggi vaqt tamg'asi; shifrlangan tashqi nusxa; ish tafsilotlari hisobotlarda; mos kod tekshiruvi; Telegram hech qachon ushbu mashina IP-manzilini ko'rmaydi; tashqi so'rovlar proksi orqali amalga oshiriladi; nusxaga Object Lock qo'llanadi; provayder yozuvlari bilan muhrlangan server. O'chirilgan qatlam – **Set up** bo'lib, u o'z formasini ochadi. Pastki rejimni tanlash tasdiqni so'raydi va hech narsani o'chirib tashlamaydi. ## Boshqa vositalar **Extras → Independent capture**: connect a separate browser or AyuGram recorder, pin its signing key, select capture options, start/pause, take snapshots and download verified signed archives. Each recorder has its own manual login, route, journal and key. Both connections start disabled. See the English [Independent capture guide](https://github.com/phishdestroy/TgWitness/blob/main/docs/OPTIONAL-CAPTURE.md). - **Arxivdan so'rang**: saqlangan kuzatuvlarni qidiring, manbalarni ko'rib chiqing, so'ng ularni sun'iy intellekt modeliga yuborishga qaror qiling. [Arxiv tahlili](https://phishdestroy.github.io/TgWitness/uz/docs/reference/analysis/) va mahalliy[OCR hamda transkripsiyani](https://phishdestroy.github.io/TgWitness/uz/docs/reference/media-analysis/) ko'ring. - **Parametrlar**: yig'ish limitlari va tezligi, qayta tekshirishlar, yuklab olishlar, profillar, bildirishnomalar va eksportlar. Nom bo'yicha qidirish, **faqat o'zgargan** qiymatlarni ko'rsatish va tayyor qiymatlarni loyiha sifatida tayyorlash **"Tayyor qiymatlarni tiklash…"** yordamida. **Parametrlarni saqlash** qiymatlarni keyingi foydalanishdan boshlab qo'llaydi, va har bir o'zgartirish jurnal yozuvidir. - **Kirish**: ko'rib chiquvchilar, tahlilchilar va operatorlar uchun alohida tokenlar, tanlangan ish maydonchalari, suhbatlar va huquqlar bilan cheklangan. [Kirishni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) ko'ring. - **Tizim logi** : bu jarayon boshlanganidan beri nima qilgani (ulanishlar, proksi o'zgarishlari, kirishlar, rad etishlar, sozlamalar o'zgarishlari) IP-manzillari yashirilgan holda. **Yangi satrlarni kuzatish** eng yangi satrni ko'rinishda saqlaydi. Xabarlar faqat jurnalda qoladi. - **Integratsiyalar**: AI provayderi, [faqat o'qish uchun mo'ljallangan MCP](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/) ulanishlari va [imzolangan webhooklar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/webhooks/). - **Case Board**: dalillarning yonida joylashgan jamoaviy shaxsiy eslatmalar, belgilangan sahifalar va bo'laklar. Qarang [Case Board](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/). - **GitHub Actions capture** eksportlarda: forkingizdan olingan bitta suhbat. Qarang [muhrlangan ushlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md). --- # Telegram · Yig'ish qanday ishlaydi Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/ Kuzatuv doirasi, jonli yangilanishlar, qayta tekshiruvlar, ilovalar, o'z harakatlari va bo'shliq nima anglatishi, har bir yozuv bo'yicha. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Kuzatuv doirasi, jonli yangilanishlar, qayta tekshiruvlar, ilovalar, o'z harakatlari va bo'shliq nima anglatishi, har bir yozuv bo'yicha. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Yig'ma](https://github.com/phishdestroy/TgWitness/blob/main/docs/COLLECTION-MODES.md) ![Yig'ma](https://phishdestroy.github.io/TgWitness/assets/chapter-collect.svg) TgWitness ulanib turgan Telegram hisobining kuzatganlarini qayd etadi. Jurnal ushbu kuzatuvlarni, ularning ketma-ketligini va ularga biriktirilgan kontekstni saqlab qoladi. U yo'qolgan xabardan yoki hisob ulanib turganligidan ko'rinmaydigan harakatlarni taxmin qilmaydi. **Ushbu sahifada** - [Kirishdan jurnalga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#from-login-to-a-journal) - [Kuzatuv doirasi: tanlangan suhbatlar, papka yoki butun hisob](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#observation-scope-chosen-chats-a-folder-or-the-whole-account) - [Doira va voqealarni tanlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#scope-and-event-selection) - [O'z harakatlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#own-actions) - [Tergov rejimi: jamoalarga qo'shilish va botlar bilan muloqot qilish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#investigation-mode-joining-teams-and-talking-to-bots) - [Qayta tekshirish bosqichlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#recheck-tiers) - [Xabarlar tarixi va mansubligi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#message-history-and-attribution) - [Tarix snopshotlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#history-snapshots) - [Ilovalar bilan ishlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#attachment-handling) - [Tanaffus, qulflash, ulanishni uzish va qayta ishga tushirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#pause-lock-disconnect-and-restart) - [Hisob yolg'izligi va tasdiqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#account-isolation-and-verification) ## Kirishdan jurnalga O'z-o'zini yo'q qiladigan fotosuratlar va fayllar uchun [Self-destructing media](https://github.com/phishdestroy/TgWitness/blob/main/docs/EPHEMERAL-MEDIA.md) bo'limiga qarang. U prioritetli ishchi, saqlangan va mavjud bo'lmagan natijalar hamda API yig'gichidagi o'qilganligi haqidagi kvitansiyani bloklash cheklovlarini tushuntiradi. Oqim sxemasi · Foydalanuvchi hisobini ruxsat berish → Kirish mumkin bo'lgan guruhlar va kanallarni tanlang; Kirish mumkin bo'lgan guruhlar va kanallarni tanlang → Voqea va ilova sozlamalarini saqlash; Voqea va ilova sozlamalarini saqlash → Kuzatuvni boshlang; Kuzatuvni boshlang → Faol mijozdan yangilanishlarni oling; Faol mijozdan yangilanishlarni oling → Manba va voqea siyosatini qo'llash; Manba va voqea siyosatini qo'llash → Imzolangan kuzatuvni ilova qiling; Imzolangan kuzatuvni ilova qiling → Jurnalni ko'rib chiqing yoki eksport qiling; Imzolangan kuzatuvni ilova qiling → Navbatga qo'yilgan har qanday ilovani qayta ishlang; Navbatga qo'yilgan har qanday ilovani qayta ishlang → Yuklab olish natijasini ilova qiling · Foydalanuvchi hisobiniruxsat berish · Kirish mumkin bo'lganguruhlar va kanallarnitanlang · Voqea va ilovasozlamalarini saqlash · Kuzatuvni boshlang · Faol mijozdanyangilanishlarni oling · Manba va voqeasiyosatini qo'llash · Imzolangan kuzatuvniilova qiling · Jurnalni ko'ribchiqing yoki eksportqiling · Navbatga qo'yilgan harqanday ilovani qaytaishlang · Yuklab olishnatijasini ilovaqiling **Diagramma matn sifatida** 1. Foydalanuvchi hisobini ruxsat berish → Kirish mumkin bo'lgan guruhlar va kanallarni tanlang 2. Kirish mumkin bo'lgan guruhlar va kanallarni tanlang → Voqea va ilova sozlamalarini saqlash 3. Voqea va ilova sozlamalarini saqlash → Kuzatuvni boshlang 4. Kuzatuvni boshlang → Faol mijozdan yangilanishlarni oling 5. Faol mijozdan yangilanishlarni oling → Manba va voqea siyosatini qo'llash 6. Manba va voqea siyosatini qo'llash → Imzolangan kuzatuvni ilova qiling 7. Imzolangan kuzatuvni ilova qiling → Jurnalni ko'rib chiqing yoki eksport qiling 8. Imzolangan kuzatuvni ilova qiling → Navbatga qo'yilgan har qanday ilovani qayta ishlang 9. Navbatga qo'yilgan har qanday ilovani qayta ishlang → Yuklab olish natijasini ilova qiling Avtorizatsiya, manbaga kirish, doimiy yig'uvchi va to'liq yetkazib berish – bular turli masalalardir. Muvaffaqiyatli tizimga kirish har bir guruhga kirish huquqini bermaydi. Ulanib turgan transport har bir tegishli yangilanishning yetib kelganini kafolatlamaydi. ## Kuzatuv doirasi: tanlangan suhbatlar, papka yoki butun hisob Manbalar → **Kuzatuv doirasi** ish maydonchasi qaysi suhbatlarni yozib olishini belgilaydi. | Rejim | Yozib oladi | Yangi suhbatlar | | --- | --- | --- | | Tanlangan suhbatlar (bo'sh) | Faqat qo'lda qo'shgan suhbatlaringiz | Avtomatik qo'shilmagan | | Telegram papkasi | Hisobning bir papkasi ichidagi suhbatlar: nomiga ko'ra kiritilgan suhbatlar, papka kategoriyalari (kontaktlar, kontakt bo'lmaganlar, guruhlar, kanallar, botlar), chiqarib tashlangan suhbatlar va, agar papkada shunday belgilangan bo'lsa, arxivlangan suhbatlar | Mos keladigan suhbatlar ular faol bo'lishi bilan darhol qo'shiladi; Telegram'da papkaga qo'shgan suhbatlaringiz esa bir soat ichida qabul qilinadi | | Butun hisob | Hisob ko'radigan har bir suhbat | Har bir yangi chat, guruh, shaxsiy chat yoki bot uning birinchi yangilanishi kelishi bilan qo'shiladi | - **Manba turlari** (kanallar, guruhlar, shaxsiy suhbatlar, botlar) papkani va butun hisob rejimlarini cheklaydi. Tanlangan suhbatlar istalgan turda bo'lishi mumkin, jumladan shaxsiy suhbatlar va botlar. - **Chiqarib tashlangan suhbatlar** hech qachon yozib olinmaydi, hech qanday rejimda. Papka va butun hisob rejimlarida manbada *Chiqarib tashlash* yoki *O'chirish* amalga oshirilganda u ushbu ro'yxatga kiritiladi, shuning uchun doira uni qayta qo'shmaydi. Suhbatni manbalarda yoki Suhbatlar bo'limidan qo'lda qayta tanlash uni ro'yxatdan chiqaradi. Ro'yxat 5 000 tagacha suhbatni saqlay oladi; undan ortiq bo'lsa, *O'chirish* rad etiladi va uning o'rniga suhbatni to'xtatib turish mumkin. - **O'z harakatlari** (tavsiya etilgan holda yoqilgan): ushbu hisob yuboradigan xabarlar, ularning tahrirlari va javob klaviaturasi tugmalarini bosishlar. O'chirilganda, chiquvchi xabarlar va tahrirlar e'tiborsiz qoldiriladi. - Papkaga yoki butun akkauntga o'tish tasdiqni so'raydi: bu rejimlar uchinchi tomonlarning shaxsiy suhbatlari va xabarlarini yozib oladi va faqat maxsus akkauntda bo'lishi kerak. Tasdiq va har bir doira o'zgarishi imzolangan `scope.changed` yozuvlari bilan qayd etiladi. - Dastur doirasiga qo'shilgan suhbatlar manba sifatida *"auto"* deb belgilangan holda paydo bo'ladi va ular `scope.applied` (boshlanishda va har soat boshida) yoki `source.discovered` (kuzatish paytida yangi suhbat) bilan yozib olinadi. Tanlangan suhbatlarga qaytish esa har bir avtomatik qo'shilgan manbani to'xtatadi. Ushbu rejimlar qila olmaydigan narsalar: - **Maxfiy suhbatlar** bu bulutli yig'ish rejimlaridan tashqarida. Alohida [Maxfiy Suhbat amalga oshirilishi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/secret-chats/) ishlab chiqilmoqda; u hujjatlashtirilgan o'sha reviziyadagi e'lon qilingan yig'uvchiga kiritilmagan. - **TgWitness ishlamayotgan paytda hech narsa qayd etilmaydi.** Qayta ishga tushirilgandan so'ng u Telegramdan o'tkazib yuborilgan yangilanishlarni so'raydi va suhbatlarni qayta tekshiradi, lekin Telegram uzoq uzilishlardan keyin hamma narsani qaytarib bermaydi. Hisobotlar va `verify.py` bunday davrlarni bo'shliqlar sifatida ko'rsatadi ([qamrovga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#coverage-continuity-gaps-and-unobserved-ids) qarang). - Boshlanishda faqat birinchi 1 000 dialog ro'yxatga olinadi (chegara **Parametrlarda** belgilangan); eski suhbatlar keyingi faollashuvida qo'shiladi. Qo'shilgan suhbatning avvalgi tarixi olinmaydi — kerak bo'lganda tarixni snapshot qilib oling yoki butun suhbatni eksport qiling. - Doimiy ravishda o'zgarib turadigan papka holatlari (jim, o'qilgan) qo'llanilmaydi: bunday suhbatlar kuzatuvda qoladi. - **Inline (callback) bot tugmalari** boshqa ilovada bosilganda ikkinchi sessiyada ko'rinmaydi; botning javobi yoki tahriri qayd etiladi. Reply-klaviatura bosishlari chiqish xabarlari sifatida keladi va ularga`button_press` yorlig'i beriladi. - Ko'proq suhbatlar ko'proq so'rovlarni anglatadi. Telegram o'zining ortiqcha deb hisoblaydigan hajmdagi hisoblarni cheklaydi, bu esa maxsus hisoblardan foydalanish uchun yana bir sababdir. ## Doira va voqealarni tanlash Har bir ish maydoni o'z manbalariga ega. TgWitness guruhlarga qo'shilmaydi, takliflarni qabul qilmaydi yoki har bir a'zoni avtomatik ravishda sanab chiqmaydi. Manbalar hisobga allaqachon kirish imkoniga ega bo'lishi kerak. Dastur ishga tushirilganda, yig'uvchi tanlangan manbalarni hisobning ko'rinadigan dialoglari bilan solishtiradi; **Parametrlar → Suhbatlar** bo'limida **hisob ro'yxatidan o'qish bo'yicha** boshqa sozlama ko'rsatilmagan bo'lsa, dastlabki 1000 ta dialog tekshiriladi. Mavjud bo'lmagan manba **"kirish tasdiqlanmagan**" deb belgilanadi, uni sizni o'chirib tashlagan deb hisoblanmaydi. | Sozlamalar | Yig'adi | O'chirib qo'yilganda ta'siri | | --- | --- | --- | | Yangi xabarlar | Oddiy yetkazilgan xabarlar | Keyingi tahrirlar/o'chirishlar solishtirish uchun avvalgi yozib olingan matn bo'lmasligi mumkin. | | Tahrirlar | Tahrirlangan xabar versiyalari yetkazildi | Oraliq o'zgarishlar keyinchalik tiklanmaydi. | | O'chirishlar | Doiraga kiritilgan o'chirish bildirishnomalari va doiraga kiritilmagan hisob darajasidagi bildirishnomalar | O'chirish bildirishnomalari jurnalga kiritilmaydi. | | Reaksiyalar | Yetkazilgan reaksiya snopshotlari | Alohida reaktsiya yangilanishlari qo'shilmaydi. | | A'zolik | A'zolik xizmatlari va ishtirokchilarga oid yangilanishlar xabarlarini yetkazish | Ushbu a'zolik kuzatuvlari qo'shilmagan. | Sozlamalar ish maydonidagi barcha tanlangan manbalarga qo'llaniladi. O'zgartirishlarni qo'llash uchun shaklni saqlang; o'zgartirishlar imzolangan oldingi/keyingi qiymatlar bilan qayd etiladi. Toifani o'chirish oldingi yozuvlarni olib tashlamaydi. Uni qayta yoqish esa o'tkazib yuborilgan yangilanishlarni to'ldirmaydi. Operatsion yozuvlar va boshqa guruh xizmat voqealari ushbu kalitlardan alohida bo'lib qoladi. A'zolik xizmati xabarlari a'zolik yoqilganda, hatto oddiy yangi xabarni qabul qilish o'chirilgan bo'lsa ham, xabar yozuvlarini yaratishi mumkin. Qabul qilingan Telegram obyektlari ichiga o'rnatilgan metama'lumotlarni saqlab qoladi; kalit tahrirlash qoidasi emas. **Shaxsiy suhbatlardagi va oddiy guruhlardagi o'chirishlar** suhbatsiz xabar IDlari sifatida keladi. Ushbu suhbatlar bitta hisob bo'ylab yagona xabar ID ketma-ketligini baham ko'radi, shuning uchun agar shu IDga ega xabar ilgari saqlangan bo'lsa, uning suhbati ma'lum bo'ladi: o'chirish o'sha suhbatda qayd etiladi va buning qanday amalga oshirilganini `chat_resolution` izohlaydi. IDlari hech qachon saqlanmagan **o'chirishlar** aniq noma'lum manba bilan **chegaralanmagan holda** qoladi; to'plovchi taxmin qilmaydi. Telegram hech qachon kim xabarni o'chirganini aytmaydi; agar o'chirilgan xabar ushbu hisob tomonidan yuborilgan bo'lsa, yozuvda shunday qayd etiladi (`deleted_message_was_outgoing`), o'chiruvchini nomma-nom ko'rsatmasdan. ## O'z harakatlari Kuzatilayotgan akkaunt tomonidan yuborilgan xabarlarda `outgoing` tegisi qo'yiladi. Chiqayotgan xabar tahrirlanganda, shaxsiy suhbatlar va guruhlarda uni faqat muallifi tahrirlashi mumkinligi, kanaldagi postlarni esa boshqa administratorlar ham tahrirlashi mumkinligi qayd etiladi. Chiqayotgan xabar o'sha suhbatdagi eng yangi saqlangan javob klaviaturasi tugmasining matnini takrorlaganda, u klaviatura yozuviga havola bilan`button_press` belgisini o'zida aks ettiradi. O'z harakatlarini istisno qilish fon tekshiruvlari va avtomatik yangi suhbat tarixiga ham tegishli. O'tkazib yuborilgan chiquvchi xabarlar qayta tekshirish pozitsiyasini oldinga siljitadi, shunda ular keyinchalik keladigan kiruvchi xabarlarni to'sib qo'ya olmaydi. Aniq panel harakatlari va qo'lda so'ralgan tarix snapshotlari yozib qo'yilgan holda qoladi. ## Tergov rejimi: jamoalarga qo'shilish va botlar bilan muloqot qilish **Manbalar → Kuzatuv doirasi → Tergov rejimi** doirani jamoa suhbatlariga qo'shiladigan, botlarni ishga tushiradigan va ularga xabar yozadigan maxsus hisob uchun tayyorlaydi: butun hisob, har bir manba turi, o'z harakatlari va paydo bo'ladigan har bir suhbat yoki bot uchun uning profili hamda so'nggi 200 ta ko'rinadigan xabari. Formani ko'rib chiqing va "**Domenni saqlash" tugmasini** bosing; butun hisobga o'tish odatdagi tasdiqni so'raydi. - **Tugmalar.** Xabar ostidagi tugmalar xabar bilan birga saqlanadi va **Söhbatlarda** ko'rsatiladi: havolalar, veb-ilovalar, kirish havolalari, nusxalanadigan matnlar, qaytish ma'lumotlari, ichki so'rovlar, telefon raqami yoki joylashuvni so'rash. Havolalar matn ko'rinishida ko'rsatiladi va panel tomonidan hech qachon ochilmaydi. Bot faqat tugmalarni (masalan, yangi to'lov havolasini) o'zgartirsa, bu jonli yangilanishlar va qayta tekshiruvlar bo'yicha xabar versiyasining yangi versiyasi hisoblanadi. - **Yangi suhbatlar va botlar.** Papka va butun hisob rejimlarida, **yangi suhbat yoki bot paydo bo'lganda**, paydo bo'lishi bilanoq saqlanadi: - `source.profile` yozuvi sifatidagi profili: bot tavsifi va buyruqlari, foydalanuvchi, guruh yoki kanal haqidagi matn a'zolari, Telegram qaytaradigan bog'langan chat va taklif havolasi; - uning so'nggi ko'rinadigan xabarlari (1 000 tagacha) tarix snapsoti sifatida `new_chat` belgisi bilan: yaqinda qo'shilgan jamoaviy chatning avvalgi xabarlari yoki bot chatni kuzatishni boshlashidan oldin aytganlari oldinroq saqlangan xabarlar takrorlanmaydi. Rejim yoqilganda allaqachon ro'yxatda bo'lgan suhbatlar snapshotlarsiz qo'shiladi. FloodWait bu ishni to'xtatadi va keyin davom ettiradi; xatoliklar qayd etiladi va suhbatning jonli yozib olinishi davom etadi. Bu yangi suhbatning identifikatsiyasini aniqlash paytida bo'ladigan kutishlarni ham o'z ichiga oladi: kechikib turgan profil/tarix vazifasi qayta urinish uchun saqlanadi va mavjud bo'lgan uzoqroq hisob bo'ylab kutish qisqartirilmaydi. - **Profil so'rov bo'yicha.** **Suhbatlar → Profil → Profildagi o'zgarishlarni saqlash** istalgan manbaning joriy profilini saqlaydi; eng yangisi xabarlar ustida ko'rsatiladi. - **Suhbat holati snapshotlari (oldindan ko'rish).** Xabar oqimidan tashqaridagi holat xabar yuborilmasdan o'zgaradi: har bir xabarni unpin qilish xabar darajasida hech qanday iz qoldirmaydi, administrator huquqlarini yo'qotadi, sovg'a yashirinadi, konvertatsiya qilinadi, yangilanadi yoki qaytariladi. Kuzatish paytida, har bir yoqitilgan manba muntazam ravishda o'qiladi va imzolangan holda saqlanadi `chat.state` yozuv: sarlavha, foydalanuvchi nomlari, tavsif, a'zo va administratorlar soni, bogʻlangan suhbat, sekin rejim, biriktirilgan xabar IDlari (gacha 100), administratorlar o'z huquqlari va unvonlari bilan, hamda kanallar va foydalanuvchi profillarida ko'rsatilgan sovg'alar (gacha 100). Har bir yozuv oldingi snapshotdan farqlarni ro'yxatlaydi: o'zgargan maydonlar oldingi va keyingi qiymatlari bilan, biriktirilgan xabarlar qo'shilgani yoki olib tashlangani, ma'murlar va sovg'alar qo'shilgani, o'zgartirilgani yoki ro'yxatdan chiqarilgani. Telegram snapshotlar orasida kim nimani o'zgartirganini yoki qachon o'zgartirganini aytmaydi. - Telegram rad etadigan qism (masalan, ma'mur bo'lmagan a'zo uchun kanalning ma'murlar ro'yxati) `errors`; uning avvalgi qiymati saqlanadi va ro'yxatda ko'rsatiladi `carried_forward`, hech qachon o'chirilgani haqida xabar berilmagan. - Faqatgina sonlar bo'yicha o'zgargan yozuv va hech qanday o'zgarish aniqlanmagan tekshiruv oxirgi to'liq holatga murojaat qiladi `state_seq` va yig'indili `state_overrides`. To'liq holat kamida har yetti kunda va hisobdan boshqa narsa o'zgarganda yozib olinadi. - `parts_complete` chegaralangan ro'yxatlarni belgilaydi. Qo'shish uchun avvalgi to'liq ro'yxat, o'chirish uchun joriy to'liq ro'yxat talab etiladi, va aniq bo'sh qiymatlar tozalashni qayd etadi. - **Parametrlar → Söhbat holati** oraliqni belgilaydi (12 soatlar bo'yicha standart, 0 snapshotlarni o'chiradi), manbalar orasidagi tanaffus, qaysi qismlar o'qilgani va hech qanday o'zgarish topilmagan tekshiruvlar qayd etiladi. `FLOOD_WAIT` va `FLOOD_PREMIUM_WAIT` qolgan snapshot so'rovlarini to'xtatadi, hisob bo'ylab amal qiladigan har qanday uzoq muddatli muddatni saqlab qoladi va uzilgan suhbatni ushbu kutishdan so'ng yana bir urinishga imkon beradi. - **Ko'rinmaydi.** Boshqa Telegram ilovasida bosilgan ichki (callback) tugmalar, botning bunday bosishga javoban ko'rsatadigan pop-up yoki havolasi va boshqa ilovada ishlatilgan taklif havolalari TgWitnessga yetib bormaydi TgWitness. Keyinchalik bot yuborgan yoki tahrirlagan narsalar qayd etiladi. ### Panel orqali harakat qiling **Suhbatlar** endi tanlangan ish maydonining Telegram hisobini ishlatadigan mini-klientni o'z ichiga oladi: - Oddiy matnli xabar yozing yoki saqlangan xabar ostidagi **"Javob berish"**ni tanlang. Jo'natilgan xabar, hattoki doira jo'natilgan yangilanishlarni o'z ichiga olmasa ham, qayd etiladi. - **Press tugmasini** joriy callback yoki matnli tugma ostida bosing. Server xabarni qayta oladi va klaviatura saqlangan versiyadan farq qilganda harakatni rad etadi. Callback kvitansiyalari Telegramning pop-up matni, ogohlantirish bayrog'i va URL manzilini saqlaydi; javob suhbat ostida ham ko'rsatiladi. URL manzillari tanlanadigan matn bo'lib qoladi va avtomatik ochilmaydi. - **Telegram havolasini** kengaytiring, `@username`, ommaviy `https://t.me/name` havolasi, `https://t.me/+invite` / `joinchat/invite` yoki `?start=parameter` parametrli bot havolasini kiriting va " **Ko'rinishni saqlash**" tugmasini bosing. Asl havola va Telegramning ko'rinishi qo'shilishdan oldin imzolanadi. **Qo'shilish / ochish va kuzatish** guruh/kanalga qo'shilishni yoki foydalanuvchi/botni ochishni amalga oshiradi, suhbatni yoqilgan manba sifatida qo'shadi va botga uning boshlang'ich parametrini o'z ichiga olgan `/start` buyrug'ini yuboradi. Administrator tasdig'ini kutayotgan qo'shilish so'rovi a'zolik emas, balki kutish holati sifatida qayd etiladi. Kiruvchi javoblarni jonli ravishda qayd etish uchun **«Kuzatuvni boshlash**»ni yoqing. Kuzatuv to'xtatilgan paytda paneldagi harakatlar ishlaydi, lekin faqat ularning to'g'ridan-to'g'ri javoblari saqlanishi kafolatlanadi. Kuzatuv davom etayotganda yangi qo'shilgan manbalar sozlangan profil/tarixni yig'ishni ishlatadi. Manba to'xtatilganda, uning tugmalarini bosish yoki xabar yuborishdan oldin uni **«Manbalar»** bo'limida yoqing. `interaction.preview`, `interaction.requested` va `interaction.result` oddiy imzolangan jurnal voqealari bo'lib, ular dalillar eksportiga kiritilgan. So'rovlar hisobni, xabar/tugma yoki ko'rinish yozuvini hamda kuzatuv ishlamoqda bo'lgan-yo'qligini aniqlaydi. Kvitalar muvaffaqiyat, rad etish, tasdiqlanishni kutish va noma'lum natijani ajratib ko'rsatadi. To'xtatilgan so'rov Telegramga yetib borgan bo'lishi mumkin: yangi harakatni boshlashdan oldin suhbatni tekshiring. So'rov ID'sini qayta ishlatish, harakatni takrorlamasdan, qayta ishga tushirgandan keyin ham, uning saqlangan kvitansiyasini oladi. Panel hozirgi sahifa sessiyasi davomida bir xil harakat uchun noaniq javob kelganda ham ID'ni saqlab qoladi. Shuningdek, muvaffaqiyatli harakatdan so'ng ko'rinishni yangilash muvaffaqiyatsiz tugagach ham u shu ID'ni saqlaydi: kvitansiyasi ko'rinib turaveradi va uni yana bosish uni qaytarib oladi. Callback va join RPClar bitta urinishga ega; qayta urinish mumkin bo'lgan o'qishlar o'zlarining sozlangan qayta urinish siyosatini saqlab qoladi. Suhbatlarni almashtirish loyihani va javob maqsadini darhol tozalaydi va yangi suhbat yuklanmaguncha yuborishni o'chirib qo'yadi. Ushbu mini-klient matn va qaytish chaqiruv tugmalari bilan ishlaydi. Veb-ilovalar, kirish/telefon/joylashuv so'rovlari, to'lovlar, ichki so'rovlar va ilovalar hanuz Telegram klientini talab qiladi; ularning saqlangan tugma metama'lumotlari ko'rinib turadi. Yangi boshqaruv elementlari ingliz tilidagi matndan foydalanadi. ## Qayta tekshirish bosqichlari Qayta tekshirishlar o'tkazib yuborilgan xabarlar, tahrirlar va Telegram endi qaytarmaydigan xabarlar uchun Telegramga yana murojaat qiladi. Yulduzcha bilan belgilangan manbalar **ustuvor** manbalar bo'lib, ular standart bo'yicha har 15 daqiqada qayta tekshiriladi; boshqa barcha manbalar esa har 6 soatda. Tanlangan suhbatlar ustuvor manbalar sifatida boshlanadi, papka yoki butun hisobga qo'shilgan suhbatlar esa oddiy manbalar sifatida. Har bir tekshirishda maksimal 30 manba qayta tekshiriladi va qolganlari keyingi daqiqagacha kutadi; qayta ulanishdan so'ng, ustuvor manbalar birinchi bo'lib tekshiriladi. Ikkala intervalli ham Manbalar → Yozib olish sozlamalari → Qayta tekshirish bo'limida o'rnatiladi (0 qiymati bosqichni o'chiradi) va `recheck.changed` deb qayd etiladi. O'tkazib yuborilgan xabarlar oldingi tekshirish to'xtagan joydan yuqoriga qarab olinadi, maksimal miqdor **Parameters → Har bir suhbat va tekshirish bo'yicha tiklanadigan o'tkazib yuborilgan xabarlar** (o'rnatilgan qiymat bo'yicha 1 000). Uzoq to'xtashdan so'ng qayta tekshirish butun bo'shliqni to'ldiradi, hatto bo'shliqdan yangi jonli xabarlar avval saqlangan bo'lsa ham. Hali ham yetib olish jarayonidagi suhbat uning qatlam oralig'ini kutmasdan keyingi daqiqada yana qayta tekshiriladi; `recheck.completed` ko'rsatadi `continues_after` to'liq yakunlanmaguncha. Solishtirishlarga xabar matni, ob'ektlar, klaviaturalar (o'chirishlar ham), hamda ilova kontenti/identiteti kiradi. Faylga kirish hashlarini yoki faylga havolalarni o'zgartirish o'zgartirish hisoblanmaydi, shuningdek Telegramning o'zi to'ldiradigan ma'lumotlar ham: havola oldindan ko'rish yuklanishi, story ko'rinishlari, ushbu hisob orqali ochilgan pullik media, kvitansiyaning rasmiy kvitasi. Söhbatlardagi har bir saqlangan versiya o'zining to'liq jurnal yozuviga, jumladan media metama'lumotlariga havola qiladi. ## Xabarlar tarixi va mansubligi Faraz qilaylik, yig'uvchi "Uchrashuv soat 10:00 da" deb kuzatadi, keyin "Uchrashuv soat 11:00 da" deb ko'radi va so'ngra o'chirish bildirishnomasini oladi. Bu uch xil kuzatuvni ilova qiladi. Asl matn saqlanib qoladi, tahrir alohida versiya sifatida ajratiladi va bildirishnoma o'chirish kuzatilganini qayd etadi. Agar yig'ish birinchi versiya yo'qolgandan keyin boshlandi, o'sha matn mavjud emas. Agar jarayon oflayn bo'lgan paytda bir nechta tahrirlar amalga oshirilgan bo'lsa, faqat keyinchalik kuzatilgan versiyalar saqlanishi mumkin. O'chirish bildirishnomasi hech qachon qayd etilmagan kontentni tiklay olmaydi. Xabar yuboruvchi avtomatik ravishda tahrirchi hisoblanmaydi. Telegram odatda xabarni o'chirgan shaxsni yoki aniq o'chirish vaqtini taqdim etmaydi. Noma'lum shaxslar noma'lum bo'lib qoladi. Reaksiya snopshotlari va ishtirokchi yangilanishlari faqat hisobga Telegram tomonidan ko'rsatiladigan son va identifikatorlarni o'z ichiga oladi. Ketma-ketlik raqamlari kuzatuv tartibini bildiradi. Yig'uvchining UTC vaqti bo'yicha timestamp uning mahalliy soatidir; Telegram manbaasining timestampi taqdim etilganda alohida saqlanadi. Ikkalasi ham mustaqil ishonchli timestamp hisoblanmaydi. ## Tarix snopshotlari Surat yoqilgan manbadan ko‘rinadigan eng so‘nggi xabarlarni, har so‘rovda ko‘pi bilan 500 tasini oladi. Natijalar tarix kuzatuvlari sifatida belgilanadi. Qo‘lda surat olish bo‘sh akkauntni band qiladi; avval monitoringni aniq to‘xtatib turing. Takroriy kuzatuvlar alohida yozuvlar bo‘lib saqlanadi. Snapshotlar ilova siyosatiga rioya qiladi, ammo jonli-voqea kalitlaridan alohida bo'lib qoladi. Ular o'chirilgan xabarlarni yoki o'tkazib yuborilgan oraliq versiyalarni qayta tiklamaydi. To'xtatilgan paytda bittasini so'rashingiz mumkin; u navbatga qo'ygan har qanday ilovalar kuzatuv boshlanib, yuklab olish ishchisi ishga tushguncha kutadi. **Tarix** alohida, akkauntdan yakka foydalanadigan vazifadir: u tanlangan manbalarni o‘qiydi va navbatdagi biriktirmalarni monitoringni boshlamasdan ketma-ket yuklaydi. Pauza akkauntni bo‘shatadi; davom ettirish saqlangan jarayonni davom ettiradi. Bir nechta bo‘sh akkauntda sana, til va javob filtrlari uchun [Taqsimlangan chat eksporti](https://github.com/phishdestroy/TgWitness/blob/main/docs/DISTRIBUTED-EXPORT.md)ga qarang. ## Ilovalar bilan ishlash Ilovalarni yuklab olish standart bo'yicha yoqilgan va bo'sh disk maydoni 1 GiB dan kam bo'lganda to'xtaydi. Yig'uvchi xabarni kuzatish va yuklab olish ishlarini birgalikda bajaradi. Ish original media tavsiflagichi va o'lcham siyosatini saqlab qoladi, shuning uchun keyinchalik tahrirlangan ilova jimjit almashtirilmaydi. Yuklab olishlar xabarni ushlagandan keyin amalga oshiriladi. To'liq yakunlangan yuklab olish o'zining SHA-256 hashini va bayt sonini o'z ichiga olgan`media.saved` yozuvini yaratadi. O'tkazib yuborilgan, muvaffaqiyatsiz, qayta urinilgan va to'xtatilgan ishlarning alohida natijalari mavjud. Navbatga qo'yilgan ish fayl saqlanganligiga dalil bo'lmaydi. Yakunlangan fayl shuningdek asl kuzatilgan ilova tavsifnomasidagi bayt soniga mos kelishi kerak. Qisqa yoki kutilmagan darajada uzoq javob saqlangan media sifatida qayd etilmaydi. Cheklovlar **turga qarab** belgilanadi: fotosuratlar, videolar, GIF va animatsiyalar, aylana video xabarlari, ovozli xabarlari, musiqa va audio, stikerlar va fayllar. Har bir tur o'chirib qo'yilishi mumkin va 1 dan 2 000 MiB gacha o'z hajm chegarasiga ega; yangi ish maydonchalari fotosuratlar uchun 20 MiB, videolar uchun 100 MiB, fayllar, audio va dumaloq videolar uchun 50 MiB, ovozli xabarlar va GIFlar uchun 20 MiB bilan boshlanadi va 5 MiB stikerlar uchun. Yangi ish maydonchalari GIF va stikerlarni yoqilmaguncha o'chirib qo'yadi. Har bir tur uchun alohida limit belgilashdan oldin siyosat saqlangan ish maydonchalari barcha turlarni yoqib qo'yadi va ularning barchasi uchun yagona limitni saqlab qoladi. *Maksimal fayl o'lchami* barcha turlarni bir vaqtda belgilaydi. O'chirib qo'yilgan tur `media.skipped` yozuvini hosil qiladi; noma'lum o'lchamli yoki haddan tashqari katta fayllar yuklab olinmaydi. Katta fayllar ularning o'lchamiga va 256 KiB/s bazaviy tezlikka asoslanib qo'shimcha yuklab olish vaqti oladi. Ishlar qayta ishga tushirishdan omon qoladi, lekin muddati tugagan havolalar, yo'qolgan kirish huquqi yoki o'chirilgan fayllar tiklashga to'sqinlik qilishi mumkin. Kutayotgan ishlar o'zlari bilan birga saqlangan limitni saqlab qoladi, shuning uchun oshirilgan limit faqat yangi fayllarga tatbiq etiladi. Turni o'chirish yoki uning limitini pasaytirish, shuningdek, kutayotgan fayllarni ham o'tkazib yuboradi, har biri `media.skipped` yozuvi bilan; yuklab olishni o'chirish navbatni to'xtatadi, ular yana yoqilgunga qadar. ## Tanaffus, qulflash, ulanishni uzish va qayta ishga tushirish | Harakat yoki holat | Ta'sir | | --- | --- | | Ish maydonini o'zgartiring | Panel ko'rinishini o'zgartiradi; boshqa to'plovchilar o'z holatini saqlab qoladi. | | Panelni qulflash yoki yorliqni yopish | Server va kuzatuvni ishga tushirib qo'yadi. | | Kuzatuvni to'xtatish | Ushbu to'plovchini to'xtatadi va navbatga qo'yilgan ilovalar ishlarini saqlab qoladi. | | Manbani o'chirish | Kelajakdagi doiraviy ushlab olishni to'xtatadi; unga mo'ljallangan navbatdagi media ishlar to'xtatilgan paytda kutib turadi. | | Manbani olib tashlash | U manba sifatida uni unutadi va foydalanuvchi profillarini o'chirib tashlaydi; allaqachon saqlangan yozuvlar faqat qo'shib boriladigan jurnalda qoladi. Hali kutayotgan ilovalar (attachments) esa muvaffaqiyatsiz (`source_removed`) deb qayd etiladi. Papka va butun hisob rejimlarida ham u istisno qilinadi. | | Ulanish yo'nalishini o'zgartiring | Tanaffusni talab qiladi, eski klientlarni yopadi va yakunlanmagan kirishni bekor qiladi. | | Python jarayonini to'xtating | Barcha ish maydonlarini to'xtatadi; u tarmoqdan tashqarida bo'lganida hech qanday kuzatuv amalga oshirilmaydi. | | Faol kuzatuvdan so'ng qayta ishga tushiring | Saqlangan sessiya yordamida saqlangan doirani tiklashga urinishlar. Qo'lda pauza qilish bu niyatni bekor qiladi. | Yig'uvchi aniqlangan ulanish uzilishlari, qayta urinishlar, xatolar, boshlanish/to'xtashlar va yurak urishlarini qayd etadi. Qisqa uzilishlar davriy ulanish tekshiruvlari orqali e'tibordan chetda qolishi mumkin. Qayta ishga tushirilgandan so'ng, saqlangan yangilanish pozitsiyasidan o'tkazib yuborilgan yangilanishlar so'raladi va kuzatilgan suhbatlar muntazam ravishda qayta tekshiriladi; [dalil formatiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#durable-collection-and-process-receipts-02) qarang. Snapshot kontekstni taqdim etadi; u bo'shliq tuzatilganini isbotlamaydi. ## Hisobni izolyatsiya qilish va tasdiqlash Har bir ish maydoni o'z jurnali, ruxsatnomasi, imzolash kaliti, siyosati va navbatiga ega. Faqat uning faol klienti jonli kuzatuvlarni kiritishi mumkin. Rad etilgan, kutayotgan, yangilangan va ulanish-sinov klientlari uning jurnaliga jonli yangilanishlarni yozolmaydi. Turli hisoblar bir xil guruhni kuzatishi mumkin, lekin ularning jurnallari alohida bo'lib qoladi. Har bir voqeada avvalgi xesh va Ed25519 imzosi mavjud. Eksportlar belgilangan ketma-ketlik raqami orqali butun ish maydoni jurnalini qamrab oladi. Panel filtrlari eksportni filtrlamaydi; tayyorlanayotgan paytda yig'ish uning chegaralaridan tashqarida ham davom etishi mumkin. **Jurnal tekshiruvchisi** ko'rsatilgan chegarada voqealar zanjiri va imzo(lar)ni tekshiradi. Natija ish maydoni o'zgarganda tozalangadi va panel tekshiruvdan keyin qo'shilgan yangi yozuvlarni aniqlaydi. ZIP eksporti ham yig'ilgan media ma'lumotlarini tekshiradi. Barmoq izlari va tekshiruv nuqtalarini mustaqil saqlang. Har bir rejimda ma'lumotlarni olish bo'yicha tekshiruvlar [doirasini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) va [kundalik operatsiyalarni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/) oddiy yig'ish uchun ko'ring. --- # Telegram · Yashirin suhbatlar: amalga oshirish va demo Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/secret-chats/ Alohida Maxfiy Suhbat implementatsiyasini tushunib oling, badiiy interfeysni sinab ko'ring va qoldirilgan nuqsonlarni ko'rib chiqing. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Alohida Maxfiy Suhbat implementatsiyasini tushunib oling, badiiy interfeysni sinab ko'ring va qoldirilgan nuqsonlarni ko'rib chiqing. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) **Holati tekshirilgan 6 Noyabr 2026:** alohida Secret Chat amalga oshirilishi ishlab chiqilmoqda. U e'lon qilingan `main` da `3d23e52b647b`. Oddiy yig'uvchi va Takeout eksporti Maxfiy suhbatlarni yig'maydi. Interaktiv veb-sayt ssenariysi soxta ma'lumotlar bilan interfeysni namoyish etadi; u Telegram muloqotini yoqmaydi. ## Ijro etish joyi `0e60f88e` qo'shildi **Manbalar → Pseudo-maxfiy** mahalliy rivojlantirish filialida `fix/panel-routes-sessions`. Tekshirilgan snapshot `bb8788fb685c`. Uning amalga oshirilishi `tgwitness/secret_chats.py`, ilova yo'llari, `tgwitness/static/views/secret-chats.js` va maxsus testlarni o'z ichiga oladi. Ushbu filialdagi ixtiyoriy `secret-chats` qo'shimchasi [KiaroSama/Telethon-Secret-Chat](https://github.com/KiaroSama/Telethon-Secret-Chat) ni `d87bf037b90060383c7b704d8a06ebb98c621c6f` ga bog'laydi. Kutubxona mavjud Telethon ruxsatnomasi asosida Telegramning end-to-end chat protokolini amalga oshiradi. Faqatgina ushbu kutubxonani o'rnatish `main` ga yetishmayotgan integratsiyani qo'shmaydi. ## Rivojlantirish interfeysi nima qiladi | Harakat | Qayd etilgan xatti-harakatlar | | --- | --- | | Foydalanuvchi nomi yoki foydalanuvchi ID bo'yicha suhbatni boshlang | So'rov yuboring; boshqa ishtirokchi uni qabul qilishi kerak. | | Kiruvchi so'rovni qabul qiling | TgWitness o'sha suhbat uchun qabul qiluvchi nuqta bo'ladi. Avtomatik qabul qilish alohida sozlama bo'lib, standartda o'chirilgan. | | Xabar yuborish yoki qabul qilish | Chiqish yoki kirish `secret_chat.message` yozuvini qo'shing va uni mavzuda ko'rsating. | | Ilovani qabul qiling | Uni dekript qiling, baytlarini SHA-256 bo'yicha saqlang va `secret_chat.file` ni qayd eting. | | Timer yoki o'chirish bildirishnomasini qabul qiling | Ogohlantirishni qayd eting va oldin saqlangan kontentni saqlab qoling. | | Suhbatni ko'rib chiqing | Xabarlar, fayllar, bildirishnomalar va asosiy vizualizatsiyani ko'rsating. Ochiq yorliq har to'rt soniyada yangilanadi. | Integratsiyani o'z ichiga olgan rivojlantirish versiyasida operator tanlangan hisob uchun modulni yoqadi va uni ulaydi. Boshlash, qabul qilish va yuborish uchun o'zaro aloqada bo'lish ruxsati hamda hisobning faqat o'qish uchun himoyasi o'chirilgan bo'lishi talab etiladi. Boshqa ishtirokchi yangi chiquvchi suhbatni qabul qilishi kerak. Ushbu nazorat elementlari yuqoridagi reviziyadagi e'lon qilingan ilovada mavjud emas. Faqat ushbu TgWitness sessiyasi tomonidan yaratilgan yoki qabul qilingan suhbatlar qamrab olinadi. Telefonidagi mavjud Yashirin Suhbatlar shu qurilmada qoladi. Sessiyani import qilish ularning alohida shifrlash kalitlarini taqdim etmaydi. Yashirin suhbat kalit materiallari va hisoblagichlar ish maydoni seyfida saqlanadi; saqlangan xabarlar va dekriptlangan fayllar odatiy ish maydoni saqlash himoyalariga bo'ysunadi. ## Veb-sayt namoyishi Veb-saytning "**Try Secret Chat**" ssenariysi badiiy suhbatni ochadi. U o'quvchiga so'rov yuborish, uning qabul qilinishini simulyatsiya qilish, namunaviy xabar yuborish, skriptlangan javob va faylni qabul qilish hamda taymer va o'chirish bildirishnomasini ko'rib chiqish imkonini beradi. Kiruvchi so'rov ham qabul qilinishi mumkin. Boshqaruv elementlari simulyatsiya qilingan tengdosh harakatlarini aniq belgilaydi. Ushbu ssenariy brauzer xotirasida ishlaydi. Qayta tiklash yoki qayta yuklash uni tozalaydi. U tizimga kira olmaydi, Telegram bilan bog'lanmaydi, haqiqiy shifrlash kalitlarini yaratmaydi yoki imzolangan namunalarni yuklab olishni o'zgartirmaydi. Uning ko'rsatilgan xabarlari imzolangan dalil emas. Ssenariy mo'ljallangan o'zaro ta'sirni namoyish etadi; u rivojlantirish amalga oshirilganligi tayyorligini tasdiqlamaydi. ## Tekshiruvlar va hal qilinmagan nuqsonlar Mavjud beshta test shifrlangan kalit saqlanuvchanligi, hayotiy tsikli va xabar yozuvlari, kiruvchi qabul qilish siyosati, faqat o'qish uchun yuborish va ilova eksportini qamrab oladi. Ular 6-noyabr ko'rigida belgilangan kutubxona bilan muvaffaqiyatli o'tkazildi. Qo'shimcha uchta sintetik tekshiruv shu snapshotda nuqsonlarni qayta ishlab chiqdi: | Topilma | Oqibat | | --- | --- | | Yopilish`read_only`ni chetlab o'tadi | Yopiq yo'l o'zaro ta'sirlar bloklanishi kerak bo'lgan hollarda masofaviy harakatni bajarishi mumkin. | | Takrorlarni aniqlash faqat so500t yangi yozuvlarni tekshiradi | Eskirgan qayta ijro qayta ishga tushirgandan so'ng nusxa yaratishi mumkin. | | Muvaffaqiyatsiz ilova yuklab olish uning kutib turgan yozuvini o'chirib tashlaydi | Vaqtinchalik xato qayta urinish ishni yo'qotishga olib keladi. | Bu ochiq nuqsonlar bo'lib, ular [nashr qilingan auditori](https://github.com/phishdestroy/TgWitness/blob/main/website/validation/audit/REPORT.md)da ham qayd etilgan. Besh muvaffaqiyatli test ushbu xatoliklarni qamrab olmaydi. Ko'rib chiqish sintetik ish maydonchalari va Telegram operatsiyalarining soxta nusxalaridan foydalangan; u jonli qo'l siqishni takrorlamagan yoki ishlab chiqarishga joriy etishni tasdiqlamagan. --- # Telegram · Manba tarixini yuklash Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/history/ Yoqilgan manbalardan avvalgi xabarlarni yuklang, to'xtating va davom ettiring, shuningdek imzolangan progress hisobotini tasdiqlang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Yoqilgan manbalardan avvalgi xabarlarni yuklang, to'xtating va davom ettiring, shuningdek imzolangan progress hisobotini tasdiqlang. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Yig'ma](https://github.com/phishdestroy/TgWitness/blob/main/docs/COLLECTION-MODES.md) ![Yig'ma](https://phishdestroy.github.io/TgWitness/assets/chapter-collect.svg) **Manbalar** bo'limida yoqilgan suhbatlarni ko'rib chiqing, kuzatuvni to'xtating, Standart API yoki Takeout eksportini tanlang, so'ngra **To'liq tarixni yuklashni** tanlang. Jarayon manbalar ro'yxatini mustahkamlaydi va ularning mavjud bo'lgan avvalgi xabarlarini Suhbatlarga hamda imzolangan kuzatuv jurnaliga o'qiydi. Media mavjud ilova sozlamalari va uzoq muddatli yuklab olish navbatidan foydalanadi. Bu har bir suhbat bo'yicha imzolangan JSON/HTML eksportidan alohida. Hisob bo'ylab to'plash uchun **Butun hisob**ni tanlang, manba ro'yxatini yuklash uchun kuzatuvni boshlashingiz va tarixni boshlashdan oldin ushbu ro'yxatni ko'rib chiqishingiz kerak. Dialog-ro'yxat chegarasi hanuz amalda (o'rnatilgan holda 1,000, Parametrlarda sozlanishi mumkin). Muvaffaqiyatli ish har bir hisob dialogi ro'yxatga olinganini isbotlamaydi. Keyinchalik topilgan yoki yoqilgan suhbatlar uchun yana bir marta ishga tushirish zarur. Tarixni boshlashdan oldin kuzatuvni to'xtating; bir vaqtning o'zida faqat bitta hisob ma'lumotlari olinadi. Birdan besh tagacha ilova ishchilarini tanlang va mavjud So'nggi Harakatlarni saqlab qolish hamda avval saqlangan versiyalarni solishtirishni tanlang. Chiqarish Telegramda tasdiqni va server tomonidan belgilangan kutishni talab qilishi mumkin. Ushbu parametrlar qayta boshlaganda ham o'zgarmas qoladi. Transport, qayta urinish va ishonch tafsilotlari uchun [Backfill xatti-harakatlari va dalillar shartnomasiga](https://github.com/phishdestroy/TgWitness/blob/main/docs/BACKFILL.md) qarang. ## Tanaffus, qayta boshlash va qisman natijalar - **Tanaffus tarixi** o'qishni to'xtatadi. **Davom ettirish** har bir manbada oxirgi yozilgan xabardan boshlanadi; ilovani qayta ishga tushirish ham ishni to'xtatilgan holatda qoldiradi. Davom ettirish uchun bir xil faol Telegram akkaunti talab etiladi. - Xabarni kuzatish, ilova ishini bajarish va kursorni commit qilish bitta tranzaktsiyada amalga oshiriladi. Qayta boshlangan ijro allaqachon commit qilingan kuzatuvlarni takrorlamaydi. Jonli yozib olish yoki alohida, aniq boshlangan ijro mustaqil ravishda bir xil xabarni kuzatishi mumkin. - Har bir manba (Takeout'dagi har bir Telegram bo'lingan diapazon) birinchi o'qishda yuqori xabar ID'ini belgilaydi. Yangi xabarlar jonli kuzatuvga tegishli, manbaning qolgan tarixiy sahifalariga emas. - Kirib bo'lmaydigan manbalar va olish jarayonida o'chirib qo'yilgan manbalar muvaffaqiyatsiz yoki o'tkazib yuborilgan holda ko'rinadi. Boshqa manbalar davom etadi; umumiy natija to'liq emas. - FloodWait kechikishlari saqlangan hisobning kutish oralig'iga rioya qiladi. Vaqtinchalik xatoliklar besh martagacha qayta urinadi; resurslar tugashi va disk joyining kamayishi kursorni saqlagan holda to'xtaydi. - **Bu history run tugagach** saqlangan kuzatuvlar saqlanib qoladi. U ularni o'chirib tashlamaydi yoki standart API ilovalarini bekor qilmaydi. Takeout tugagach, qolgan Takeout fayllarini o'tkazib yuborilgan deb belgilaydi; to'xtatish esa ularni qayta boshlash imkonini saqlaydi. Yangi ish yoqilgan manbalarni qayta o'qiydi. Tarixni to'ldirish faqat o'qish rejimida tarixni ko'rsatadi. Ilovalar kutib turishi, muvaffaqiyatsiz bo'lishi yoki sozlangan siyosat tomonidan istisno qilinishi mumkin. Jurnal va ilovalar navbatidagi media kvitansiyalarini tekshiring; saqlangan ilova faqat saqlangan baytlarga ega bo'lgan yakuniy kvitansiya hisoblanadi. Tarix operatsiyasi aniq snapshot so'rovi bo'lib, kelajakdagi jonli voqealar toifalarini tanlaydigan kalitlardan alohida. ## Ko'chirish va tekshirish **Imzolangan ijro hisobot**ini saqlang, so'ng **dalillarni eksport qilish** funksiyasidan foydalanib jurnal va saqlangan ilovalarni yuklab oling. Keyingi dalillar eksporti qo'shimcha yozuvlarni o'z ichiga olishi mumkin; hisobot o'z hisoblagichlarini yaratilgan paytdagi jurnal prefiksiga bog'laydi. Verifikatorni ushbu versiyaning ishonchli chiqishidan ishga tushiring: ``` python tgwitness/verify.py tgwitness-history-report.json --evidence evidence.zip --fingerprint TRUSTED_FINGERPRINT ``` Kutilayotgan imzolash kaliti barmoq izini alohida saqlang. Verifikator hisobot imzosi, dalillar arxivi, hisobot tekshiruv nuqtasi, manba rejasini, hisobni va saqlangan/mavjud bo'lmagan xabarlar sonini tekshiradi. Yangi ishlar manba rivoji va parametrlarni imzolangan kursor voqealariga bog'laydi. `--evidence`siz u faqat imzolangan hisobot va uning ichki izchilligini tekshiradi. Eski rivoj maydonchalari va ilova xulosalari imzolangan yig'uvchi bayonotlari bo'lib qoladi. Dalillar verifikatori arxivlangan media baytlarini tekshiradi. Imzolash ham, mavjud tarixni yakunlash ham Telegramning kelib chiqishini, atomik snapshotini yoki tarixiy to'liqligini isbotlamaydi. Xabarlar o'qish jarayonida o'zgartirilishi mumkin; o'chirilgan xabarlar va mavjud Yaqin Harakatlar va Sirli Suhbatlar doirasidan tashqaridagi oraliq tahrirlar qayta tiklanmaydi. Imzolash kalitini boshqaruvchi operator tashqi majburiyatlar mavjud bo'lishidan oldin jurnalni soxtalashtirishi mumkin. Hujjatlashtirilgan aralashuvni aniqlash xususiyatlari uchun alohida saqlangan tekshiruv nuqtalaridan yoki mustaqil guvohdan foydalaning. Yozib olish kursori mahalliy ish maydonining holatini bildiradi. Faqat dalillar ZIP-faylini tiklash kutib turgan yozib olish ishini yoki Telegram sessiyasini tiklamaydi. Agar asl ishni davom ettirish zarur bo'lsa, ish maydonining zaxira nusxasini saqlang. --- # Telegram · Ish jarayonlari va operatsiyalar Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/ Panelning kundalik ishlashi: rejimlar, monitoring kategoriyalari, parametrlar, bildirishnomalar, eksportlar, zaxira nusxasi va sig'im. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Panelning kundalik ishlashi: rejimlar, monitoring kategoriyalari, parametrlar, bildirishnomalar, eksportlar, zaxira nusxasi va sig'im. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) ![Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/assets/chapter-operate.svg) Birinchi ulanishingiz uchun [akkauntlar va sessiya formatlaridan](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) foydalaning. Saqlangan versiyalar, voqea siyosatlari va bo'shliqlar haqida tushuntirish uchun [yig'ish qanday ishlashini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) ko'ring. Ushbu qo'llanma kundalik ish faoliyati va tiklashni qamrab oladi. Boshqariladigan o'rnatish quyidagilarni o'z ichiga oladi: **START-HERE.html** va **START-HERE.txt** uning ishga tushiruvchi dasturi yonida, o'rnatish yo'liga moslashtirilgan omborcha havolasi va buyruqlar bilan. `tgwitness guide --print`ni SSH orqali ishga tushiring yoki `tgwitness paths`ni haqiqiy ma'lumotlar katalogini aniqlash uchun ishlating. Asosiy systemd o'rnatishi maxfiy holatni `/var/lib/tgwitness-…` ostida saqlaydi; `/opt/tgwitness` esa dasturni o'z ichiga oladi. Boshqariladigan vaqtinchalik Cloudflare tunneli uchun `tgwitness tunnel off` jamoat kirishini yopadi, mahalliy panel va to'plam esa ishlashda davom etadi. `tgwitness tunnel on` uni yoqadi; `tgwitness tunnel restart` yangi tunnel ulanishini yaratadi. Uning joriy manzilini ko'rish uchun `tgwitness open` dan foydalaning. Aniq o'chirish sozlamasi xizmatni qayta ishga tushirgandan keyin ham saqlanib qoladi. `tgwitness stop` panel va to'plamni to'xtatadi. **Ushbu sahifada** - [Operator ish jarayoni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#operator-workflow) - [Asosiy kalitni ulashmasdan ishni ulashing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#share-work-without-sharing-the-main-key) - [Ijro vaqti rejimlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#runtime-modes) - [Monitoring toifalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#monitoring-categories) - [Bildirishnomalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#notifications) - [Panel tartibi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#panel-layout) - [Joylashtirish muhitlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#deployment-environments) - [Boshlang'ich tekshiruvlar va eksportlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#startup-checks-and-exports) - [Zaxira nusxasini olish, tiklash va uzilishlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#backup-restore-and-interruptions) - [Sig'im va saqlash muddati](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/#capacity-and-retention) ## Operator ish jarayoni Oqim sxemasi · Saqlash va kalitni himoya qilishni tanlang → O'z tokeni bilan panelni oching; O'z tokeni bilan panelni oching → Ish maydonini tanlang; Ish maydonini tanlang → To'g'ridan-to'g'ri yoki proxy yo'nalishini sozlang; To'g'ridan-to'g'ri yoki proxy yo'nalishini sozlang → Telefon raqamini kiriting yoki fayllarni / QRni tanlang; Telefon raqamini kiriting yoki fayllarni / QRni tanlang → Hisob identifikatsiyasini tekshiring va kirish mumkin bo'lgan guruhlarni tanlang; Hisob identifikatsiyasini tekshiring va kirish mumkin bo'lgan guruhlarni tanlang → Voqea va ilovalar siyosatini saqlang, so'ng kuzatuvni boshlang; Voqea va ilovalar siyosatini saqlang, so'ng kuzatuvni boshlang → Xatolar, kirish, navbatlar va diskni monitoring qiling; Xatolar, kirish, navbatlar va diskni monitoring qiling → Mustaqil tekshiruv nuqtalarini saqlab qolish; Mustaqil tekshiruv nuqtalarini saqlab qolish → Materialni eksport qiling va tekshiring · Saqlash va kalitnihimoya qilishnitanlang · O'z tokeni bilanpanelni oching · Ish maydonini tanlang · To'g'ridan-to'g'riyoki proxyyo'nalishini sozlang · Telefon raqaminikiriting yokifayllarni / QRnitanlang · Hisobidentifikatsiyasinitekshiring va kirishmumkin bo'lganguruhlarni tanlang · Voqea va ilovalarsiyosatini saqlang,so'ng kuzatuvniboshlang · Xatolar, kirish,navbatlar va disknimonitoring qiling · Mustaqil tekshiruvnuqtalarini saqlabqolish · Materialni eksportqiling va tekshiring **Diagramma matn sifatida** 1. Saqlash va kalitni himoya qilishni tanlang → O'z tokeni bilan panelni oching 2. O'z tokeni bilan panelni oching → Ish maydonini tanlang 3. Ish maydonini tanlang → To'g'ridan-to'g'ri yoki proxy yo'nalishini sozlang 4. To'g'ridan-to'g'ri yoki proxy yo'nalishini sozlang → Telefon raqamini kiriting yoki fayllarni / QRni tanlang 5. Telefon raqamini kiriting yoki fayllarni / QRni tanlang → Hisob identifikatsiyasini tekshiring va kirish mumkin bo'lgan guruhlarni tanlang 6. Hisob identifikatsiyasini tekshiring va kirish mumkin bo'lgan guruhlarni tanlang → Voqea va ilovalar siyosatini saqlang, so'ng kuzatuvni boshlang 7. Voqea va ilovalar siyosatini saqlang, so'ng kuzatuvni boshlang → Xatolar, kirish, navbatlar va diskni monitoring qiling 8. Xatolar, kirish, navbatlar va diskni monitoring qiling → Mustaqil tekshiruv nuqtalarini saqlab qolish 9. Mustaqil tekshiruv nuqtalarini saqlab qolish → Materialni eksport qiling va tekshiring Avtorizatsiya, transport ulanishi, guruhga kirish va yetkazib berish to'liqligi turli xususiyatlardir. Yashil ulanish holati barcha voqealar qayd etilganini anglatmaydi. ## Asosiy kalitni ulashmasdan ishni ulashing Ochiq **kirish** tahlilchi yoki ko'rib chiquvchiga o'z tokenini berish imkonini beradi. Ular ochishi mumkin bo'lgan hisoblar va suhbatlarni tanlang, so'ngra ko'rish, eksport qilish yoki operativ harakatlarni amalga oshirishga ruxsat bering. Yig'ishni boshlaydigan/to'xtatadigan operatorga butun ish maydoni bo'yicha kirish huquqi kerak; ko'rib chiquvchi esa bitta suhbat bilan cheklanishi mumkin. Sessiya cheklovlari, amal qilish muddati va IP-manzil qoidalari Telegram hisobini avtorizatsiya qilishdan alohida. [Kirish huquqlari va ruxsatnomalarni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) ko'ring. **Open sessions** ulanishni yakunlash yoki uning barcha sessiyalariga kirishni bekor qilish uchun ishlatiladi. Administrator konsoli ish maydonlari bo'ylab joriy jarayon faoliyatini birlashtiradi. Sessiyani yopish ma'lumotlarni yig'ishni davom ettiradi. ## Ijro rejimlari | Rejim | Harakat | Xulq-atvor | | --- | --- | --- | | Demo | scripts\Demo.cmd yoki `--demo` | Sintetik ma'lumot; haqiqiy akkauntlar o'rtasidagi bog'lanishlar o'chirib qo'yilgan | | Kuzatuv | Kuzatuvni boshlang | Tanlangan manbalar uchun yetkazilgan yangilanishlarni qayd eting | | Tarixning tezkor ko'rinishi | Manbalar → tarixning snapshoti | Joriy 500 tagacha xabar; barcha avvalgi o'zgarishlarni qayta tiklash yo'q | | Tanaffus | Kuzatuvni to'xtatish | To'plashni to'xtating, ma'lumotlar va navbatdagi ishlarni saqlab qolgan holda | | Ko'rib chiqish/topshirish | Eksportlar | ZIP, JSONL/CSV/HTML, tekshiruv nuqtasi, jarayon kvitasi va vaqt tamg'asi so'rovi | | Bir nechta hisoblar | Ish maydonchalari yoki yuqoridagi **+** tugmasi | Bir jarayonda istalgan sonli alohida ish maydonchalari | Mahalliy demo kirish qo'lda token kiritmasdan avtomatik ochiladi. U izolyatsiyalangan sintetik demo uchun to'g'ridan-to'g'ri loopback-kirishga haqiqiy bo'lgan, jarayon umrboqiyligi imkoniyatidan foydalanadi; asosiy panel tokeni oshkor etilmaydi. Haqiqiy ish maydonchalari va masofaviy yoki proksi orqali demo kirish token autentifikatsiyasini saqlab qoladi. Demo kirish Telegramga ruxsat bermaydi. ## Monitoring toifalari ![Har bir hisob uchun monitoring sozlamalari sun'iy manba ma'lumotlari bilan](https://phishdestroy.github.io/TgWitness/assets/sources.png) **Manbalar → Yozib olish → Qaysi o'zgarishlarni saqlashni tanlash** bo'limida yangi xabarlar, tahrirlar, o'chirish bildirishnomalari, reaktsiya yangilanishlari va a'zolik voqealarini alohida tanlang. Standart sozlama barcha toifalarni saqlaydi. **Xabarlar, tahrirlar va o'chirishlar** asl kontekstni saqlaydi, ammo alohida reaktsiya/a'zo yangilanishlarini o'chiradi. **Barcha ko'rinadigan faoliyat** beshala toifani tiklaydi. Oldindan o'rnatmalar shaklni o'zgartiradi; qo'llash uchun **Yozib olish sozlamalarini saqlash tugmasini** bosing. Saqlangan siyosat shu ish maydonidagi barcha tanlangan manbalarga tatbiq etiladi. Boshqa ish maydonchalari o'z sozlamalarini saqlab qoladi. Har bir haqiqiy o'zgarish imzolangan oldingi/keyingi qiymatlarni qayd etadi; joriy siyosat jarayon kvitansiyalari va kuzatuv boshlanishi yozuvlariga ham kiritilgan. Toifani o'chirish oldingi kuzatuvlarni o'chirib tashlamaydi. Uni qayta yoqish o'tkazib yuborilgan o'zgarishlarni qaytarib bermaydi. Ushbu versiyada guruh bo'yicha kategoriyani ustuvor qilish imkoniyati mavjud emas. Avvalgi kontent muhim bo'lganda yangi xabarlarni yoqib qo'ying: o'chirish bildirishnomasi hech qachon qayd etilmagan matnni qaytarib berolmaydi. Operatsion/qamrov yozuvlari va boshqa guruh xizmat voqealari har doim saqlanadi. Aniq tarix snopshotlari jonli-kategoriya tanlovidan alohida bo'lib, xizmat xabarlari ham bo'lishi mumkin. Ushbu kalitlar aks holda qayd etilgan Telegram ob'ektiga kiritilgan reaktsiya/a'zo metama'lumotlarini o'chirib tashlamaydi. Tarix snappoti to'xtatilganda ilovalarni navbatga qo'yishi mumkin. Ularni qayta ishlash uchun kuzatuvni boshlang. Navbatga qo'yilgan bo'lish yuklab olingan degani emas. Mavjud bo'lmagan asl fayl yangi tahrirlangan versiya bilan almashtirilmaydi; natijalar alohida qayd etiladi. **Lock** brauzerga kirishni va maxfiy maydonlarni tozalaydi, lekin yig'ishni ishga tushgan holda qoldiradi. Vozkechishni yopish ham jarayonni ishga tushgan holda qoldiradi. Python jarayonini yoki xizmatini to'xtatish brauzer holatidan qat'i nazar yig'ishni to'xtatadi. Qo'shimcha ish maydonini o'chirish uning yig'uvchisini to'xtatadi va mahalliy ma'lumotlarini o'chirib tashlaydi. Agar qulflangan fayl yoki fayl tizimi xatosi o'chirishni to'xtatsa, panel xatolikni bildiradi va ish maydonini mavjud emas (`DeletionPending`) deb ko'rsatadi. Uning fayllarini ushlab turgan dasturlarni yoping va **O'chirishni** qayta sinab ko'ring. TgWitness-ni qayta ishga tushirish ushbu ish maydonini to'xtatilgan holda qoldiradi va uning qisman o'chirilgan jurnali yoki kalitlarini qayta yaratmaydi. Muvaffaqiyatli o'chirish faqat katalog o'chirib tashlangandan keyin qayd etiladi; alohida eksport qilingan yoki zaxiralangan nusxalar o'z saqlash siyosatiga bo'ysunadi. ## Bildirishnomalar **Qo'shimchalar → Bildirishnomalar → Sozlashni** oching. TgWitness Matrix, Telegram, Discord, Slack, ntfy, elektron pochta va boshqa qo'llab-quvvatlanadigan xizmatlarga ogohlantirishlar yuborish uchun Apprise-dan foydalanadi. Bir ish maydoniga bir nechta manzilni qo'shishingiz mumkin. 1. Har bir satrga bitta Apprise manzil URL-ni kiriting. Xizmatingiz uchun [xizmat katalogi va URL formatlaridan](https://appriseit.com/services/) foydalaning. 2. **Xabar yuborishni** yoqing, so'ng muammo bildirishnomalarini, kuzatilayotgan suhbatlardagi o'zgarishlarni va kunlik xulosani tanlang. Xulosa soati server vaqtiga asoslanadi. 3. Agar o'chirib tashlangan va tahrirlangan xabarlardan saqlangan matnni bildirishnomalarda ko'rsatishni istasangiz, **"Qisqa parchalarni kiritish"**ni yoqing. 4. **Bildirishnomalarni saqlash tugmasini** bosing, so'ngra yetkazilishini tekshirish uchun **test yuboring**. O'zingizning qabul qiluvchingiz uchun Apprise'ning [JSON webhook'idan](https://appriseit.com/services/json/) foydalaning. Masalan, `jsons://notify.example.org/tgwitness` JSON'ni HTTPS orqali shu manzilga yuboradi. Bu badiiy misol; uni o'zingizning manzilingiz bilan almashtiring. Manzillar va sozlamalar tanlangan ish maydoniga tegishli. Ogohlantirishlar uning kuzatilayotgan manbalarini, jumladan yangi qo'shilgan suhbatlarni ham qamrab oladi. Yuqori panelidagi qo'ng'iroq ham so'nggi muammolar va suhbat o'zgarishlarini ro'yxatlaydi. Demo rejimida bildirishnoma boshqaruvlari ko'rinadi, ammo yuborish funksiyasi o'chirilgan. Haqiqiy ish muhitida yetkazib berishni sozlang. Bildirishnomalar o'sha ish muhitining Direct, SOCKS5 yoki HTTP yo'nalishidan foydalanadi; MTProxy ularni yetkazib bera olmaydi. SMTP kabi HTTP bo'lmagan manzillar to'g'ridan-to'g'ri yo'nalishni talab qiladi. ## Panel tartibi ![Sun'iy ma'lumotlardan foydalangan holda ulanish ish maydoni](https://phishdestroy.github.io/TgWitness/assets/connection.png) **Jurnal** kuzatuvlar, qidiruv va filtrlarni ko'rsatadi. Tahrir ushlangan versiyalarni ochadi; o'chirish mavjud bo'lsa, oldingi kontentni ochadi. Noma'lum atribut aniq ko'rsatiladi. Hisoblar **Umumiy ko'rinish** bo'limida mavjud; olish tafsilotlari mahalliy qo'llanmada qoladi. Tahrirlangan xabarning versiyalarini **Matndagi o‘zgarishlar** yoki **Yonma-yon** yordamida solishtirish uchun uni oching; **Xom ma’lumotlar** saqlangan maydonlarni ko‘rsatadi. Yashirin havolalar va bot tugmalaridagi o‘zgarishlar alohida ko‘rinadi. Saqlangan rasm, audio yoki videolarni ko‘zdan kechirish uchun biriktirma ko‘rinishini oching; yuklab olish tugmasi saqlangan asl nusxadan foydalanish imkonini beradi. **Live** yozuvlar kelib tushishi bilan jurnal va chatlarni yangilab boradi. Ko‘rib chiqish vaqtida uni pauza qiling yoki tayyor bo‘lganingizda yangi hodisalar tugmasidan foydalaning; ma’lumotlarni yig‘ish davom etaveradi. **Ctrl/Cmd+K** panel amallarini topadi va jurnal bo‘ylab qidiradi. **Manbalar** kuzatuv doirasini (tanlangan suhbatlar, Telegram papkasi yoki butun akun), har qanday turdagi mavjud suhbatlarni, ustuvor yulduzchali tanlangan manbalarni, ilova va qayta tekshirish sozlamalari hamda tarix snopshotlarini o'z ichiga oladi. Xususiy manbalar dialog/ID orqali tanlanadi, ommaviy havola yo'q. Kirish holati eng so'nggi tekshiruvni tasvirlaydi, doimiy ruxsatnomalarni emas. Manbalarni filtrlang, ularning katakchalarini belgilang, so‘ngra ularni birgalikda yoqing, pauza qiling yoki ustuvor sifatida belgilang. Mavjud chatlar ro‘yxatida **Tanlanganlarni qo‘shish** sizning tanlovingizdan foydalanadi; **Barcha mos natijalarni qo‘shish** esa joriy qidiruv va tur filtridan foydalanadi. **Suhbatlar →** Saqlangan xabarlari bo'lgan barcha **odamlarni** ro'yxatlaydi; suhbat uchun odam profillari yoqilganda, ustiga bosish shu shaxsning profilini jurnal yozuvlari havolalari bilan ochadi. **Witness** o'qish uchun mo'ljallangan witness tokenlarini yaratadi, har bir witness oxirgi marta qachon tekshirilganini ko'rsatadi va bittasini ([mustaqil witness](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/)) ishga tushirish uchun buyruqlar hamda parametrlarni taqdim etadi. **Parametrlar** ish maydonining boshqa sahifada ko'rsatilmagan barcha chegaralari va tezligini belgilaydi: qancha dialog o'qilgani, suhbatlar ro'yxati qanchalik tez-tez qayta o'qilishi, yurak urishi va tekshirish nuqtalari oralig'i, ishga tushirish buferi, qayta tekshirishlar so'rovlarini qanday tarqatishi (birinchi kechikish, suhbatlar per pass, suhbatlar orasidagi tanaffus, tiklangan va qayta so'ralgan xabarlar), disk rezervi, yuklab olishlarning vaqt chegaralari va qayta urinishlari, odamlar profillarida qidiriladigan narsalar (shu jumladan sizning o'zingizning odatiy ifodalaringiz), bildirishnomalarning hajmi va tezligi, snapshot, ZIP va brauzerdan yuklab olish limitlari, hamda Telegram klientining vaqt chegaralari va qayta urinishlari. Har bir maydon o'z diapazonini va standart qiymatini ko'rsatadi; o'zgartirilgan maydonlar belgilanadi va ularni bittadan yoki barchasini birgalikda tiklash mumkin. Har bir o'zgarish `parameters.changed` sifatida, oldingi va keyingi qiymatlar bilan qayd etiladi, va kuzatuv boshlanishi yozuvlari amalda bo'lgan qiymatlarni belgilaydi. Qiymatlar keyingi marta ishlatilganda kuchga kiradi; klient vaqt chegaralari va qayta urinishlar esa keyingi ulanishdan boshlab amal qiladi. Qayta tekshirish oraliklarini, ilova turlari va hajmlari, dalillar hamda tashqi nusxa olish oraliklarini o'z sahifalarida ko'rish mumkin bo'lib, ular faqat oldindan belgilangan qiymatlar bilan cheklanmay, o'z diapazonidagi istalgan qiymatni qabul qiladi. Yuqori panelidagi qo'ng'iroq kuzatilgan suhbatlardagi so'nggi muammolar va o'zgarishlarni ko'rsatadi; o'qilmagan xabarlar o'qilgan deb belgilanmaguncha hisoblanadi. O'zgarishlar har bir suhbat va soat bo'yicha guruhlanadi ("12 tasi o'chirilgan, 1 tasi tahrirlangan, 0 tasi topilmagan"), va tizimdan chiqish yoki disk to'la kabi muammolar, suhbatlar qanchalik band bo'lmasin, ro'yxatda qoladi. **Hisob** telefon raqami maydonidan boshlanadi. **Davom ettirish** to'g'ridan-to'g'ri kod kiritishga olib boradi, API ma'lumotlarini faqat ular yetishmayotganida so'raydi. QR va fayl importi alohida yorliqlar. Saqlangan API ma'lumotlari faqat o'z ish maydonida qayta ishlatiladi. Kirish ekrani yon panel, statistika yoki sozlash paragraflariga ega emas. **Sozlamalar** ikonkasi API, proksi, saqlash va qo'shimcha hisoblar boshqaruvini ochadi. Yangi o'rnatishlar shu yerdan boshlanadi; manba tanlanmagan ulangan hisoblar **"Suhbatlarni tanlash**" bo'limidan boshlanadi. Yo'nalishni o'zgartirish kuzatuvni to'xtatishni talab qiladi va yakunlanmagan tizimga kirishni bekor qiladi. Mavjud jurnalni sukut bo'yicha boshqa Telegram hisobiga bog'lash mumkin emas. **Eksport** jurnalning yaxlitligini tekshiradi va ko'chma fayllarni yaratadi. Uning ish maydoni ID'si yuklab olish CLI'ga uzatilishi mumkin. Har bir eksport to'liq jurnal prefiksini belgilaydi; keyingi voqealar keyingi eksportga kiritiladi. Qidiruv filtrlari paket doirasini o'zgartirmaydi. Imzolash va qamrov bo'yicha batafsil ma'lumot **Tekshiruv va cheklovlar** bo'limida keltirilgan. Panel Collector **holati** bo'limida yuklanish holatini, navbatga qo'yilgan/muvaffaqiyatsiz bo'lgan media fayllarni, eng qadimgi kutayotgan media faylni, bo'sh disk joyini, so'rov to'xtatishlarini va tasdiqlanmagan kirish huquqiga ega manbalarni ko'rsatadi. Ushbu ma'lumotlar dastlab siqilgan va Hisob sahifasida yashirilgan. Sozlash kartasi keyingi bosqichni ko'rsatadi: hisobni ulash, manbalarni tanlash yoki kuzatuvni boshlash. Hisoblar ro'yxati yuklanish vaqtidagi snapshot; tanlangan ish maydoni muntazam ravishda yangilanadi. Bu ko'p jarayonli SLA monitori emas. Foydalanuvchi interfeysi manba kontenti uchun mahalliy resurslar va matnni renderlashdan foydalanadi. Stol usti va tor Chromium maketlari sinovdan o'tkazilgan. Bu to'liq kirish imkoniyati sertifikati emas; ekran o'qiydigan dastur va inson foydalanuvchiligi baholash alohida ish bo'lib qoladi. ## Joylashtirish muhitlari | Muhit | O'rnatish | Verifikatsiya holati | | --- | --- | --- | | Windows shaxsiy kompyuter/server | Python 3.11+, scripts\Setup.cmd/Start.cmd, shaxsiy ma'lumotlar katalogi | Windows/Python 3.12 da mahalliy tekshirildi | | Linux server/VPS | Python virtual muhiti, maxsus xizmat foydalanuvchisi, HTTPS/SSH | Kod, CI va systemd misoli keltirilgan; ushbu hostda ijro etilmagan | | macOS | Python virtual muhit (venv), old plandagi jarayon yoki foydalanuvchi agenti | launchd misoli keltirilgan; alohida o'rnatishni tekshirish zarur | | Docker/Compose | Doimiy hajm, bitta ishchi | Ta'rif va CI ish vaqti tekshiruvi taqdim etilgan; Docker mahalliyda mavjud emas | | Telefon brauzeri | Ishlayotgan serverdagi himoyalangan paneldan ulaning | Toraytirilgan Chromium maketi sinovdan o'tkazildi; to'plovchi iOS/Androidda ishlamaydi | Ko'chma bo'lish – majburiy bulut xizmati yoki frontend qurilmasini talab qilmaslikni anglatadi. Har bir maqsad hanuz mos Python/kripto bog'liqliklarga, mahalliy disk va tarmoqqa kirish huquqiga ega bo'lishi kerak. Qarang: [DEPLOYMENT.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) va [xizmat shablonlari](https://github.com/phishdestroy/TgWitness/blob/main/deploy/README.md). Ish maydonchalari CPU, xotira va voqealar tsiklini baham ko'radi. Jarayonlarni izolyatsiya qilish uchun alohida instantsiyalar, portlar, ma'lumotlar kataloglari va hisob ma'lumotlari ruxsatnomalaridan foydalaning. Alohida instantsiyalar bo'yicha yagona boshqaruv paneli mavjud emas. Bir nechta ishchi dasturini bitta ma'lumotlar bazasiga yo'naltirmang. ## Yozuvlarni tekshirish va eksport qilish Tayyor muhitni ishga tushirishdan oldin `python start.py --check` ni ishga tushiring. Mashina o'qiy oladigan tekshiruvlar uchun `--json` ni qo'shing yoki mo'ljallangan `--data-dir`, `--host` va `--port` ni o'tkazing. Komanda Telegramga kirish yoki jurnal yaratishni talab qilmay, oldindan bajarilishi kerak bo'lgan shartlarni tekshiradi. U jurnalni tasdiqlamaydi yoki ma'lumotlarni ushlashga tayyorligini isbotlamaydi; jurnalni tasdiqlash dastur ishga tushirilganda bajariladi. Band port oddiygina mavjud instantsiya bo'lishi mumkin. File System Access API-ni qo'llab-quvvatlaydigan brauzerlar eksportlarni yozib bo'ladigan oqim orqali saqlaydi. Boshqa brauzerlar esa buferga ko'pi bilan 128 MiB ma'lumotni joylaydi. Katta hajmdagi eksportlar yoki fayl oqimini qo'llab-quvvatlamaydigan brauzerlar uchun streaming CLI-dan foydalaning: ``` python -m tgwitness.download --token-file data/live/panel-token.txt --out evidence.zip ``` Bolalik ish maydoni uchun Exports bo'limidan `--profile ID` ni qo'shing. Masofaviy kirish uchun `--url https://server` ni ishlating. Oddiy HTTP faqat loopback manzillari uchun qabul qilinadi. Token fayldan o'qilib, sarlavhada yuboriladi, chop etilmaydi yoki URLga kiritilmaydi. Yo'naltirishlar rad etiladi. Mavjud manzillar ustiga yozilmaydi. Muvaffaqiyatsiz transferlar o'zlarining vaqtinchalik qism faylini o'chirib tashlaydi. Xabar qilingan SHA-256 transfer tekshiruv yig'indisi hisoblanadi; imzolangan ZIP-ni alohida ishonchli barmoq izi/nazorat nuqtasi yordamida tekshiring. ## Zaxira, tiklash va uzilishlar 1. Kuzatuvni to'xtating va jarayonni toza to'xtating. 2. Butun ma'lumotlar katalogini nusxalash: ma'lumotlar bazalari, mavjud bo'lsa WAL/SHM, media, `credentials.enc`, `signing.enc`, `network.enc`, xazina kalitlari/metamalg'olari, token, nazorat nuqtalari va har bir `profiles/` katalogi. 3. Tashqi kalit rejimida bosh kalitni alohida saqlang va har bir `vault.external.json`ni saqlab qo'ying. Yangi kalit yaratish eski sirlarni tiklashga imkon bermaydi. 4. Maqsad to'xtatilgan paytda tiklang; asl kalitni sozlang, kirishni cheklang va davom ettirishdan oldin yaxlitlikni tekshiring. 5. To'xtash vaqtini va tasdiqlash natijalarini qayd eting. Tarixning snapshoti uzilish davomida hech qanday o'chirish bo'lmagani haqida dalil bo'la olmaydi. Dalil ZIP-fayllari sessiyalar/maxfiy kalitlarni o'z ichiga olmaydi va to'liq xizmat zaxira nusxalari emas. To'rt narsa boshqacha tarzda himoyalanadi: | Nima | Himoya | | --- | --- | | Parolsiz (defolt) fayllarni eksport qiling | Shifrlanmagan. Imzolangan, shuning uchun o'zgartirishlar aniqlanadi, lekin faylni saqlaydigan har kim uni o'qishi mumkin. | | Parol bilan fayllarni eksport qiling | Agar parol o'rnatilsa, tayyor eksport o'zgarmas holda 7-Zip va WinRAR ochadigan WinZip AES-256 ZIP arxiviga joylanadi; parol saqlanmaydi ([dalillar bilan ishlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/)) | | Jurnal ma'lumotlar bazasi va diskka saqlangan ilovalar | TgWitness tomonidan shifrlanmagan; shifrlangan disk yoki hajmdan foydalaning | | Telegram sessiyalari va imzolash kalitlari | Ma'lumotlar katalogida shifrlangan (`credentials.enc`, `signing.enc`, `network.enc`) | To'liq xizmat zaxira nusxasi — bu yuqorida tasvirlangan to'xtatilgan ma'lumotlar katalogi bo'lib, eksport emas. Har ikkala holat uchun himoyalangan saqlash joyidan va aniq o'tkazish mexanizmidan foydalaning. Vaqtinchalik server eksportlari har bir ish maydonining `temporary-exports/` katalogida saqlanadi; yakunlangan javoblar tozalanadi, va uzilgan eksport fayllari keyingi ishga tushirishda, o'sha ish maydoni instantsiya qulfi ushlab turilgan paytda o'chiriladi. Ulanish tiklangan voqea oraliq o'zgarishlarning tiklanishini kafolatlamaydi. Doimiy media ishlar va Telegram yangilanish pozitsiyasi qayta ishga tushirishdan keyin saqlanib qoladi; [dalil formatiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#durable-collection-and-process-receipts-02) qarang. ## Quvvat va saqlash muddati Standart cheklovlar, barchasi **Parametrlar** bo'limida o'zgartirilishi mumkin: birinchi 1 000 dialog, har bir snapshot uchun 500 xabar, siqilmagan imzolangan ZIP kontenti uchun 4 GiB (katta arxivlar uchun `verify.py --max-gib N` kerak) va brauzer uchun 128 MiB zaxira. Ilovalar **Manbalar → Ilovalar** bo'limida har bir tur uchun 1–2 000 MiB joy egallaydi. Yuklab olish CLI bo'yicha 5 GiB o'tkaziladi. Mavjud disk hajmi pastroq limit bo'lishi mumkin. Jurnal, media, WAL, vaqtinchalik eksportlar va zaxira nusxalar uchun joy ajrating. Eksportlar Compose'ning 512 MiB hajmli `/tmp` o'rniga ma'lumot hajmidan foydalanadi. Faqat guruhlarni sanash o'rniga sekuntiga sodir bo'ladigan voqealar soni, navbatning yoshi, media baytlari va disk kechikishini o'lchang. Sintetik mahalliy benchmarklar Telegram xabarlarining yetkazilishini kafolatlamaydi. Avtomatik saqlash va o'chirish mavjud emas. Jurnal oxirini o'chirish uning saqlangan tekshirish nuqtalari bilan bog'liqligini bekor qiladi. Ustuvor qayta tekshirishlar allaqachon mavjud: yulduzchali manbalar standart bo'yicha har 15 daqiqada, boshqalar esa har 6 soatda qayta tekshiriladi ([qayta tekshirish bosqichlariga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#recheck-tiers) qarang). Parol bilan himoyalangan eksportlar yuqorida ta'riflanganidek mavjud. Telegram/proxy jonli qabul qilish, bardoshli qayta ijro etish, admin-log va reaksiya so'rovnomalari, izolyatsiyalangan ishchilar, mahalliy jurnal va media shifrlashi hamda mustaqil ko'rib chiqish alohida ish bo'lib qoladi. Cheklangan kirish huquqi [access va permissions](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) hujjatlarida bayon etilgan. [READINESS.md](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/READINESS.md), [LIVE_ACCEPTANCE.md](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md) va [VERIFICATION.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) hujjatlariga qarang. --- # Telegram · Tergov rejimi Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/ Kanal, guruh, shaxsiy suhbatlar va botlar bo'ylab butun hisob tekshiruvlari, dastlabki doiradan tasdiqlangan ish paketigacha. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Kanal, guruh, shaxsiy suhbatlar va botlar bo'ylab butun hisob tekshiruvlari, dastlabki doiradan tasdiqlangan ish paketigacha. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) ![Tergov](https://phishdestroy.github.io/TgWitness/assets/chapter-investigate.svg) Bir ishni kanallar, guruhlar, shaxsiy suhbatlar va botlar bo'ylab dastlabki olishdan tortib, keltirilgan vaqt chizig'i va tasdiqlanadigan topshirishgacha kuzatib boring. Interaktiv veb-sayt versiyasi `/docs/cases/` manzilida; [ko'rinishni oldindan ko'rish bo'yicha ko'rsatmalar](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/PUBLISHING.md#preview-the-website-locally). **Ushbu sahifada** - [Ish holati: manzil to'rtta suhbat davomida o'zgaradi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#worked-case-a-destination-changes-across-four-conversations) - [1. Holatni aniqlang va to'liq hisobotni to'plang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#1-define-the-case-and-collect-the-whole-account) - [2. Har bir manbani inventarizatsiya qiling va tarixiy kontekstni oling](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#2-inventory-every-source-and-acquire-historical-context) - [3. Rivojlanayotgan holat va ataylab o'tkazilgan o'zaro ta'sirlarni saqlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#3-preserve-the-evolving-case-and-deliberate-interactions) - [4. Suhbatlar bo'ylab kuzatuvlarni bog'lash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#4-connect-observations-across-chats) - [5. Sohbetlararo vaqt chizig'ini tuzing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#5-build-the-cross-chat-timeline) - [6. Hisob nuqtai nazarlarini ularning kelib chiqishini yo'qotmasdan qo'shish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#6-add-account-perspectives-without-losing-their-origin) - [7. Ishni topshirishni yig'ish va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#7-assemble-and-verify-the-case-handoff) - [Tergovni moslashtiring](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/#adapt-the-investigation) ## Tahlil qilingan holat: manzil to'rtta suhbat davomida o'zgargan E'lon botga yo'naltiradi. Operatsiyalar guruhi yangi to'lov manzilini muhokama qiladi va botning klaviaturasi uni ko'rsatadi. E'lon tahrirlanadi, maxfiy keyingi xabar manzilni takrorlaydi va guruh xabari yo'qoladi. Savollar quyidagilar: o'zgarishdan oldin va keyin nima kuzatilgan, Telegram akkauntlaridan qaysi biri har bir elementni joylagan, manzil qayerda paydo bo'lgan, qaysi ilova baytlari saqlangan va qaysi oraliklar noma'lum bo'lib qolmoqda? Ushbu misoldagi barcha ismlar, identifikatorlar, vaqtlar va jurnal havolalari badiiydir. Ish jarayoni joriy xususiyatlardan foydalanadi; ish holati xaritasi esa ilova tomonidan avtomatik yaratilgan grafik emas, balki illyustratsiyadir. Oqim sxemasi · Kanal → Ish maydoni jurnali; Guruhlar → Ish maydoni jurnali; Shaxsiy suhbatlar → Ish maydoni jurnali; Botlar → Ish maydoni jurnali; Ish maydoni jurnali → Barcha manbalarni qidiring; Ish maydoni jurnali → Yozuv referensiyalari bilan odamlar profillari; Ish maydoni jurnali → Saqlangan versiyalar va ilova kvitansiyalari; Barcha manbalarni qidiring → Tahlilchi vaqt chizig'i va manba ro'yxati; Yozuv referensiyalari bilan odamlar profillari → Tahlilchi vaqt chizig'i va manba ro'yxati; Saqlangan versiyalar va ilova kvitansiyalari → Tahlilchi vaqt chizig'i va manba ro'yxati; Ish maydoni jurnali → Imzolangan dalillar ZIP; Tahlilchi vaqt chizig'i va manba ro'yxati → Holatni alohida tasdiqlangan artefaktlar bilan topshirish; Imzolangan dalillar ZIP → Holatni alohida tasdiqlangan artefaktlar bilan topshirish · Kanal · Guruhlar · Shaxsiy suhbatlar · Botlar · Ish maydoni jurnali · Barcha manbalarni qidiring · Yozuv referensiyalaribilan odamlar profillari · Saqlangan versiyalar vailova kvitansiyalari · Imzolangan dalillar ZIP · Tahlilchi vaqt chizig'i vamanba ro'yxati · Holatni alohidatasdiqlangan artefaktlarbilan topshirish **Diagramma matn sifatida** 1. Kanal → Ish maydoni jurnali 2. Guruhlar → Ish maydoni jurnali 3. Shaxsiy suhbatlar → Ish maydoni jurnali 4. Botlar → Ish maydoni jurnali 5. Ish maydoni jurnali → Barcha manbalarni qidiring 6. Ish maydoni jurnali → Yozuv referensiyalari bilan odamlar profillari 7. Ish maydoni jurnali → Saqlangan versiyalar va ilova kvitansiyalari 8. Barcha manbalarni qidiring → Tahlilchi vaqt chizig'i va manba ro'yxati 9. Yozuv referensiyalari bilan odamlar profillari → Tahlilchi vaqt chizig'i va manba ro'yxati 10. Saqlangan versiyalar va ilova kvitansiyalari → Tahlilchi vaqt chizig'i va manba ro'yxati 11. Ish maydoni jurnali → Imzolangan dalillar ZIP 12. Tahlilchi vaqt chizig'i va manba ro'yxati → Holatni alohida tasdiqlangan artefaktlar bilan topshirish 13. Imzolangan dalillar ZIP → Holatni alohida tasdiqlangan artefaktlar bilan topshirish ## 1. Holatni aniqlang va butun hisobotni to'plang 1. Yig'ish hisobini o'z ish maydonida bog'lang. [Case Board](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/) yoki ish yurituv reyestringizda ish referensiyasi, hisob ID, ish maydoni va kuzatuv boshlanishini qayd eting. Ishonchli imzolash kalitining barmoq izini mustaqil saqlang. 2. Maxsus yig'ish hisobvarag'i uchun **Manbalar → Kuzatuv doirasi → Tergov rejimini** oching. Oldindan sozlama **butun hisobvarag'**, kanallar/guruhlar/shaxsiy suhbatlar/botlar, o'z harakatlari, manba profillari va yangi topilgan manbalar uchun so'nggi 200 ta ko'rinadigan xabarni tanlaydi. Uni ko'rib chiqing, **"Domenni saqlash**" **tugmasini** bosing va domenni tasdiqlashni yakunlang. Asosiy hisoblar tanlangan suhbatlar yoki papkani ishlatadi; butun hisob bo'yicha yig'ish tergov uchun belgilangan hisoblarga mavjud. 3. **Suhbatlarni yuklang** va manbalarni hisobning dialog ro'yxati bilan solishtiring. Istisnolarni tekshiring. **Parametrlar → Hisob ro'yxatidan o'qilgan suhbatlar**bo'yicha standart qiymat 1 000 ga teng va 20 000 gacha ruxsat etiladi. Ro'yxat chegarasidan oshgan manbalar ular faollashganda qo'shiladi. Haqiqatan qaysi manbalar sanab o'tilganini qayd eting. 4. **Yozib olish sozlamalar**ida "**Barcha ko'rinadigan faoliyat**"ni tanlang va monitoring sozlamalarini saqlang. Ilova turlari/cheklovlarini hamda bo'sh disk joyini ko'rib chiqing. 5. Kuzatuvni boshlang. Nazorat ostidagi yangi xabar, tahrir va o'chirishni tasdiqlang, so'ngra test ma'lumotlarini va har qanday xatolarni saqlab qo'ying. Butun hisob doirasi saqlangan sozlamalar doirasida hisobda ko'rinadigan faoliyatni qayd etadi. U maxfiy suhbatlarga kira olmaydi yoki har bir bog'langan guruhga avtomatik qo'shilmaydi. Shuningdek, u mavjud bo'lgan barcha suhbatlarni to'ldirmaydi. [Qayd etish doirasini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#observation-scope-chosen-chats-a-folder-or-the-whole-account) ko'ring. ## 2. Har bir manbani ro'yxatlab, uning tarixiy kontekstini aniqlang Har bir suhbat uchun alohida qator bilan manba ro'yxatini saqlang: | Maydon | Yozib qo'ying | | --- | --- | | Shaxsiyat | Ish maydoni, hisob ID, raqamli chat ID, sarlavha va tur | | Ko'rinish | A'zolik/rol, kirish tasdiqlangan yoki tasdiqlanmagan, istisnolar | | Jonli yozib olish | Boshlanish vaqti, tanlangan voqea turlari va keyingi siyosat o'zgarishlari | | Jurnal tarixi | Snapshot so'raldi/tayyorlandi, cheklov, vaqt va yozuv referenslari | | To'liq tarix | Har bir suhbat bo'yicha eksport fayl nomi, chegarasi va yakunlanishi/muvaffaqiyatsizligi | | Ilovalar | Yakunlangan media kvitansiyalari, xeshlar, hajmlari hamda o'tkazib yuborilgan/muvaffaqiyatsiz natijalar | | Qamrov | To'xtashlar, to'liq bo'lmagan qabul qilish, FloodWait, mavjud bo'lmagan xabarlar va boshqa bo'shliqlar | Har bir manba uchun to'g'ri olish usulini qo'llang: - **Manbalar** bo'limida **to'liq tarixni yuklash** yoqilgan manbalardan mavjud bo'lgan avvalgi xabarlarni ish maydoni jurnaliga yuklaydi. U pauza/davom ettirishni va imzolangan progress hisobotini qo'llab-quvvatlaydi. [Tarixni olish bo'limiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/history/) qarang. - **History snapshot** yaqinda ko'rinadigan so'nggi xabarlarni kuzatuv jurnaliga saqlaydi. Uning standart maksimal qiymati 500; **Parametrlar → Eng katta history snapshot** buni 10 000 gacha oshirishi mumkin. Bu joriy tarix kuzatuvlari bo'lib, qayta tiklangan tahrirlar emas. - **To'liq suhbat eksporti → To'liq suhbatni** yoki **Suhbatlar → Suhbatni eksport qilish** hozirda ko'rinadigan bitta suhbat tarixini alohida imzolangan `chat.json`/`chat.html` paketiga oladi. Ish manbalari bo'yicha takrorlang va har bir natijani saqlang. - **Yangi chat yoki bot paydo bo'lganda**uning profilini va so'nggi 1 000 tagacha xabarni saqlash mumkin; tekshiruv rejimi 200 tasini tanlaydi. Mavjud chatlarga bu retroaktiv tarzda qo'llanilmaydi, agar rejim yoqilganda. - **Ko'rinadigan ilovalarni yuklab olish** sozlangan siyosat bo'yicha baytlarni saqlab qoladi. SHA-256 va bayt soni bilan to'ldirilgan `media.saved` kvitansiyasi talab etiladi. Navbatga qo'yilgan topshiriq, kichik rasm yoki fayl nomi saqlangan ilova hisoblanmaydi. To'liq chat eksporti jurnalni yoki odamlar profilini barcha xabarlar bilan to'ldirmaydi. TgWitness ichida tahlil qilmoqchi bo'lgan tarix uchun **"To'liq tarixni yuklash**" yoki "Cheklangan jurnal snapshotlari"dan foydalaning. Tarixni ishga tushirishdan oldin yoqilgan manba ro'yxatini tekshiring. Hech bir usul Telegram endi qaytarmaydigan materialni tiklamaydi. ## 3. Rivojlanayotgan ish holatini va ataylab yuritilgan o'zaro munosabatlarni saqlash Yulduzcha bilan belgilangan faol ish suhbatlari ustuvor manba sifatida. Tekshirish va qayta tekshirish oralig'ini, davom etayotgan to'ldirish va media natijalarini ko'rib chiqing. Hisobdan foydalanganda to'plovchini kuzatishda davom ettiring. **Suhbatlar → Profil → Profilni hozir saqlashni** ishlating, manba metama'lumotlarini, masalan ta'riflar va bot buyruqlarini saqlash uchun. Bu saqlangan xabarlardan olingan odamlar profilidan alohida. Agar ish manbani kuzatish yoki bot bilan o'zaro ta'sir qilishni o'z ichiga olsa: 1. **Telegram havolasini ochish → Saqlash** va **ko'rinishni** yozib olish berilgan havolani va harakatdan oldin qaytarilgan ko'rinishni **saqlaydi**. 2. **Join / open and observe** qo'shilish/ochishni bajaradi va botning start parametrini taqdim etilganda yuboradi. Tasdiqlanishini kutayotgan qo'shilish so'rovi "pending" (kutishda) deb qayd etiladi. 3. Panel tomonidan yuborilgan matnli javoblar va qo'llab-quvvatlanadigan tugma bosishlari `interaction.requested` va `interaction.result` kodlarini saqlab qoladi. Callback kvitansiyalari qaytarilgan pop-up matnini, ogohlantirish holatini va URL manzilini saqlab qolishi mumkin. Bu haqiqiy akkaunt harakatlari. Boshqa Telegram ilovasidagi Callback bosishlari yig'uvchi tomonidan ko'rinmaydi, garchi natijada paydo bo'lgan xabarlar yoki tahrirlar ko'rinishi mumkin. Mini-klient veb-ilova, to'lov, telefon yoki joylashuv bo'yicha ish jarayonlarini bajarmaydi. Aniq xulq-atvor uchun [panel o'zaro ta'sirlariga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/#act-from-the-panel) qarang. ## 4. Suhbatlar bo'ylab kuzatuvlarni bog'lash Jurnalda "**Barcha manbalar**"ni tanlang va yozib olingan kontentni qidiring. Mos yozuvlarni oching va ish maydoni, suhbat, xabar IDsi, ketma-ketlik hamda yozuv xeshini saqlang. Muvofiq chatda **Odamlar → Profillarni yoqishni** tanlang va shaxsni tekshiring: - Vaqt o'tishi bilan kuzatilgan ismlar/foydalanuvchi nomlari va raqamli Telegram ID. - Manba yozuvlari havolalari bilan javob munosabatlarini ko'rsating. - **Shuningdek…** ushbu ish maydoni jurnalidagi boshqa suhbatlarda ham o'sha ID yozgan. - Faoliyat, tahrirlar/o'chirishlar hamda tilga olingan hamyonlar, telefonlar, foydalanuvchi nomlari va havolalar. - Saqlangan avatar metama'lumotlari va ularning alohida kelib chiqishiga ega shunga o'xshash kesh-avatarlar. Xulosada hosil qilingan profilni ishlatishdan oldin keltirilgan yozuvlarni oching. Profil(lar) saqlangan xabarga ega shaxslarni qamrab oladi, guruhning har bir a'zosini emas. **Parametrlar → fakt bo'yicha keltirilgan yozuvlar**soni havolalar ro'yxatini cheklaydi, asosiy faoliyat sonini emas. Tilga olinishlar va avatar o'xshashligi yo'nalish ko'rsatadi; ular egalik huquqi yoki shaxsni aniqlamaydi. Ishlangan misolda: | Havo | Yozib oladi | Qo'llab-quvvatlanadigan kuzatuv | | --- | --- | --- | | Xuddi shu jo'natuvchi hisob | Guruh #146 va shaxsiy keyingi kuzatuv #205 | Ikkalasi ham Telegram jo'natuvchi ID 71001 ni taqdim etadi | | Xuddi shu manzil | #146, bot klaviatura #173, kanal tahriri #188, shaxsiy xabar #205 | Barchasida`pay.example.invalid/new` mavjud; egalik/nazorat aniqlanmagan | | Xuddi shu saqlangan fayl | Yakunlangan media kvitansiyalari #151 va #209 | Saqlangan baytlar uchun to'liq SHA-256 qiymatlari mos keladi | | Kanalga tegishlilik | #101 va #188 | Tasdiqlangan jo'natuvchi bo'lmasa, kanal postini foydalanuvchi 71001 ga tegishli deb hisoblamang | Ilova hashlarini va ularga tegishli xabar havolalarini solishtiring hamda hisob yozuvlarida ularni saqlang. Telegram IDlari bo'yicha guruhlangan vaqt chiziqlarini yozuvlarda ko'rsatilgan Telegram IDlari bo'yicha guruhlang. Jamoaning [Case Board](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/)'dagi ish yozuvlarini saqlang: #146, #188 va #205 kabi tayanadigan yozuvlarni belgilab qo'ying, aniq manzil satrini ajratib ko'rsating va har bir yozib olingan harakatning ikki yozuv orasidagi yoki vaqt oralig'idagi bo'lagini saqlang. Eslatmalar va holatlar jamoaning ko'rib chiqishini o'z imzolangan tarixida saqlaydi, ularni manba kuzatuvlaridan alohida aniqlash mumkin. ## 5. Sohil-chatlar bo'yicha voqealar jadvalini tuzing **Suhbatlardagi** saqlangan versiyalar va ularning **Jurnal yozuvidagi #…** havolalaridan foydalaning. Jurnalda **Barcha manbalarni Tahrirlar**, **O'chirishlar** va **Qamrov** bilan birlashtiring. Taqdim etilgan hollarda ham `source_at`, ham `observed_at` ni saqlang. | Illyustrativ kuzatuv vaqti | Manba | Kuzatuv | | --- | --- | --- | | 09:00 | Kanal #101 | Asl manzil qayd etildi | | 09:12 | Guruh #146; media #151 | Yangi manzil e'lon qilindi; fayl yuklab olindi | | 09:16 | Bot #173 | Klaviatura yangi manzilga ishora qiladi | | 09:20 | Kanal #188 | E'lon tahrirlangan; ikkala saqlangan versiya ham saqlanib qoladi | | 09:24 | Shaxsiy #205; media #209 | Xuddi bir xil jo'natuvchi ID manzilni takrorlaydi; xuddi bir xil fayl baytlari saqlangan | | 09:28 | Guruh #231 | O'chirish to'g'risida bildirishnoma qabul qilindi; o'chiruvchi va aniq o'chirish vaqti noma'lum | Ushbu misolli havolalar orasida boshqa yozuvlar ham mavjud. Ketma-ketlik raqamlari kuzatuvlarni tartibga soladi; tarix snopshotlari eski manba sanalarini o'z ichiga olishi va jonli voqealardan keyin yetib kelishi mumkin. Snopshotlar, tiklangan xabarlar, o'chirish bildirishnomalari va qayta tekshirishda yo'qligi natijalarini ajratib ko'rsating. Qamrovdagi bo'shliqlarni noma'lum intervallar sifatida belgilang. Keyingi tarixiy ma'lumotlarni olish uzluksiz kuzatuvni retroaktiv ravishda ta'minlamaydi. ## 6. Hisob nuqtai nazarlarini ularning kelib chiqishini yo'qotmasdan qo'shish Har bir alohida akkaunt uchun alohida ish maydonidan foydalaning va uning inventarizatsiyasini takrorlang. Har bir solishtirishda akkaunt IDsi, roli, imzolash kaliti barmoq izi va manba havolalarini saqlang. Xabar raqamlari suhbatlar/akkauntlar bo'ylab global identifikator hisoblanmaydi. Case Board har bir ish maydonida manba-bog'langan eslatmalar va kollektsiyalarni saqlaydi. Guruh ekrani hisob maqomini birgalikda ko'rib chiqadi va alohida ish maydonlari eksportlarini birlashtirishi mumkin. Ushbu manbalarni ish eslatmalaringizda yoki tahlil vositalaringizda bog'lang; har bir jurnal o'zining kelib chiqishi va imzolash kalitini saqlaydi. Global qidiruv yoki birlashtirilgan, turli ish maydonlari bo'ylab vaqt chizig'i yaratilmaydi. Bir kanal/superguruhning ko'p hisobga eksport qilish mos hisoblar yordamida o'sha suhbat tarixini oladi. Uzoq muddatli ishda [mustaqil guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/) bilan chegaralarni saqlang. Har bir hisobning yozib olish yo'li va ko'rinishini aniqlash uchun nazoratli yetkazib berish tekshiruvlaridan foydalaning. ## 7. Ishni topshirishni yig'ish va tasdiqlash Ularni tahlilchi tuzgan ish direktoriyasida birga saqlang: | Material | Maqsad | | --- | --- | | Holat yozuvlari va manba ro'yxati | Savol, yig'ish siyosati, kirish/rol, natijalar, muqobil izohlar va bo'shliqlar | | Vaqt chizig'i | Har bir yozuv uchun vaqt hamda ish maydoni/suhbat/xabar/ketma-ketlik ma'lumotlari | | Case Board eksporti va slices, agar ishlatilsa | Manbaga bog'langan belgilamalar, iqtiboslar, jamoa eslatmalari, to'plamlar, tahrir tarixi va tanlangan yozuvlar dalillar ZIP-fayliga solingan holda tekshiriladi | | Har bir ish maydoni uchun imzolangan dalillar ZIP | To'liq yozib olingan jurnal, manifest va ilova qilingan saqlangan media; panel filtrlari jurnal eksportini cheklamaydi | | Alohida imzolangan foydalanuvchi profil fayllari | Olingan manbalar tegishli ish maydoni dalillari bilan solishtirib tekshirildi | | Imzolangan to'liq chat eksportlari | Joriy ko'rinadigan tarixni olish, kuzatuv jurnalidan alohida | | Ishonchli barmoq izlari va avvalgi tekshiruv nuqtalari | Asosiy identifikator va saqlangan jurnal chegaralari | | Witness artefaktlari, agar sozlangan bo'lsa | Alohida jurnal, imzolangan postlar va guvoh barmoq izi | | Verifikatsiya natijalari va yetkazib berilgan fayl hashlar | Nima tekshirildi, qaysi baytlar kimga uzatildi | Ishonchli o'rnatmadan, fayl nomlari va har bir ish maydonining haqiqiy barmoq izi bilan: ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json python -m tgwitness.verify profiles-operations.json --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --evidence evidence.zip python -m tgwitness.verify history-channel.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 python -m tgwitness.verify board-slice.json --evidence evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 ``` Haqiqiy tekshiruv natijalari va asl artefaktlarni saqlang. Case Board'dagi ish maydoni eslatmalarini keltirilgan manba materiallari bilan birga eksport qiling. Turli ish maydonlari bo'ylab olingan topilmalarni eng yuqori darajadagi ish papkasi katalogida to'plang; har bir TgWitness artefaktining o'z imzosi va tekshiruv tartibi mavjud. ## Tergovni moslashtiring | Holat | Iz | Yetkazib bering | | --- | --- | --- | | Bot tomonidan boshqariladigan buyurtma/to'lov nizosi | Yozuv e'lon qilish → saqlangan havola ko'rinishi → botni ishga tushirish parametri → xabar va klaviatura versiyalari → panel chaqiruvlari kvitansiyalari → shaxsiy/guruh bo'yicha keyingi kuzatuv | Kuzatilgan taklif/javob vaqt chizig'i va tasdiqlangan manbalar; faqat to'lov havolasi to'lovni isbotlamaydi | | Voqeadan keyin o'chirib tashlangan xabarlar | Ta'sirlangan barcha suhbatlar → saqlangan asl nusxalar/tahrirlar → o'chirish yoki qayta tekshirishda yo'qolish natijalari → saqlangan media → yoritish va boshqa hisob nuqtai nazarlari | Saqlangan versiyalar va aniq noma'lum oraliklar; ixtiro qilingan o'chirish sub'ekti yo'q | | Ishtirokchi suhbatlar bo'ylab ismlarini o'zgartiradi | Raqamli jo'natuvchi ID → ism/foydalanuvchi nomi tarixi → javoblar → boshqa kuzatilgan suhbatlar → keltirilgan manzillar/fayllar | Telegram hisobining faoliyat kronologiyasi va uning manba yozuvlariga havolalar | [Yig'ish manbai](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) · [Foydalanuvchi profilini tasdiqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#people-profiles) · [Dalillarni topshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#investigation-handoff) · [Validatsiya yakunlandi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) --- # Telegram · Imkoniyatlar va cheklovlar Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/ Joriy yig'ish modeli, ko'p hisobli ish jarayonlari, eksportlar va TgWitness'ning operatsion chegaralari. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Joriy yig'ish modeli, ko'p hisobli ish jarayonlari, eksportlar va TgWitness'ning operatsion chegaralari. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Loyiha havolasi](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) ![Loyiha havolasi](https://phishdestroy.github.io/TgWitness/assets/chapter-project.svg) TgWitness ulanilgan hisoblarga kirish mumkin bo'lgan Telegram suhbatlarini saqlaydi, kuzatilgan o'zgarishlarni qayd etadi va tekshirilishi mumkin bo'lgan eksportlarni tayyorlaydi. Ushbu qo'llanma to'plash modelini, joriy ish jarayonlarini va ularning chegaralarini tasvirlaydi. **Ushbu sahifada** - [Mustaqil ilova](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#standalone-application) - [Hamkorlikdagi tergovlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#shared-investigations) - [Arxivlash vositalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#archive-tools) - [Ixtiyoriy qo'shimchalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#optional-extras) - [Protokol va xususiy manbalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#protocol-and-private-sources) - [Bir nechta akkauntlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#multiple-accounts) - [Yozib olish va mualliflikni aniqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#capture-and-attribution) - [Sig'im va Telegram chegaralari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#capacity-and-telegram-limits) - [Ishonchlilik va tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#reliability-and-recovery) - [Dalil modeli](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#evidence-model) - [Eksport, joylashtirish va topshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#export-deployment-and-handoff) - [Barqaror chiqarish mezonlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/features/#stable-release-criteria) ## Mustaqil ilova TgWitness o'zining o'rnatish jarayoni, ma'lumotlar katalogi va chiqarish hayotiy tsiklga ega. Ilovaga kiritilgan veb-interfeys sozlash va tekshirishni boshqaradi; eksport qilingan yozuvlar mustaqil ravishda ishlatilishi mumkin. Operator o'z hisoblarini bog'laydi, har birida ko'rinadigan manbalarni tanlaydi va saqlangan kuzatuv jurnalini oladi. Panel kontentni, saqlangan o'zgarishlarni, kuzatuv kelib chiqishini va ma'lum bo'shliqlarni ko'rsatadi. Boshqa tergovchi eksport qilingan materialni tasdiqlay oladi. Panel akkauntni avtorizatsiya qilish, manbaga kirish, yig'uvchi faoliyati va qayd etilgan qamrovni ajratib ko'rsatadi. Kam xabarli intervallarni yoki ulanish muammosini baholashda ushbu holatlarni birgalikda ko'rib chiqing. ## Hamkorlikdagi tergovlar Administrator ish maydonlari va yakka chatlarga mo'ljallangan, har bir harakat uchun ruxsatnomalar, IP-cheklovlar, amal qilish muddati, tizimga kirish limitlari va sessiya nazorati bilan [kirish tokenlarini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) berishi mumkin. Faqat o'qish huquqiga ega ko'rib chiquvchi Telegram avtorizatsiyasini yoki asosiy panel kalitini olmasdan ishni tekshirishi mumkin. Suhbat bilan cheklangan kirish akkaunt bo'ylab sozlamalar va to'liq jurnal eksportlaridan alohida bo'lib qoladi. Avtomatik MTProxy to'rtta ommaviy manba yoki operator katalogidan Telegram ishchi yo'nalishlarini saqlab turadi. [IP rejimlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/#ip-modes) nosozlikda boshqa proksiga kutish kerakmi yoki aniq ruxsat etilgan to'g'ridan-to'g'ri yo'nalishdan foydalanish mumkinligini belgilaydi. Tashqi HTTP so'rovlariga alohida yo'nalish va o'chirish tugmasi mavjud. ## Arxiv vositalari 0.7.1-da [tarixni olish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/history/), [arxiv qidiruvi va tahlili](https://phishdestroy.github.io/TgWitness/uz/docs/reference/analysis/),[faqat o'qish uchun mo'ljallangan MCP](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/), [mahalliy OCR/transkripsiya](https://phishdestroy.github.io/TgWitness/uz/docs/reference/media-analysis/) va[chiquvchi webhooks funksiyalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/webhooks/) mavjud. Analitik hisobotlar va tan olingan matn yozib olingan voqealardan alohida saqlanadi. [Case Board](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/) ish maydonida manbaga bog'langan belgilamalar, iqtiboslar, eslatmalar va to'plamlarni qo'shadi. [Hisobot konstruktori](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/) material, bo'limlar va qo'llab-quvvatlanadigan HTML/PDF eksportlari uchun sakkiz xil dizayndan birini tanlaydi. ## Ixtiyoriy qo'shimchalar Har kunlik sozlash: hisob → manbalar → kuzatuv. **Qo'shimchalar** – Telegram Witness bot va GitHub yozuvni ko'rish uchun alohida manzil. Har biri sozlamalarni ko'rsatishdan oldin mavjudligi va talablarini bildiradi. Kartani tanlash ko'rsatmalarni ochadi; u ro'yxatdan o'tmaydi va xizmatni ishga tushirmaydi. Botni sozlash uch bosqichdan iborat: faqat o'qish huquqini yaratish, nashriyot sozlamalarini tanlash va guvoh mezbonida ishga tushirish. Tarmoq va nashriyot opsiyalari, mavjud ulanishlar va tasdiqlash buyruqlari talabga binoan ko'rsatiladi. Yuklab olingan konfiguratsiya ishga tushgan guvohdan farq qiladi. Qo'shimchalarni almashtirish loyihani saqlab qoladi; hisob qaydnomasi o'zgarishlari va qulflash vaqtinchalik token va shaklni tozalaydi. Ichki qo'llanma ishga tushirish bo'yicha ko'rsatmalarni o'z ichiga oladi. [GitHub Actions ishga tushirishni qayd etadi](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md), forkingizdan biriktirilgan kollektorni ishga tushiradi, bitta suhbatni yozib oladi va ish jarayoni kelib chiqishini ko'rsatadigan shifrlangan topshiruv hujjatini yaratadi. ## Protokol va xususiy manbalar **MTProto — Telegramning protokoli; Telethon esa TgWitness MTProto bilan muloqot qilish uchun ishlatadigan Python kutubxonasi.** Ular muqobil ulanish usullari emas. Collection MTProto'dan foydalanadi; ixtiyoriy guvoh Bot API orqali imzolangan tekshiruvlarni e'lon qiladi. Har bir ish maydoni o'zining vakolatli klient va hisob ma'lumotlarini yangilash oqimiga ega. TgWitness sozlangan manbalardan kuzatuvlarni tanlaydi va tarix snopshotlari hamda media yuklab olish kabi funksiyalar uchun alohida aniq so'rovlar yuboradi. Xususiy manba uchun ommaviy foydalanuvchi nomi kerak emas. Telegram tengdosh turi va raqamli ID identifikatorlar hisoblanadi; sarlavhalar va foydalanuvchi nomlari o'zgarishi mumkin. Kirish mavjud a'zolik va ruxsatnomalarga bog'liq. TgWitness manbalarga avtomatik qo'shilmaydi yoki qo'shilishni tasdiqlashni chetlab o'tmaydi. Boshqa hisobdagi kirish xesh universallikda kirish tokeni hisoblanmaydi. Yig'ish modeli guruhga qo'shilishdan oldingi yashirin tarix, ishtirokchi/admin rollari, sessiyani bekor qilish, ruxsatnomalarni olib tashlash yoki o'zgartirish, guruhdan superguruhga ko'chirish, mavzular/forumlar, bog'langan muhokamalar, kanal identifikatorlari va mavjud bo'lmagan ilovalarni hisobga olishi kerak. Har bir kombinatsiya jonli muhitda sinovdan o'tmagan. Manba ko'rinishi yig'uvchi ishga tushirilganda tekshiriladi. Cheklangan dialog natijasidan manba yo'qolishi **kirish tasdiqlanmaganligini** anglatadi, bu o'chirish isbotlanmaganligini bildiradi. Bitta mavjud bo'lmagan manba boshqa mavjud manbalarni kuzatishga to'sqinlik qilmaydi. Hech qachon taklif havolalari yoki haqiqiy sessiyalarni ommaviy joylarga joylamang. ## Bir nechta hisoblar Panel istalgan sonli **ish maydonlar**ini qo'llab-quvvatlaydi, har biri o'ziga xos: - Avtorizatsiya, shifrlangan ombor va ulanish yo'li. - SQLite jurnali va Ed25519 imzolash identifikatori. - Tanlangan manbalar, media navbati va yozib olish sozlamalari. - Kuzatuv holati, xatolar, tekshiruv nuqtalari va eksportlar. Ko'rsatilayotgan ish maydonini o'zgartirish boshqa yig'uvchini to'xtatmaydi. Ish maydonlari bo'ylab bir xil hisobni avtorizatsiya qilish takrorlanishi rad etiladi. Allaqachon bir Telegram hisobiga bog'langan jurnalni boshqa hisobga o'tkazib bo'lmaydi; bir xil hisobni qayta ulash esa ruxsat etiladi. Bu hisob identifikatori va tegishli xabar-ID doirasini saqlab qoladi. Ilova doimiy ish maydonlari sonini belgilamaydi. Har bir ish maydoni ulanishni monitoring qilish, media yuklab olish, qayta tekshirish va yangi suhbatlarni qabul qilish bo'yicha Collector vazifalarini umumiy Python jarayoni va voqea sikli ichida bajaradi. Ishlash tezligi yuklanishga bog'liq. Jarayonlarni izolyatsiya qilish uchun alohida o'rnatishlar, portlar va ma'lumotlar kataloglaridan foydalaning. Har bir akkauntga uning kirish imkoniga ega bo'lgan manbalarni tayinlang. Turli akkauntlar bir xil guruhni kuzatishi mumkin, lekin ularning kuzatuvlari alohida bo'lib qoladi va kelib chiqishini saqlaydi. Operator nazoratidagi bir mashina ustidagi ikki akkaunt ikki mustaqil guvoh emas. **Eksport guruhi** alohida imzolangan ish maydoni ZIP-fayllarini ularning ish maydoni ID-lari, xeshlari va imzo kaliti barmoq izlarini o'z ichiga olgan imzolangan fayllar ro'yxati bilan birlashtiradi. Har bir jurnal o'z chegarasini saqlaydi. Ish yozuvlari yoki tahlil vositalarida manba havolalarini saqlagan holda birlashtirilgan kesma-ish maydoni vaqt chizig'ini yarating. ## Yozib olish va mansubligini aniqlash Manbalar har bir akkaunt bo'yicha yangi xabarlar, tahrirlar, o'chirishlar, munosabatlar va a'zolik uchun alohida kalitlarni taqdim etadi. Oldindan sozlamalar barcha toifalarni yoki xabarlar/tahrirlar/o'chirishlarni saqlab qoladi. Ushbu siyosat ish maydonining tanlangan guruhlariga tatbiq etiladi, qayta ishga tushirishdan keyin ham saqlanadi va o'zgartirishlardan oldingi/keyingi imzolar bilan tasdiqlanadi. Standart sozlamalar barcha toifalarni saqlab qoladi. Kategoriyani o'chirish eski yozuvlarni olib tashlamaydi; uni qayta yoqish esa o'tkazib yuborilgan voqealarni tiklamaydi. Operativ yozuvlar, boshqa guruh xizmat voqealari va aniq tarix snapshotlari alohida hisoblanadi. Qayd etilgan Telegram obyektlari alohida yangilanish kalitlaridan qat'i nazar, ichiga o'rnatilgan metama'lumotlarni saqlab qolishi mumkin. Hozircha guruh bo'yicha kategoriyalarni ustuvor belgilash mavjud emas. | Material | Hozir qayd etildi | Chegara | | --- | --- | --- | | Xabar | Matn, peer/xabar IDlari, jo'natuvchining metadata ma'lumotlari, javoblar va asl yangilanish konverti | Yig'uvchi tomonidan imzolangan va hisobga ko'rinadigan kuzatuv sifatida saqlangan | | Tahrir | Yangi kuzatilgan versiya va ilgari saqlangan har qanday versiyalar | Vaqtinchalik to'xtash davrida oraliq tahrirlar yo'qolishi mumkin; jo'natuvchi har doim tahrirchi bo'lmasligi mumkin | | O'chirish | Bildirishnoma va oldindan olingan kontent, agar mavjud bo'lsa | Odatda o'chiruvchi ma'lum emas yoki aniq harakat vaqti ko'rsatilmagan | | Hisob darajasidagi o'chirish bildirishnomasi | Asl bildirishnoma; hal qilingan yozuvlar saqlangan suhbat va korrelyatsiya usulini o'z ichiga oladi | Doirada aniq bir marta oldin saqlangan shaxsiy suhbat yoki oddiy guruh mos kelishini talab qiladi; boshqa IDlar `deletion.unscoped` holatda qoladi. Kanal va superguruh IDlari ushbu korrelyatsiyadan mustasno. | | Reaksiya | Yetkazilgan hisoblagichlar va ko'rinadigan yaqinda aniqlangan shaxslar | To'liq mavjud reaktorlar ro'yxati uchun alohida so'rovlar talab etiladi; kanallar shaxsiyatlarni yashirishi mumkin | | A'zolik | Xizmat xabarlari va ishtirokchilarga yetkazilgan yangilanishlar | Ko'rinish roli va suhbat turiga bog'liq; yo'qolgan voqealar yo'qligini tasdiqlamaydi | | Ma'mur harakatlari | Mavzuga oid yetkazilgan yangilanishlar va admin-log snapshoti kanal/superguruh chat eksportlarida | Eksport mavjud bo'lganda eksport qilayotgan admin akkauntining logini o'qiydi; admin-logni uzluksiz so'rov qilish ushbu yo'ldan tashqarida | | Ilova | Asl versiya tavsifi, yuklab olingan baytlar/SHA-256 va urinish natijalari | Yo'qolgan fayl tiklanmasligi mumkin; eng so'nggi versiya o'rniga qo'yilmaydi | | Tarix | Joriy ko'rinadigan xabarlarning aniq snapshoti | Barcha tahrirlar yoki o'chirilgan kontentni qayta tiklamaydi | | Yig'uvchi jarayon | Boshlash/to'xtatish, yurak urishi, xatolar, sozlamalar, doira va imzolangan ishga tushirish kvitasi | Mahalliy inventarizatsiya; GitHub va TDX [mustaqil muhit tekshiruvlarini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) qo'shadi | Interfeys manba voqeasida taqdim etilgan hisob nomini ko'rsatadi va kuzatilgan nomlar hamda foydalanuvchi nomlarini saqlaydi. Voqea o'z ijrochisini ko'rsatmasa, hisobot bu maydonni aniqlamay qoldiradi. ## Sig'im va Telegram cheklovlari Kafolatlangan sifat bilan kuzatib borilishi mumkin bo'lgan universal chatlar soni yo'q. Quvvat sekuntiga maksimal voqealar soni, ilovalar hajmi va o'lchamlari, qo'shimcha RPC-so'rovlar, faol hisoblar, disk kechikishi/bo'sh joy, tarmoq sharoitlari, Telegram cheklovlari, qabul qilinadigan kechikish va navbat chuqurligiga bog'liq. Telegram passiv yetkazib berishni faol qisqa so'rovlardan ajratadi. Uning yangilanish hujjatlari ochiq kanallar/superguruhlar uchun qo'shimcha `updates.getChannelDifference` chaqiruvlarini tasvirlaydi va **bir vaqtning o'zida** eng ko'pi bilan **o'n ta qisqa so'rov qilingan manbalarni** tavsiya etadi. Bu o'n ta tanlangan guruh chegarasi yoki to'liqlik kafolati emas. | Rejim | Maqsad | Holat | | --- | --- | --- | | Standart kuzatuv | Tanlangan manbalardan olingan yangilanishlarni qayd eting | Amalga oshirildi | | Prioritetli qayta tekshiruvlar | Yulduzchali manbalar o'zlarining sozlanadigan intervallaridan foydalanadi va har bir chegaralangan qayta tekshirish bosqichida ustunlikka ega bo'ladi | Tarix va xabar so'rovlari bilan amalga oshirilgan | Prioritet yulduzi ushbu qayta tekshiruvlarni nazorat qiladi. Qo'shimcha`updates.getChannelDifference` qisqa so'rovlari alohida foydalanuvchi rejimida taqdim etilmagan. FloodWait-ni e'tiborsiz qoldirish yoki qo'shimcha hisoblardan chiziqli sig'imni taxmin qilish bilan istalgan yuqori chastotali so'rov yig'ish o'lchamlarini aniqlash uchun haqiqiy model emas. Standart cheklovlar – ro'yxatda keltirilgan birinchi 1 000 dialog, har bir tarix nusxasida 500 tagacha xabar. Har bir to'plangan fayl turi bo'yicha 1–2 000 MiB va siqilmagan imzolangan ZIP kontenti uchun 4 GiB; har biri **Parametrlar** bo'limidagi ish maydoni bo'yicha o'zgartiriladi. Eksportlarga voqealar soni bo'yicha aniq cheklov qo'yilmagan. Brauzer zaxira rejimi bo'yicha 128 MiB bilan cheklangan; oqimli CLI sozlanadigan uzatish chegarasiga ega, bo'yicha 5 GiB. ## Ishonchlilik va tiklash Amaldagi xulq-atvorga SQLite WAL/sinkron tranzaktsiyalar; atomik xabar va media-topshiriq yozuvlari; doimiy topshiriqlar va qayta urinish kechikishlari; asl-versiya tavsiflagichlari; cheklangan qayta urinishlar; saqlangan media FloodWait; matn voqeasining tarmoq kutishidan tashqarida media yuklab olish; keyingi yozuvlar davom etarkan barqaror prefiksli eksport; atom sozlamalari va audit yozuvlari; muvaffaqiyatsiz almashtirishga kirishga urinishdan so'ng ishchi ruxsatnomani saqlash; zararlangan qo'shimcha ish maydonini izolyatsiya qilish; aniq qayta ulanish urinishlari; alohida ruxsatnoma yo'qotilishini xabar qilish; va monoton soat yordamida haqiqiy vaqt o'zgarishini aniqlash. Hisob va kanal pts/qts/seq qayta ishga tushirilgandan so'ng saqlanadi va tiklanadi, kuzatilgan suhbatlar esa muntazam ravishda qayta tekshiriladi; [dalil formatiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#durable-collection-and-process-receipts-02) qarang. Pozitsiyani muntazam saqlash jurnalni qabul qilishning atomli, yo'qotishsiz tasdig'i emas. Har bir jarayon boshlanishi oldingi bosh sarlavha va tarmoqsiz chegarani qayd etadi. Joriy tarix bo'shliqlarni to'ldirish sifatida ko'rilmaydi. Telegramning farqlarni saqlash imkoniyati cheklangan; `differenceTooLong` yo'qolgan barcha kontentni qayta tiklay olmaydi. Qayta tiklanmaydigan bo'shliqlar keyingi tarixiy snapshot muvaffaqiyatli bo'lsa ham aniq ko'rsatilishi kerak. ## Dalil modeli Har bir voqea ketma-ketlikni, mahalliy UTC kuzatuv vaqtini, manba vaqti (taqdim etilgan bo'lsa), turini, manbasini, ijrochisini (taqdim etilgan bo'lsa), asl yuklamani, oldingi xesh va imzoni qayd etadi. Xabar kuzatuvlari shuningdek yig'uvchi hisobini/ijro kontekstini saqlab qoladi. Imzolangan jarayon kvitasi tasodifiy ishchi ID; TgWitness/Python/OS/qaramlik versiyalari; manba-fayl SHA-256 qiymatlari va umumiy barmoq izi; dastlabki hisob, doira va sozlamalar; UTC/monotonik o'qishlar; hamda avvalgi jurnal boshini o'z ichiga oladi. Sozlamalar o'zgarishlari, ishga tushirish/to'xtatish va xatoliklar bir xil jurnalga kiritiladi. Tekshiruv nuqtalari dastur ishga tushirilganda, kuzatuv davomida har besh daqiqada (o'zgartirilishi mumkin) va tartibli to'xtatishda saqlanadi. Saqlangan mahalliy tekshiruv nuqtasi avvalgi jurnal prefiksiga qaytishni aniqlay oladi. | Mexanizm | U nimani tasdiqlaydi | | --- | --- | | Fayl SHA-256 | Baytlar ma'lum digestga mos keladi | | Voqea xesh zanjiri | Ma'lum chegaraga nisbatan yozuvlarni tartibga solish/bog'lash | | Ed25519 | Muayyan kalit ostidagi imzo | | Mustaqil saqlangan tekshiruv nuqtasi | Keyingi material saqlangan chegaraga mos keladi | | Proqram-fayl o'lchovi | O'lchangan fayllar bo'yicha Collector o'z-o'zini hisobot | | Haqiqiy mustaqil TSA javobi | TSA vaqti bo'yicha aniq ishonch farazlari ostida ma'lum baytlarning mavjudligi | RFC 3161 so'rovini tayyorlash va OpenSSL javobini tasdiqlash amalga oshirilgan. Dalil rejimi shuningdek tekshiruv nuqtasi xeshlarini sozlangan vaqt belgilash xizmatlariga yuboradi. Mustaqil vaqt nuqtasini o'rnatish uchun vakolatli organ javobini saqlab, tasdiqlang. Qarang: [TIMESTAMP.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/timestamp/). Tekshiruv nuqtalarini mustaqil saqlang, imzolash kalitlariga kirishni nazorat qiling, uzatish yozuvlarini saqlang va eksportlarni ishonchli dasturiy ta'minot yordamida tasdiqlang. [Verifikatsiya doirasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) bu tekshiruvlar bir-birini qanday to'ldirishini va qaysi ishonch taxminlari qo'llanilishini tushuntiradi. ## Eksport, joriy etish va topshirish Imzolangan ZIP hujjat asl JSONL, CSV, HTML fayllarni, saqlangan ilovalarni, xeshlarni, imzolangan manifestni va qulay tekshiruvchi dasturni o'z ichiga oladi. U bitta ish maydonini va doimiy to'liq jurnal prefiksini qamrab oladi. Panel qidiruv filtrlari yozuvlarni sukut bo'yicha olib tashlamaydi. Maxfiy kalitlar, tokenlar va Telegram sessiyalari chiqarib tashlanadi; asl kuzatuvlar hanuz shaxsiy ma'lumotlar va Telegram metama'lumotlarini o'z ichiga olishi mumkin. ZIP digestini, ishonchli barmoq izini, tekshiruv nuqtasini, jarayon kvitansiyasini va topshirish yozuvini alohida saqlang. Faoliyat kodiga faqat tekshirilgan ZIP-da mavjudligi sababli ishonish o'rniga, ishonchli o'rnatmadan olingan verifikatoridan foydalaning. Brauzer interfeysi Node.js, CDN yoki tashqi shriftlarsiz mahalliy ravishda ishlaydi. O'rnatishni bitta operator tokeni boshqaradi. Masofaviy kirish uchun HTTPS yoki SSH tunneli talab etiladi. Python va konteyner ta'riflari taqdim etilgan, [deploy/](https://github.com/phishdestroy/TgWitness/blob/main/deploy/README.md) ostida xizmat misollari keltirilgan; bajariladigan platforma tekshiruvlari alohida ro'yxatga olingan. Standart ish maydoni ma'lumotlar ildiz papkasidan foydalanadi; qo'shimcha ish maydonchalari esa `profiles//` papkasidan foydalanadi. Zaxira nusxa olish to'xtatilgan jarayon va to'liq ma'lumot/kalit to'plamini talab qiladi. Dalil ZIP-fayllari ilova zaxira nusxalari emas. Sirlar yangi ma'lumotlar papkasi uchun tashqi bosh kalitdan foydalanishi mumkin; jurnal/media shifrlash operatorning disk/hajmi tomonidan ta'minlanadi. [CONNECTION-SECURITY.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/) va [OPERATIONS.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/operations/) hujjatlariga qarang. ## Barqaror chiqarish mezonlari Barqaror chiqarilishdan oldin, aniqlang: 1. Haqiqiy xususiy guruhlar, superguruhlar, forumlar va kanallar a'zo/admin rollari hamda yashirin/ko'rinadigan tarix bilan, jumladan kirish/2FA, bekor qilish va kirish huquqining yo'qolishi. 2. Boshqariladigan tahrirlar, o'chirishlar, munosabatlar, a'zolik va media ma'lum harakatlarga qarshi. 3. Protsess/server qulashi, disk nosozliklari/disk to'lishi, muddati o'tgan fayl havolalari, FloodWait, tarmoq uzilishi, shikastlangan fayllar va ma'lumotlar bazasini qayta tiklash. 4. O'lchangan kechikish, navbatlar, xotira va diskni hisobga olgan holda bir nechta akkauntni uzluksiz ishlatish, jim va shovqinli manbalarni birlashtirgan holda. 5. MTProto holatini yangilash va jurnalni qabul qilish orasidagi uzilish. 6. Mo'ljallangan OS/konteyner matritsasida toza o'rnatish va tasdiqlangan zaxira nusxasini tiklash. 7. Xavfsizlik, imzo va atributsiya/dalil da'volarining mustaqil ko'rib chiqilishi. Panelga cheklangan kirish huquqi [Access and Permissions](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) bo'limida tasvirlangan. 0.6-versiya [ACCOUNTS.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) hujjatida keltirilgan chegaralangan yagona hisobli TData va hisob-fayl importini qo'llab-quvvatlaydi. Nashr etishdan oldin Telegram API shartlarini ko'rib chiqing. Tadqiqot manbalari va platforma topilmalari [RESEARCH.md](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/RESEARCH.md) hujjatida keltirilgan. --- # Telegram · Case Board havolasi Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/ Belgilar, aniq ajratmalar, harakat bo'laklari, muhokamalar, chegaralangan kirish va Case Board tomonidan ishlatiladigan imzolangan izohlar tarixi. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Belgilar, aniq ajratmalar, harakat bo'laklari, muhokamalar, chegaralangan kirish va Case Board tomonidan ishlatiladigan imzolangan izohlar tarixi. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Tergov](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/) ![Tergov](https://phishdestroy.github.io/TgWitness/assets/chapter-investigate.svg) Case Board tergov guruhiga saqlangan materiallarning umumiy ishlash ko'rinishini taqdim etadi. Kuzatuvni belgilash, aniq parchani ajratib ko'rsatish, bir qator harakatlarni saqlash va uni hamkasblar bilan muhokama qilish mumkin. Kartalar manba havolalarini va imzolangan tahrir tarixini saqlaydi. Guruh izohlari ish maydonida qoladi, ular asl Telegram kuzatuvlaridan alohida ajratib ko'rsatiladi. [Dalil modeli](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) · [Kirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) · [Hisobotlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/) ![Sun'iy tergov lentasi](https://phishdestroy.github.io/TgWitness/assets/case-board.png) **Ushbu sahifada** - [Holat bilan ishlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/#work-with-a-case) - [Ruxsatlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/#permissions) - [Saqlangan shartnomalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/#stored-contracts) - [API va eksportlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/#api-and-exports) - [Ishlash chegaralari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/#operating-limits) ## Ish bilan ishlash **Tergovni** oching**→ Ish taxtasi** Standart yoki Mutaxassis rejimida. Til paneldagi sozlamalarga muvofiq bo'ladi. Jurnal yozuvi yoki saqlangan chat xabari yonidagi **To doskasidan** foydalaning, yoki unga e'tiborni qaratib, **B tugmas**ini bosing. Belgi bitta bosishda Kirish qutisiga qo'shiladi. Uning sarlavhasini, yorliqlarini va izohini tahrirlang, yoki uni to'plamga ko'chiring. O'zgartirilgan kartochka imzolangan tahrirni ilova qiladi; uni o'chirish tarixni saqlaydi. Birinchi ish uchun to'plamni tanlang va bitta savolga javob beradigan yozuvlarni qo'shing. Izohlar bo'limidan foydalanib talqinni ko'rib chiqing, so'ngra **Prezentatsiya** bo'limida kartalar va manba kontekstini bosqichma-bosqich ko'rib chiqing. Yetkazib beriladigan hisobotni tayyorlayotganda [Report studio](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/)'da Case Board materialini alohida tanlang. Slice saqlash hisobotning ma'lumot filtrlarini avtomatik sozlamaydi. Saqlangan chat xabaridagi matnni tanlang, **Highlight → board** ni ko'rsatish uchun. Uning rangini tanlang va eslatma qo'shing. Server aniq iqtibos va saqlangan versiyani, jumladan emoji, RTL matn va biriktirish belgilarini tekshiradi. Interfeys tanlovni niqoblangan yoki o'zgartirilgan matn orqali xaritalamaydi. Bir suhbatdagi ikki yozuvni Shift-bosish orqali ajratib, **ularning orasida Slice** qilishingiz, **vaqt bo'yicha Slice** qilishingiz yoki jurnalning joriy suhbat, davr va voqea-turi filtrlarini saqlashingiz mumkin. Saqlangan slice o'zining haqiqiy predikati (predicate)ga ega: uni Journal'da ochish bir nechta suhbatlar, xabar raqami chegaralari va aktor filtrlarini ham qo'llaydi. **Belgilanma qo'yilganidan beri qo'shilgan yozuvlarni ko'rsatish** keyingi qo'shimchalarni ajratib ko'rsatadi. Journal filtrlarini o'zgartirish bo'lakdan chiqishni ta'minlaydi. Odamlar bo'limidan, "**Ushbu shaxsning harakatlarini bo'laklash"** yozib olingan ijrochi ID'dan foydalanadi; u xabar muallifi xabarni tahrirlagan, o'chirgan yoki unga munosabat bildirgan deb taxmin qilmaydi. Slice oynasi yaratishga ruxsat berishdan oldin sonlarni oldindan ko'rsatadi. `all` har bir qayd etilgan turni o'z ichiga oladi, jumladan snapshotlar, tahrirlar, o'chirishlar, munosabatlar, a'zolik/xizmat yangilanishlari, o'z harakatlari, tugmalar, media natijalari, tiklangan xabarlar va kelajakdagi voqea turlari. Tanlov saqlangan kuzatuvlarni tasvirlaydi. Noma'lum-chatni o'chirish bildirishnomalari alohida kontekst bo'lib, faqat butun ish maydoniga kirish huquqiga ega bo'lganlarga ko'rinadi va tanlangan chatlardan biriga hech qachon bog'lanmaydi. To'plamlarga chat doirasi belgilangan. Bo'sh doira butun ish maydonini anglatadi. To'plam o'z doirasidan tashqaridagi kartalarni o'z ichiga ololmaydi; chat bilan cheklangan ishtirokchi kengroq to'plamni o'qiy olmaydi. Kirish qutisi – belgilanmagan kartalar uchun virtual to'plam. Qidiruv va filtrlar faqat ko'rinadigan kartalarni qamrab oladi; iplar va tilga olishlar ota kartaning kirish huquqini meros qilib oladi. O'chirilgan izohlar muhokamada qabr toshiga ega bo'ladi. Ko'ruvchi tarixi qayd etilmaydi. **Taqdimot** tanlangan to'plamdagi barcha kartalarni ochadi, Card, Source konteksti va Team izohlari ko'rinishlari hamda klaviaturadagi Oldingi/Keyingi boshqaruv tugmalari bilan. U tahrirlash boshqaruv elementlarini taqdim etmaydi. Oddiy oqim sahifalangan; taqdimot ro'yxatni sahifalar bo'yicha yuklaydi va har safar bitta kartaning tafsilotlarini oladi. ## Ruxsatlar Barcha operatsiyalar `view`, ish maydoni/suhbat doirasi va `board.read` huquqlarini talab qiladi. `board.write` kartalar, izohlar, harakatlar hamda ochish/ko'rib chiqish holatlarini qo'shadi. `board.manage` yig'ishni boshqarish, tasdiqlangan/rad etilgan holatlar hamda boshqalarning kartalarini tahrirlash/o'chirish imkonini beradi. Holat jamoaviy qarordir, kriptografik tekshiruv natijasi emas. Kirish shakli sozlamalari: Ko'rib chiquvchi = o'qish; Tahlilchi = o'qish/yozish; Operator = o'qish/yozish/boshqarish, ularning mavjud ruxsatlariga qo'shimcha ravishda. Mavjud grantlar yangi huquqlarni jimjit ravishda olmaysdi. Asosiy administrator barcha huquqlarga ega va **"Asosiy administrator"** sifatida post qiladi. Attributlash uchun nomlangan grantlardan foydalaning. Tilga olishlar ro'yxatida faqat to'liq ota kartochkasini o'qish huquqiga ega joriy kirishlar ko'rsatiladi. A chat uchun grant A+B uchun karta yoki bo'lak ololmaydi, hatto uning ID-sini taxmin qilsa yoki noto'g'ri `target.chat_id` ko'rsatsa ham. Maqsad metama'lumotlari serverdagi imzolangan voqea xeshidan aniqlanadi. Yig'indilar, muhokama sonlari, bog'liq kartalar va jonli bildirishnomalar javobdan oldin filtrlanadi. Eksportlar uchun `export` hamda `board.read` zarur; doska huquqisiz mavjud eksportlovchi jamoa eslatmalarsiz oddiy dalillar arxivini oladi. SSE har bir partiya oldidan amaldagi ruxsatnomalarni qayta tekshiradi. ## Saqlangan shartnomalar Kuzatuvlar kabi, izohlar ish maydonidagi faqat qo'shib boriladigan SQLite jadvaliga tranzaktsion tarzda yoziladi. `annotations.jsonl` — bu `events.jsonl` bilan bir xil o'qish snapshotidan olingan aniq kanonik eksportdir. Ikkinchi raqobatdosh izoh ombori yo'q va `board.activity` jurnal hodisasi ham mavjud emas. Har bir satrda aniq: ``` { "seq": 1, "at": "2026-11-02T14:00:00.000+00:00", "access_id": "admin", "access_label": "Main administrator", "kind": "board.bookmark", "payload": {"id": "32 lowercase hex digits", "target": {"event_hash": "64 lowercase hex digits"}}, "previous_hash": "64 zeroes for the first record", "hash": "SHA-256 described below", "signature": "base64 Ed25519 signature" } ``` Yuqoridagi qisqartirilgan misol konvertni ko'rsatadi; haqiqiy yuklamalar ularning model bo'yicha standart qiymatlari va server tomonidan aniqlangan maqsad maydonlarini o'z ichiga oladi. API so'rovi sxemalari [`tgwitness/schemas`](https://github.com/phishdestroy/TgWitness/blob/main/tgwitness/schemas/board-bookmark.json) ostida joylashgan bo'lib, ular ijro vaqtidagi Pydantic modellari asosida `python tools/build_board_schemas.py` orqali yaratiladi. Qo'shimcha so'rov maydonlari rad etiladi. IDlar kiritilmagan taqdirda server tomonida yaratiladi. Mualliflik, vaqt, snapshot va imzo chaqiruvchi tomonidan taqdim etilmaydi. Grant IDlari Access-ning mavjud 16-hex formatiga mos keladi; karta IDlari 32 hex. Standart JSON – bu UTF-8, tartiblangan ob'ekt kalitlari, tokenlar orasida bo'shliq yo'qligi, eskap qilinmagan Unicode va NaN/cheksizliklar yo'qligi. Izoh xesh qiymati – bu `format: "tgwitness-annotations-v1"` va barcha yetti konvert maydonlarini `previous_hash`gacha o'z ichiga olgan standart ob'ektning SHA-256 xeshidir. Ushbu format tegi uning xesh domenini kuzatuvlardan ajratadi. Imzo 32 xom hash bayt ustida Ed25519 algoritmi bo'yicha yaratiladi. Ketma-ketlik 1 dan boshlanadi. Tahrirlar karta ID-sini saqlab qoladi va oldingi annotatsiya hashiga `supersedes` so'zini qo'shadi; ular chat doirasini o'zgartira olmaydi. Ko'chirishlar, holatlar va olib tashlash alohida yozuvlardir. SQLite jadvali UPDATE va DELETE operatsiyalarini rad etadi. `case-board.json` fayli `{statement, signature}` ni o'z ichiga oladi. Kanonik bayonot ish maydoni kaliti bilan imzolangan bo'lib, quyidagilarni o'z ichiga oladi: `format: "tgwitness-case-board-v1"`, `public_key`, `created_at`, `journal_head`, `meaning` va `state`. Holat deterministik qayta ijro etishdan iborat: `annotations_head`, tartibli `items` massiv (to'plamlar, kartochkalar, izohlar, jumladan bekor qilinganlar) va `status_history`. Elementlar o'zlarining oxirgi annotatsiya xeshini, tartibini, muallifini va vaqtini, shuningdek, asl yaratuvchini va yaratilgan vaqtini qayta ko'rib chiqishlar davomida saqlab qoladi. Qayta ijro etish qayta ko'rib chiqishlarni, ota-onalarni, kollektsiya havolalarini va takroriy harakat IDlarini tekshiradi. `manifest.json` va yangi tekshiruv nuqtalari ham `annotations_head`ni bog'laydi. Qisqartirish yoki nusxa olingan imzo kaliti bilan qayta yozishni aniqlash uchun tekshiruv nuqtasini mustaqil ravishda saqlang. ### Matn versiyalari `range.start` nolga asoslangan Unicode kod nuqtasi ofseti, `length` ijobiy kod nuqtasi soni, va `quote` maqsadli voqeadagi `payload.text` yoki `payload.caption` ning aniq substringiga teng bo'lishi kerak. Hech qanday NFC/NFKC, katta-kichik harflarni birlashtirish yoki grafema normallashtirish qo'llanilmaydi. Python satr kesmalari va JavaScript `Array.from(text)` bir xil indekslashni amalga oshiradi. Belgilar va ZWJ emojilarini birlashtirish bir nechta kod nuqtalarini egallashi mumkin. `range.version` maqsadli voqea xeshidir, joriy xabar versiyasi yoki Telegramning UTF-16 birlik ofseti emas. Keyingi tahrirlar hech qachon avtomatik ravishda ajratmani ko'chirib qo'ymaydi. ### Shaxsiyat va vaqtni bo'laklarga ajrating `query` aniq bir `chat_id` yoki bo'sh bo'lmagan `chat_ids`, ixtiyoriy ichiga oluvchi `from`/`to`, ichiga oluvchi xabar-ID chegaralari (faqat bitta chat uchun), `kinds: "all"` yoki aniq/prefix wildcard turlari, aniq `actors`, `search`, `hide_system` va `include_unscoped` ni qabul qiladi. Journal tur guruhlari o'zlarining aniq predikatlariga kengaytiriladi. Qidiruv jurnalning NFC/case-folded yuklamasini imzolangan manba matnini o'zgartirmay qidiradi. Sana va vaqt zonasi talab qilinadi va UTC ga muvofiqlashtiriladi. Sanalar **observed_at ni** filtrlaydi. Telegramning `source_at` alohida ko'rsatiladi. Manba vaqti ko'rsatilmagan o'chirish uchun ixtiro qilingan o'chirish vaqti mavjud emas. Vaqt oralig'idan tashqarida kuzatilgan kechikgan yozuv unga kiritilmaydi; message-ID bo'lagi o'sha xabar IDlari uchun keyingi o'chirishni o'z ichiga olishi mumkin. `snapshot` yaratish vaqtini, jurnal ketma-ketligi/hash chegarasini, mos kelish sonini, birinchi/oxirgi ketma-ketlikni va `result_hash` ni belgilaydi. Oxirgi qiymat leksikografik tartibda saralangan mos keluvchi voqea hashlarining UTF-8 kanonik JSON massivining SHA-256 hashidir, bo'sh bo'lak uchun `[]` ham kiritilgan. U shuningdek aniq turlar soni va 24-bo'limli kuzatuv vaqtining kichik nusxasini o'z ichiga oladi. Bir bo'lak so'rovni saqlaydi, manba yozuvlarining takrorlarini emas. Eksportda `board/slices/.json` hozirgi hashlar va qo'shilgan/o'chirilgan ketma-ketliklarni ro'yxatlaydi. Verifikator avval yaratilish chegarasida asl natijani, keyin esa joriy natijani qayta tiklaydi. Qo'shilgan yozuvlar o'zgarish hodisasi sifatida qayd etiladi. Asl voqeani o'chirish o'zgarmas dalillar zanjirini buzadi; u oddiy bo'lakdan o'chirish kabi jim qabul qilinmaydi. Reaksiya snapshotlari yaqinda ishtirok etgan aktyorlar ro'yxatini to'liq aks ettirmaydi. Explorer bir xil chat/xabarning yonma-yon snapshotlarini, jumladan kesimdan tashqaridagi avvalgi snapshotni solishtiradi va **kuzatuvlar orasidagi** umumiy son o'zgarishlarini hisobot qiladi. Yaqinda ishtirok etgan aktyorlarning yo'qolishi reaksiya o'chirilganligini anglatmaydi. Birinchi snapshotda ilgari holat aniqlanmagan. Aktsyor kuzatuvlari ular taqdim etilgan snapshotga tegishli bo'lib qoladi, ixtiro qilingan harakat vaqtiga emas. ## API va eksportlar `GET /api/board` collection/chat/author/label/state/from/to/q/kind/comments, offset/limit va newest/oldest tartibni qabul qiladi. `GET /api/board/card/{id}` card, source preview, thread, status history va bog'liq kartalarni qaytaradi. Ishtirokchilar subyo'li mos keladigan tilga olish variantlarini qaytaradi. `POST /api/board/{bookmark|highlight|slice|collection|comment|status|move|remove}` yozuvni ilova qiladi. `POST /api/board/slice-preview` so'rovni hisoblaydi. Bo'lak yozuvlari `GET /api/board/slice/{id}/records` bo'yicha sahifalangan; qayta hisoblash har doim joriy barqaror o'qish snapshotidan foydalanadi. Jonli `/api/stream` jurnal kursorlaridan alohida, yuk bo'lmagan `board` bildirishnomalarini chiqaradi. `GET /api/board/export` imzolangan hujjatni qaytaradi. Chatga cheklangan kirish aniq belgilangan imzolangan **oshkor etish**ni oladi, hech qachon boshqa chatning izohlari yoki to'liq zanjirni emas. To'liq dalil ZIP-fayllari `annotations.jsonl`, imzolangan `case-board.json` va slice JSON ilovalarini o'z ichiga oladi. HTML/PDF/JSON hisobot sozlamalari hech qanday doska, muhokamasiz belgilamalar/bo'laklar yoki izohli kartochkalarni tanlash imkonini beradi. Bo'lim jamoa fikrlarini kuzatuvlardan aniq ajratadi. Hisobot ma'lumotlari filtrlari o'qiladigan eslatmalarni ham cheklaydi; dalillar ZIP-faylidagi to'liq imzolangan manba fayllari esa to'liq saqlanadi. `GET /api/board/slice/{id}/export` imzolangan `tgwitness-board-selection-v1` JSON parchasi hosil qiladi; `?format=csv` mustaqil imzosiz qulay jadval hosil qiladi. JSON va ZIPni saqlang: ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_KEY_SHA256 --board python -m tgwitness.verify board-slice.json --evidence evidence.zip --fingerprint TRUSTED_KEY_SHA256 python -m tgwitness.verify case-board.json --evidence evidence.zip --fingerprint TRUSTED_KEY_SHA256 ``` Selection check imzolangan bayonotni, aniq manba yozuvlarini va so'rovning belgilangan chegaradagi to'liqligini tasdiqlaydi. Dalil ZIP yangilanishi mumkin, lekin o'sha prefiksni o'z ichiga olishi shart. Bog'lanmagan maqsad aniq xabar qilinadi. Boshqa original slice snapshot, o'zgartirilgan izoh, mos kelmaydigan qayta ijro holati yoki o'zgartirilgan manba muvaffaqiyatsiz bo'ladi. Eskirgan arxivlar annotatsiyalarsiz mavjud tekshirish xulq-atvorini saqlab qoladi. Topshirish bo'yicha standart sozlama – **"Kiritilmasin"**. Ochiq kiritish allaqachon minimallashtirilgan yozuvlar orqali kartalarni o'tkazadi, kirib bo'lmaydigan/chetda qoldirilgan maqsadlarni o'tkazmaydi, manba matni minimallashtirilgan qaydlarni yashiradi, jamoa matnini bir xil tilga olish/aloqa qoidalari bilan tozalaydi va ixtiyoriy ravishda tergovchi yorliqlarini metama'lumotlarda va eslatmalardagi ma'lum uchrashuvlarda R01, R02… bilan almashtiradi. `annotations.jsonl`ning asl nusxasi oshkor etilmaydi. Imzolangan `tgwitness-case-board-handover-v1` yon fayli va hisobotda bir xil qisqartirilgan material mavjud. Slice sonlari faqat oshkor qilingan yozuvlarni tasvirlaydi, asl snapshot/so'rov ijrochisi tafsilotlari esa yashiriladi. Minimizatorga noma'lum bo'lgan erkin matndagi nomlar ham oddiy topshirishlarda bo'lgani kabi ko'rib chiqishni talab qiladi. Ushbu hosil qilingan versiya qizil chiziq tortilgandan so'ng asl annotatsiya imzolarini saqlab qolishni da'vo qilmaydi. ## Ishlash chegaralari Parametrlarga 10 000 kartochka va 50 000 izoh uchun yumshoq limitlar, 5 000 yozuvgacha bo'lgan slice sahifasi va media-ko'rinishni boshqarish kiradi. Yumshoq limitlar tarixni o'chirmasdan ogohlantiradi. Feed sahifalari eng ko'pi bilan 200 kartadan iborat. Alohida JSON parchalari 64 MiB bilan cheklangan; so'rovni toraytiring yoki katta material uchun imzolangan ZIP-fayldan foydalaning. Alohida tekshiruvchi izohlarni qayta ijro etishni 256 MiB bilan cheklaydi. Case Board tomonidan hech qanday tashqi izoh bildirishnomalari yoqilmagan yoki amalga oshirilmagan. Ushbu xususiyatning avtomatlashtirilgan qabul qilishi saqlash, kirish, renderlash va eksportni tekshirish uchun badiiy ma'lumotlar va simulyatsiya qilingan Telegram transportidan foydalanadi. Dalillar tekshiruvi doirasini ko'rish uchun [tasdiqlash doirasiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) qarang. --- # Telegram · Arxiv tahlili Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/analysis/ Saqlangan xabarlarni qidiring, sun'iy intellekt kirimlarini ko'rib chiqing va manba havolalari bilan analitik hisobotlarni saqlang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Saqlangan xabarlarni qidiring, sun'iy intellekt kirimlarini ko'rib chiqing va manba havolalari bilan analitik hisobotlarni saqlang. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Tergov](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/) ![Tergov](https://phishdestroy.github.io/TgWitness/assets/chapter-investigate.svg) [Ish jarayoni bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/docs/archive/) · [Wiki](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Archive-and-Integrations.md) AI ishtirokisiz mahalliy qidiruv uchun **Journal-**dan foydalaning; [to'liq matnli qidiruv](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/) (oldindan ko'rish) so'z shakllari, iboralar, domenlar va @foydalanuvchi nomlarini mos keltiradi. **Ask arxivi** uchun avvalo **Integrations** bo'limida provayderni yoqib, sozlang. Ish maydoni tanlovchisi hisobni, forma esa suhbatlar va kuzatuv davrini tanlaydi. Ma'lumotlarni tiklash mahalliy tarzda ishlaydi. Aniq ibora yoki domen qidiruvni toraytiradi; xabar ID saqlangan versiyalarni so'raydi. Parçalarni ko'rib chiqing va ularning jurnal yozuvlari yoki kontekstini oching. Vektor ma'lumotlar bazasi yoki avtomatik Telegram harakati mavjud emas. ## Provayderlar va rozilik Har bir ish maydonida sun'iy intellekt o'chirilgan holda boshlanadi. Faqat asosiy administrator model, endpoint, shifrlangan API kaliti, kontekst/chiqish chegaralari, timeout va kunlik so'rov byudjetini sozlay oladi. Kalit hech qachon brauzerga qaytarilmaydi. Joriy kalitni saqlab qolish uchun kalit maydonini bo'sh qoldiring yoki uni aniqlik bilan o'chirib tashlang. Ollama o'zining hujjatlashtirilgan [`/api/chat` manzilidan](https://docs.ollama.com/api/chat) jonli efirda bo'lmagan JSON chiqish bilan foydalanadi. Uning standart manzili TgWitness serverida `http://127.0.0.1:11434`. Operator uni `TGWITNESS_AI_LOCAL_ENDPOINT` orqali o'zgartirishi mumkin; bu model nazoratidagi manzil emas. Tanlangan modelni o'zingiz o'rnating. TgWitness uni avtomatik yuklamaydi. Mos keluvchi provayder `/v1` bilan tugaydigan asosiy URL manzilni va [Chat Completions protokoli](https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/create): `messages`, JSON javob rejimi, `max_completion_tokens` va `choices[0].message.content` ni kutadi. Ushbu maydonlarga ega bo'lmagan xizmatlar qo'llab-quvvatlanmaydi. Ulanishni sinash sintetik matn yuboradi va so'rov byudjetiga qo'shiladi. Har bir so'rov ish maydonining sozlangan tashqi yo'lidan foydalanadi. Bloklangan yo'l yoki faqat Telegram MTProxy xato hisoblanadi; to'g'ridan-to'g'ri qayta urinish mavjud emas. Ataylab sozlangan mahalliy Ollama manzili xususiy manzilga ruxsat beradi. Loopback AI manzili ish maydonining To'g'ridan-to'g'ri tashqi yo'lidan foydalanishni talab qiladi; proxy yo'llari uzatishdan oldin rad etiladi. Boshqa xususiy xizmatlar uchun mavjud server darajasidagi xususiy manzilga ruxsat berish qoidasi amal qiladi. Ko'rinish manzil va tashqi yo'lni, zarur bo'lganda proxy mezbonini ham ko'rsatadi. Ushbu yo'lni o'zgartirish yangi ko'rinishni talab qiladi. Generatsiyadan oldin **modelga yuborilgan ma'lumot** so'rovni ko'rsatadi: savol, tekshirilgan parchalar, voqea turlari, kuzatuv vaqtlari va qamrov markerlari. Telegram sessiyalari, xom maydonlar, provayder kalitlari, ilova baytlari va to'liq jurnal ushbu kontekstga kirmaydi. Istalmagan manbalarni belgilashni bekor qiling, so'ng qayta ishlashni aniq tasdiqlang. Tashqi provayderlar taqdim etilgan kontentni o'z siyosatlari doirasida saqlab qolishlari mumkin. Mahalliy ijro degani maqsad nuqtasi mahalliy ekanligini anglatadi; bu mustaqil sozlangan xizmatning xatti-harakatlariga oid kafolat emas. Butun dunyo bo'ylab bir vaqtning o'zida ko'pi bilan ikki ta provayder so'rovi va har bir ish maydoni bo'yicha bittadan so'rov bo'lishi mumkin. Ko'rinish o'n daqiqadan so'ng amal qilmay qoladi va bitta javob hosil qilishi mumkin. Provayder tomonidan xabar qilingan token sonlari ko'rsatiladi; xarajatlar baholovi faqat kirish va chiqish tariflari sozlanganida paydo bo'ladi. Muvaffaqiyatsiz urinishlar ham kunlik so'rov byudjetini sarf qiladi. Avtomatik qayta urinishlar qo'shimcha byudjet sarflamaydi. ## Manbalar va cheklovlar Ma'lumotni tiklash to'liq tugagach, [to'liq matn ind](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#ask-the-archive-and-mcp)eksidan foydalanadi: tanlangan suhbatlar bo'ylab so'z shakllari bilan eng yaxshi mosliklar. Yaqinda bo'lgan o'zgarishlar yoki bir xabarning versiyalari haqidagi savollar va indeks tuzilayotgan paytdagi qidiruvlar eng yangi yozuvlarning chegaralangan leksikal qidiruvidan foydalanadi. Oldindan ko'rish usulni nomlaydi. Ma'lumotni tiklash 24 tagacha manbani qaytaradi; uzun matnlar mos kelgan joyda qisqartiriladi. Kesilgan parchalar va to'liq bo'lmagan natija to'plamlari belgilab qo'yiladi. Davr **kuzatuv vaqti** ga ishora qiladi, Telegram tarixi to'liq degan da'vo emas. Ish maydoni bo'ylab qamrov voqealari suhbat doirasidagi kirishdan yashiriladi. Yo'qolgan ma'lumotlar mavjud arxivda topilmagan deb ta'riflanadi. Model hech qanday vositalarni olmaydi. Uning manba IDlari tanlangan yozuvlarga nisbatan aniqlanadi, xeshlar qayta tekshiriladi va iqtibos keltirilgan satrlar shu yozuvlarda mavjud bo'lishi kerak. Noma'lum identifikatorlar, o'zgartirilgan iqtibos belgilari va manbasi ko'rsatilmagan da'volar javobni rad etadi. Ilova havolalar yaratadi; model tomonidan yaratilgan URL manzillar manba sifatida qabul qilinmaydi. Ushbu tekshiruvlar manbaning mavjudligini va iqtibosning aniqligini tasdiqlaydi, xulosaning to'g'riligini emas. Xulosalarga tayanishdan oldin ularni yozuvlarga muvofiq ko'rib chiqing. ## Hisobotlar Ko'rib chiqilgan javobni alohida tahliliy hisobot sifatida saqlang. U model xulosasi, kuzatilgan xronologiya, olingan havolalar va foydalanuvchi nomlari, tahrirlash/o'chirish yozuvlari, qamrov chegaralari va manba voqealari xeshlarini o'z ichiga oladi. Provayder, model, maqsad nuqtasi, vaqt va so'rov-shablon versiyasi ham unga biriktiriladi. Hech qanday identifikatorlar avtomatik ravishda birlashtirilmaydi. Tahlilchi tahrirlari va eslatmalari model xulosasidan alohida saqlanadi. Hisobotlar shifrlangan hosil fayllarda, imzolangan voqealar oqimidan tashqaridagi indeks bilan saqlanadi; asl voqealar va media o'zgarmaydi. Faqat egasi yoki ma'muri hisobotni ochishi mumkin va manbaa kirish huquqi qayta tekshiriladi. Yuklab olish uchun shuningdek eksport ruxsati talab etiladi. 1-versiya hisobotlarni imzolamaydi va model xulosalarini tekshirilgan dalil deb hisoblamaydi. Cheklovlar: har bir ish maydoni uchun 100 ta hisobot va har bir hisobot uchun 100 ta tahlilchi tahrirlari. Qo'lda OCR va transkriptlar uchun [media ishlov berish bo'limiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/media-analysis/) qarang. Klientga kirish uchun [MCP bo'limiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/) qarang. --- # Telegram · To'liq matnli qidiruv Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/ Imzolangan jurnalga bog'langan indeks yordamida so'z shakllari, aniq iboralar, domenlar va @foydalanuvchi nomlari bo'yicha saqlangan xabarlarni toping, eng yaxshi mos keladiganlarini birinchi qilib ko'rsating. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Imzolangan jurnalga bog'langan indeks yordamida so'z shakllari, aniq iboralar, domenlar va @foydalanuvchi nomlari bo'yicha saqlangan xabarlarni toping, eng yaxshi mos keladiganlarini birinchi qilib ko'rsating. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Tergov](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/) ![Tergov](https://phishdestroy.github.io/TgWitness/assets/chapter-investigate.svg) [Arxiv tahlili](https://phishdestroy.github.io/TgWitness/uz/docs/reference/analysis/) · [Mahalliy OCR va transkripsiya](https://phishdestroy.github.io/TgWitness/uz/docs/reference/media-analysis/) · [Wiki](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Archive-and-Integrations.md) **Ko'rinish.** Jurnalda qidiruv maydoni yonidagi **Eng yaxshi moslik · so'z shakllari** ni tanlang. Natijalar BM25 bo'yicha tartiblangan va bir xil so'zning boshqa shakllariga mos keladi: *перевод* so'zi *переводом* va *переводы ni* topadi, *transfer* *so'zi* *transfers* ni topadi, xitoy iborasi bo'shliqlarsiz topiladi. **Eng yangi birinchi · aniq matn** butun yozuv bo'ylab oldingi substring qidiruvini saqlaydi. Indeks – bu hosil qilingan ma'lumot. U imzolangan jurnal asosida qayta tuziladi, hech qachon o'zi imzolanmaydi va hech qachon eksportga kiritilmaydi. Asl yozuvlar o'zgarmaydi. **Ushbu sahifada** - [Qidiruv sintaksi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#search-syntax) - [tillar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#languages) - [Indeks qaerda joylashgan](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#where-the-index-lives) - [Natijalar va imzolangan jurnal](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#results-and-the-signed-journal) - [Tan olingan matn](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#recognized-text) - [Kirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#access) - [Arxiv va MCPdan so'rang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#ask-the-archive-and-mcp) - [Qarorgohlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#dependencies) - [Benchmark](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#benchmark) ## Qidiruv sintaksi | Yozing | Topadi | | --- | --- | | `перевод карта` | Ikkala so'zni ham o'z ichiga olgan yozuvlar, har qanday shaklda | | `"переводом на карту"` | Aniq ibora, aynan shu tartibda | | `бонус OR подарок` | Istalgan so'z | | `перевод -казино` | Chiqarib tashlangan so'zsiz yozuvlar | | `example.com` | Domen va uning ostki domenlari, shuningdek yashirin havolalar va tugma URL-larida | | `@username`, `t.me/username` | Hisobning tilga olinishi va havolalari, shuningdek yuborgan xabarlari | | `#tag` | Heshteg | | `+79991234567`, hamyon manzili, elektron pochta manzili | Matn yoki havolalardagi xuddi shu qiymat | | `from:@username`, `from:123456` | Ushbu jo'natuvchidan kelgan xabarlar | | `chat:-1001234567890` | Bir chat; u faqat sizning o'z kirishingizni cheklashi mumkin | | `id:42` | 42-xabar versiyalarining saqlangan nusxalari | | `since:2026-01-01 until:2026-01-31` | Kuzatuv davri; vaqtsiz sana butun kunni qamrab oladi | | `kind:edited` | Faqat tahrirlar (`new`, `snapshot`, `edited`, `recovered`) | | `source:ocr`, `source:transcription`, `source:all` | Xabarlar o'rniga yoki ular bilan birga tan olingan matn | Boshqa so'zlar mavjud bo'lsa, predloglar va boshqa funksional so'zlar e'tiborsiz qoldiriladi. So'z ichiga aralashgan bir-biriga o'xshash harflar (Cyrillic harfi ichidagi lotin *a*), kengligi to'liq harflar va bezakli Unicode harflari hamda ko'rinmas belgilar normalizatsiya qilinadi. ## tillar Til har bir yozuvda uning skripti va harflari asosida aniqlanadi: | Skript | Mos kelish | | --- | --- | | Kirillik | [pymorphy3](https://github.com/no-plagiarism/pymorphy3) yordamida rus va ukrain lemmmalari. Ixtiyoriy ukrain lug'oti bo'lmasa, yengil ukrain stemmeri ishlatiladi. | | Lotincha | Inglizcha Snowball stemmer; diakritik belgilar e'tiborsiz qoldiriladi | | Xitoycha, yaponcha, koreyscha, taycha, laocha, xmercha, myanmacha | Qoplashgan harf juftliklari: bo'shliqlarsiz topilgan istalgan ibora. Xitoy so'rovlari jieba yordamida so'zlarga bo'linadi. | | Boshqa skriptlar | Aniq so'zlar | Ukrain tilidagi lug'at (`pymorphy3-dicts-uk`) GPL-3.0 litsenziyasi ostida tarqatiladi, shuning uchun u standart bo'yicha o'rnatilmaydi. Uni quyidagilar bilan o'rnating `pip install "tgwitness[uk-dictionary]"`; indeks yangi tahlilchisini payqab, o'zini qayta kompilyatsiya qiladi. ## Indeks qayerda joylashgan | Rejim | Saqlash | Foydalaning | | --- | --- | --- | | Diskda (bo'sh) | `search/fulltext.sqlite3` ish maydoni katalogida | Katta arxivlar; qayta ishga tushirishlardan omon qoladi | | Faqat xotirada | Diskda hech narsa yo'q; har boshlanishda qayta kompilyatsiya qilinadi | Diskda xabar matnining hech qanday hosil qilingan nusxasi | | O'chirilgan | Indeks yo'q; **eng yangi birinchi · aniq matn** saqlanadi | Minimal o'rnatishlar | Asosiy administrator har bir ish maydoni uchun **Jurnal → Filtrlar → Qidiruv indeksi** bo'limida rejimni tanlaydi. `TGWITNESS_FULLTEXT=disk|memory|off` o'z tanlovi bo'lmagan ish maydonchalari uchun standartni belgilaydi. Xotiraga yoki o'chirilgan holatga o'tish faylni o'chirib tashlaydi. Indeks fayli jurnal bilan bir xil himoyaga ega: u shaxsiy ma'lumotlar papkasi ichida joylashgan. U shifrlanmagan va zaxira nusxalari yoki tashqi nusxalarning tarkibiga kirmaydi. Yangi yozuvlar fon rejimida bir necha soniya ichida indekslashadi; qidiruv ham avval qisqa orqaliqni indekslaydi, shuning uchun bir zum oldin saqlangan yozuv topiladi. Mavjud jurnal yangilanishdan so'ng panelni bloklamasdan indekslashadi; shu vaqtgacha natijalar indekslangan yozuvlarni qamrab oladi va jurnal jarayonning borishini ko'rsatadi. **Indeksni qayta qurish** birinchi yozuvdan boshlab yana boshlanadi. ``` python -m tgwitness index status --data-dir data/live python -m tgwitness index rebuild --data-dir data/live --json ``` `rebuild` panel to'xtatilishi kerak (aks holda chiqish kodi 3 bo'ladi). `--json`, standart chiqish faqat natijani uzatadi; jarayon holati standart xato chiqishiga yoziladi. ## Natijalar va imzolangan jurnal Indeks qamrab olgan oxirgi jurnal yozuvining ketma-ketlik raqami va hashini saqlaydi va jurnal ochilganda ularni jurnal bilan solishtiradi. O'rnini bosgan, tiklangan yoki tahrirlangan jurnal qayta tuzilishiga sabab bo'ladi. Har bir javob ushbu pozitsiyani bildiradi, va har bir topilma imzolangan jurnaldan uning ketma-ketlik raqami bo'yicha o'qiladi: indeks qaysi yozuvlarni va qanday tartibda ko'rsatishni belgilaydi, ularning mazmunini emas. Chatga kirish huquqi jurnalning o'z chat maydoniga qo'llaniladi, indeks mazmuniga emas. ## Tan olingan matn OCR va transkriptlar shifrlangan artefaktlarda qoladi. Ularning indeksi faqat xotirada mavjud bo'lib, tan olish ishi yakunlanganda qayta tuziladi. Topilma uning `media.saved` yozuvida paydo bo'ladi, u yerda mashina tanib olish, dvigatel, model va parchasi bilan belgilangan; u hech qachon Telegramda yuborilgan matn sifatida ko'rsatilmagan. Xuddi shu indeks **tan olingan matnni qidirish** uchun xizmat qiladi, u hanuz oddiy substringlarga ham mos keladi. ## Kirish Suhbat doirasidagi kirish faqat o'z suhbatlaridagi yozuvlarni, ularning ilovalaridagi tan olingan matnni ham o'z ichiga olgan holda topadi. `chat:` va boshqa filtrlar faqat shu to'plamni toraytirishi mumkin. Cheklangan kirishga ko'rsatilgan indeks holati jurnalning umumiy yig'indilarini o'z ichiga olmaydi. Faqat asosiy administrator rejimni o'zgartirishi yoki indeksni qayta qurishi mumkin. ## Arxiv va MCPdan so'rang **So'rov indeks** to'liq tugagach, u manbalarni ushbu indeksten oladi: tanlangan suhbatlar bo'ylab eng yaxshi mos keluvchi natijalar, saqlangan matn esa faqat bir marta hisobga olinadi. 24 tagacha manba yuboriladi; uzun matnlar mos kelgan joyidan kesilib, qisqartirilgan deb belgilangan. Yaqinda bo'lgan o'zgarishlar, bitta xabarning saqlangan versiyalari va indeks hali shakllanayotgan paytdagi qidiruvlar bo'yicha savollar oldingi xronologik olish usulidan foydalanadi. Oldindan ko'rish qaysi usul ishlatilganini ko'rsatadi. MCP mijozlari chaqirishi mumkin `search_messages` bilan `ranked=true` va sahifa bilan `next_offset`. Doiraga ajratilgan ulanishlar faqat o'z chatlarini oladi. Ranglab tartiblangan sahifalash sahifa hajmiga qaramasdan, eng ko'pi bilan birinchi 1,000 ta natijani qamrab oladi. Qo'shimcha mosliklarni ko'rib chiqish uchun so'rov, suhbat yoki davrni toraytiring. Eng yangi avval qidiruvlar har bir sahifani tanlashdan oldin xabarlar, OCR va transkripsiya natijalarini tartiblaydi. ## Qaramliklar | Paket | Litsenziya | Nega | | --- | --- | --- | | pymorphy3, pymorphy3-dicts-ru, DAWG2-Python | MIT | Rus va ukrain leksemalari; lug'atlar mahalliy ravishda yuklangan | | snowballstemmer | BSD-3-band | Inglizcha stemlar, sof Python | | jieba | MIT | Xitoycha so'rov segmentatsiyasi, sof Python (faqat manba tarqatmasi) | | pymorphy3-dicts-uk (ixtiyoriy) | GPL-3.0 | To'liq ukraincha lug'at | SQLite FTS5 bilan `unicode61` tokenizator talab etiladi; u joriy Python kompilyatsiyalaridagi SQLite tarkibiga kiradi. U bo'lmasa, best-match qidiruvi mavjud emasligini bildiradi. ## Benchmark `python tools/bench_fulltext.py --messages 1000000 --work `200 ta chatdagi rus, ukrain, ingliz, xitoy va yapon tillaridagi aralash xabarlarning havolalar va identifikatorlar bilan deterministik imzolangan jurnalini yaratadi, indeksni tuzadi va odatiy qidiruvlarni (50 ta natija, 7 marta ijro etishning mediani) vaqt bo'yicha aniqlaydi. Windows 11, Intel Core i9-13900K, 128 GB operativ xotira, Python 3.12.10, SQLite 3.49.1, ma'lumotlar exFAT diskida, analizator `fulltext-v1+pymorphy3-ru+light-uk+snowball-en`: | O'lchash | Natija | | --- | --- | | Imzolangan jurnal | 1 000 000 xabar, 1,50 GiB, 19 daqiqada yozilgan | | Jurnal asosida indeks tuzish | 71 s, sekundiga taxminan 14 141 xabar | | Indeks fayli | 58 MiB, jurnalning 3,8% | | Yangi yozuvdan keyin qidiruv | 8 ms median, 9 ms p95 | | Avvalgi substring qidiruvi, xuddi shu jurnal | `перевод` 3.2 s, `银行转账` 2.6 s, `verify-account.example` 2.6 s | | Qidiruv | Mos yozuvlar | Eng yaxshi moslik, mediana | p95 | Eng yangi birinchi, o'rtacha | | --- | --- | --- | --- | --- | | Umumiy so'z, so'z shakllari: `перевод` | 134,403 | 82 ms | 85 ms | 7 ms | | Ikki so'z: `оплата карта` | 28,996 | 43 ms | 43 ms | 14 ms | | Kam uchraydigan so'z: `розыгрыш подарок` | 28,881 | 42 ms | 47 ms | 13 ms | | Aniq ibora: `"переказ коштів на картку"` | hisobga olinmagan | 35 ms | 36 ms | 6 ms | | Subdomensiz domen: `verify-account.example` | 12,435 | 17 ms | 17 ms | 3 ms | | @foydalanuvchi_nomi: `@support_desk_bot` | 10,331 | 15 ms | 16 ms | 3 ms | | Bo'shliqsiz xitoycha: `银行转账` | 17,691 | 23 ms | 24 ms | 3 ms | | Yaponcha: `リンク` | 16,603 | 23 ms | 25 ms | 3 ms | | Inglizcha asos: `withdrawal` | 27,775 | 26 ms | 26 ms | 2 ms | | VA istisno: `бонус OR подарок -казино` | 268,034 | 190 ms | 193 ms | 19 ms | | Suhbat filtri: `chat:-1000000000007 перевод` | 652 | 9 ms | 9 ms | 6 ms | | Davr filtr: `since:2026-01-01 until:2026-01-31 выплата` | 115,732 | 155 ms | 156 ms | 81 ms | Aniq ibora nomzodlar bo'yicha tartib bo'yicha so'zma-so'z tekshiriladi, sahifa to'lib qolguncha, shuning uchun uning umumiy soni hisobga olinmaydi. Qidiruv vaqti mos yozuvlar soni ortishi bilan oshadi; suhbat yoki davrni toraytirish keng qamrovli qidiruvlarni tezlashtiradi. Sintetik korpus kichik lug'atni takrorlaydi, shuning uchun umumiy so'zlar haqiqiy suhbatlardagiga qaraganda ancha ko'proq yozuvlarga mos keladi. --- # Telegram · Faqat o'qish uchun MCP Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/ MCP mijozini tanlangan ish maydonlari va suhbatlarga muddati tugaydigan, bekor qilinishi mumkin bo'lgan kirish huquqi bilan ulashing. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) MCP mijozini tanlangan ish maydonlari va suhbatlarga muddati tugaydigan, bekor qilinishi mumkin bo'lgan kirish huquqi bilan ulashing. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Arxiv integratsiyalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/) ![Arxiv integratsiyalari](https://phishdestroy.github.io/TgWitness/assets/chapter-integrations.svg) Analitik klientni tanlangan ish maydonlari va suhbatlarga ulang. TgWitness **panel jarayonida `/mcp` manzilida Streamable HTTP xizmatini** taqdim etadi. Har bir ulanishning o'z tokeni, amal qilish muddati va ruxsat etilgan vositalari mavjud. MCP Telegram xabarlarini yubora olmaydi, sozlamalarni o'zgartira olmaydi yoki imzolangan jurnalni tahrir qila olmaydi. Xuddi shu ulanishlar [buyruq qatori](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/) bilan ham ishlaydi. [Ish jarayoni bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/docs/archive/) · [Wiki](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Archive-and-Integrations.md) **Ushbu sahifada** - [O'rnatish va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/#install-and-check) - [Ulanishni o'rnatish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/#issue-a-connection) - [Klientingizni ulang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/#connect-your-client) - [Cloudflare Tunnel](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/#cloudflare-tunnel) - [Vositalar va chegaralar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/#tools-and-boundaries) ## O‘rnatish va tekshirish Panelni ishga tushiradigan Python muhitidan foydalaning. Manba kodlari yuklab olingan katalogdan: ``` # Windows PowerShell & .\.venv\Scripts\python.exe -m pip install -c deploy/constraints-mcp.txt -e '.[mcp]' & .\.venv\Scripts\python.exe start.py --check ``` ``` # Linux / macOS .venv/bin/python -m pip install -c deploy/constraints-mcp.txt -e '.[mcp]' .venv/bin/python start.py --check ``` O‘rnatishdan so‘ng panelni odatdagi ma’lumotlar katalogi va ishga tushirish argumentlari bilan qayta ishga tushiring. Tayyorlik holatida `[PASS] mcp: streamable-http available` bo‘lishi kerak. **Integrations → MCP** bo‘limida ish vaqti (runtime) holati va ushbu serverning haqiqiy Python bajariladigan faylidan foydalangan holda o‘rnatish buyrug‘i ko‘rsatiladi. **Re-check** tugmasi sahifani qayta yuklamasdan ushbu holatni yangilaydi; u paketlarni o‘rnatmaydi yoki serverni qayta ishga tushirmaydi. MCP extra rasmiy [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk)'dan foydalanadi.`deploy/constraints-mcp.txt` sinovdan o'tgan SDK va uning bog'liqliklarini belgilaydi. ## Ulanish yaratish 1. Yorliq kiriting va mijoz o‘qishi mumkin bo‘lgan ish maydonlari hamda chatlarni tanlang. 2. Vositalarni alohida-alohida tanlang yoki tayyor shablondan foydalaning. Faqat amalga oshirilgan vositalar taklif etiladi. 3. 1, 7, 30 yoki 90 kunni, yoxud bir daqiqadan 90 kungacha bo‘lgan maxsus amal qilish muddatini tanlang. 4. **Create connection** tugmasini bosing. Token mijoz konfiguratsiyasi yonida bir marta ko‘rinadi. 5. Token va konfiguratsiyani nusxalab oling, so‘ngra **Check connection** tugmasini bosing. U MCP ni ishga tushiradi va ruxsat etilgan vositalar ro‘yxatini chiqaradi; **hech qanday xabar o‘qilmaydi**. Natijada protokol talqini, vosita nomlari, ularning soni va sarflangan vaqt ko‘rsatiladi. 6. Hisob ma’lumotlari saqlanganidan so‘ng **Done** tugmasini bosing. Davriy so‘rovlar (polling) shaklni va bir marta ko‘rsatiladigan kartani saqlab qoladi. Panelni qulflash ekranda ko‘rsatilgan maxfiy ma’lumotlarni tozalaydi. Ro‘yxatda so‘nggi foydalanish, oxirgi vosita, manzil va so‘nggi daqiqadagi so‘rovlar soni ko‘rsatiladi. **Revoke** kirish huquqini to‘xtatadi. **Rotate token** eski hisob ma’lumotlarini bekor qiladi va xuddi shu qamrov, vositalar hamda amal qilish muddati bilan yangisini yaratadi; yangisini bir marta nusxalab oling. Panelga kirish tokenlari va Telegram hisob ma’lumotlari MCP tokenlari sifatida ishlamaydi. ## Mijozingizni ulash Panelda mijozni tanlang va yaratilgan konfiguratsiyani nusxalab oling. Konfiguratsiyalarda maxfiy havolalar yoki aniq o‘rinbosarlar (placeholders) ishlatiladi; token alohida nusxalanadi. | Mijoz | Konfiguratsiya | Ulanish | | --- | --- | --- | | Klaud Kod | `.mcp.json` | HTTP, `type: "http"`, bearer sarlavhasi | | Claude Desktop | `claude_desktop_config.json` | Lokal stdio ko‘prigi | | Cursor | `.cursor/mcp.json` | Muhit o‘zgaruvchisi sarlavhasiga ega HTTP | | VS Code mahalliy | `.vscode/mcp.json` | Parolli `promptString` kiritmasiga ega HTTP | | Windsurf | `mcp_config.json` | Bearer sarlavhasi o‘rinbosariga ega HTTP | | Boshqa mijozlar | URL va Authorization sarlavhasi | Oqimga bo'linadigan HTTP | TgWitness OAuth aniqlashisiz bearer tokenlardan foydalanadi. Masofaviy ulagichi OAuth talab qiladigan mijozlar uchun lokal stdio ko‘prigidan foydalaning. VS Code uchun kiritish o‘zgaruvchilari **Local** muhitiga taalluqli bo‘lib, Copilot sessiyalariga uzatilmaydi. Konfiguratsiya bo‘yicha ma’lumotnomalar: [Claude Code](https://code.claude.com/docs/en/mcp), [Cursor](https://prod.cursor.com/docs/mcp), [VS Code](https://code.visualstudio.com/docs/agents/reference/mcp-configuration). Lokal ko‘prik uchun standart kirish nuqtasi: ``` python -m tgwitness.mcp_server --url https://your-panel.example/mcp ``` Mijozning MCP qo‘shimcha paketi o‘rnatilgan lokal Python muhitidan foydalaning. Uning himoyalangan muhitida `TGWITNESS_MCP_TOKEN` o‘zgaruvchisini o‘rnating. Hisob ma’lumotlarini buyruq argumentlari va URL manzillariga kiritmang. `tgwitness-mcp` xuddi shu kirish nuqtasidir. Eski `tgwitness.mcp_bridge` moduli va `TGWITNESS_ARCHIVE_TOKEN` nomi ogohlantirish bilan moslik yo‘llari sifatida saqlanib qolgan; yangi konfiguratsiyalarda `mcp_server` va `TGWITNESS_MCP_TOKEN` ishlatiladi. ## Cloudflare Tunnel Panelning `/mcp` yo‘nalishini yo‘naltiring va bearer sarlavhasini saqlab qoling. Administrator sifatida MCP sozlamalarini ochish ushbu ishga tushirish jarayoni uchun panelning joriy manbasini (origin) ro‘yxatdan o‘tkazadi. Qayta ishga tushirilgandan so‘ng darhol mavjud bo‘ladigan barqaror manzil uchun, panelni ishga tushirishdan oldin `TGWITNESS_PUBLIC_URL` o‘zgaruvchisini panelning HTTPS manbasi bilan sozlang. Ixtiyoriy Host va yo‘naltirilgan sarlavhalar ishonchli manzilni ro‘yxatdan o‘tkazmaydi. Host va Origin tekshiruvlari aloqador bo‘lmagan brauzer manbalarini rad etadi. Javoblarda `Cache-Control: no-store` ishlatiladi; avtorizatsiya qiymatlari hech qachon jurnalga yozilmaydi. `*.trycloudflare.com` manzili vaqtinchalik hisoblanadi. Tunnelni qayta ishga tushirish xost nomini o‘zgartirganda, sozlangan ommaviy URL va har bir mijozning MCP URL manzilini yangilang. Saqlangan mijoz konfiguratsiyalari uchun barqaror xost nomidan foydalaning. ## Vositalar va chegaralar | Vosita | O‘qiydi | | --- | --- | | `list_workspaces` | Ruxsat berilgan ish maydonlari | | `list_chats` | Ruxsat berilgan chatlar | | `search_messages` | Tanlangan davr ichidagi saqlangan xabar matni; `ranked=true` [to'liq matn qidiruvidan](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/) foydalanadi (so'z shakllari, eng yaxshi mos keladiganlar birinchi, `next_offset` paging) | | `get_message_versions` | Qayd etilgan talqinlar va o‘chirish kuzatuvlari | | `get_message_context` | Yaqin atrofdagi qayd etilgan xabar ID lari | | `get_journal_event` | Manba havolasiga ega bitta tozalangan (sanitized) yozuv | | `get_capture_status` | Yig'ish holati, ruxsat etilgan qamrov yozuvlari va `gap_summary`: hech qachon kuzatilmagan xabar raqamlari, kanal yoki superguruh bo'yicha va hisob bo'ylab ketma-ketlik ([tфанsilar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#missing-message-numbers-gap_summary)); chatni tanlab, uning ro'yxatdagi bo'shliqlarini ko'ring | | `get_activity_stats` | UTC soati va haftaning kunlari bo'yicha xabarlar, eng yuqori kunlar, tahrirlash va o'chirish ulushi, jo'natuvchilar, domenlar va `@handles`, qamrov ([tavsiflar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/#activity-statistics)) bilan | | `get_messages_by_date` | Belgilangan IANA vaqt zonasidagi bir kalendar kunga saqlangan xabarlar (`Europe/Kyiv`, `UTC`), Telegram xabar bergan vaqtga qadar; `from_utc` va `until_utc` hisoblangan kunni, yozgi vaqtni hisobga olgan holda ko'rsating | | `get_pinned_messages` | Oxirgi chat-holati snapshotida saqlangan versiyalari bilan birga mahkamlangan xabarlar va mahkamlash hamda mahkamlashdan bo'shatish bildirishnomalari jonli kuzatildi | | `get_chat_stats` | Har bir suhbat yoki doiradagi barcha suhbatlar bo'yicha saqlangan yozuvlarning arzon sanovlari, birinchi va oxirgi kuzatuv, va `gap_summary`; katta o'qishdan oldin undan foydalaning | | `get_topics` | Saqlangan mavzu xizmat xabarlari bo'yicha forum mavzulari: sarlavha tarixi, yopiq yoki yashirin, saqlangan xabarlar soni | | `get_media` | Saqlangan rasm kichraytirilgan JPEG ko'rinishi (eng ko'pi 36 KB) shaklida, uning SHA-256 va `media.saved` yozuv; fayl avvalo yozib olingan xesh bilan tekshiriladi, boshqa fayllar esa faqat metadata qaytaradi | | `export_messages` | Faqat buyruq satri, standart bo'yicha tanlanmagan: kuzatuvlarni JSON Lines shaklida saqlangan oqimlar ([tavsiflar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/#export)); MCP orqali taklif etilmaydi | Har bir vosita faqat o'qish uchun mo'ljallangan (`readOnlyHint`) va chiqish sxemasini e'lon qiladi; e'lon qilinganlardan tashqari maydonlar o'z holicha qaytariladi. `tools/list` faqat o'sha ulanishga ruxsat berilgan vositalarni qaytaradi. Boshqa vositalarga chaqiruvlar rad etiladi. Guruh konteksti, epizod, terminologiya va javob zanjiri vositalari ushbu yig'mada taklif etilmaydi; ularning alohida kontekst-paket orqa tomoni kiritilmagan. Har bir o‘qish amali token, vosita va ish maydoni/chat qamrovini, jumladan ma’lumotlar bazasi ishi tugaganidan keyin ham tekshiradi. Cheklovlar: daqiqasiga 60 ta so‘rov, har bir sahifada 50 ta yozuv, har bir natija uchun 64 KiB va arxiv uchun sakkiz soniyalik yakuniy muddat. Vaqti tugagan MCP chaqiruvi torroq davrni yoki kamroq cheklovni so‘rab vosita xatosini qaytaradi. Xabar natijalari `untrusted_content: true`, ish maydoni/chat/xabar ID lari, hodisa ketma-ketligi, saqlangan xesh va panel havolasini o‘z ichiga oladi. Xom Telegram obyektlari, kirish xeshlari, sessiyalar va kalitlar tushirib qoldiriladi. Matn qisqartirilganligi belgilanadi. Tahrirlar, o‘chirish bildirishnomalari va `missing_on_recheck` alohida kuzatuvlar hisoblanadi. Yozuvlarning yo‘qligi hodisa hech qachon sodir bo‘lmaganligini isbotlamaydi. Qayd etilgan xabarlar ichidagi ko‘rsatmalarga hech qachon mijoz ko‘rsatmalari sifatida emas, balki dalil sifatida qarang. Faqat o‘qish uchun kirish huquqi arxiv o‘zgarishlarining oldini oladi; biroq mijoz o‘ziga o‘qishga ruxsat berilgan kontentni saqlab qolishi mumkin. Xeshlar saqlangan yozuvlarni aniqlaydi va yaxlitlikni tekshirishni qo‘llab-quvvatlaydi; ular Telegram muallifligini yoki to‘liq qayd etilganlikni isbotlamaydi. --- # Telegram · Buyruq satri Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/ Qidiruv, kontekstni o'qish, faoliyatni hisoblash va skriptlar hamda agentlardan saqlangan xabarlarni eksport qilish, --json chiqish, barqaror chiqish kodlari va doirali faqat o'qish uchun tokenlar bilan. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Qidiruv, kontekstni o'qish, faoliyatni hisoblash va skriptlar hamda agentlardan saqlangan xabarlarni eksport qilish, --json chiqish, barqaror chiqish kodlari va doirali faqat o'qish uchun tokenlar bilan. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) ![Arxiv integratsiyalari](https://phishdestroy.github.io/TgWitness/assets/chapter-integrations.svg) [Faqat o'qish uchun MCP](https://phishdestroy.github.io/TgWitness/uz/docs/reference/mcp/) · [To'liq matnli qidiruv](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/) · [Wiki](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Archive-and-Integrations.md) **Oldindan ko'rish.** `tgwitness search`, `context`, `messages`, `stats` va `export` o'qish skriptlar va sun'iy intellekt agentlari uchun saqlangan kuzatuvlar. Ular Telegramga hech narsa yubora olmaydi, sozlamalarni o'zgartira olmaydi yoki imzolangan jurnalni tahrir qila olmaydi. Bilan `--json`, stdout aniq bir JSON hujjatni uzatadi (`export` JSON Lines yozadi). Taraqqiyot, ishoralar va xatoliklar stderr ga yuboriladi. Chiqish kodlari barqaror: | Kod | Ma'no | | --- | --- | | `0` | Muvaffaqiyat, bo'sh natija ham kiritilgan | | `1` | Xato: erishib bo'lmaydigan panel, o'qib bo'lmaydigan ma'lumot, uzilgan eksport | | `2` | Foydalanish xatosi yoki noto'g'ri so'rov: noto'g'ri sana, noma'lum parametr, qidiruv indeksi noto'g'ri | | `3` | Hozirda mavjud emas: ish maydoni ishga tushirilgan panelda ochiq yoki panel keyinroq qayta urinishni so'raydi (cheklov, vaqt tugashi) | | `4` | Kirish rad etildi: token yetishmayapti, muddati tugagan yoki bekor qilingan, doirasidan tashqaridagi suhbat, ruxsat berilmaydigan vosita | ## Ikki o'qish usuli **Panel orqali (`--url`).** Bu buyruq MCP kabi bir xil doiraviy arxiv API-dan foydalanadi. **Integratsiyalar → MCP** bo'limida ulanish yarating: ish maydonchalari va suhbatlarni, vositalarni va amal qilish muddatini tanlang, so'ng tokenni bir marta nusxalang. Ulanish faqat o'qish uchun mo'ljallangan, faqat shu suhbatlar bilan cheklangan, daqiqasiga 60 ta so'rov bilan tezlik bo'yicha cheklangan va istalgan vaqtda bekor qilinishi yoki aylantirilishi mumkin. Panelga kirish tokenlari va Telegram ma'lumotlari bu yerda ishlamaydi. ``` export TGWITNESS_URL=https://panel.example.org # default http://127.0.0.1:8787 export TGWITNESS_MCP_TOKEN=tgw_mcp_... # or --token-file path tgwitness search 'перевод карта' --json ``` Masofaviy panel uchun HTTPS talab etiladi; oddiy HTTP faqat uchun qabul qilinadi `127.0.0.1`, `localhost` va `::1`Proxy muhit o'zgaruvchilari e'tiborsiz qoldiriladi va yo'naltirishlar rad etiladi, shuning uchun token faqat siz bergan manzilga yetib boradi. **To'xtatilgan ish maydonidan to'g'ridan-to'g'ri (`--data-dir`).** Tokensiz, to'liq mahalliy kirish huquqi bilan ma'lumotlar katalogini o'qiydi. Ma'lumotlar katalogining nusxasida yoki yig'ish to'xtatilgan paytda ishlating. Imzolangan yozuvlar hech qachon o'zgartirilmaydi; panel kabi, ish maydonini ochish uning hosil qilingan indekslari yangilanishi mumkin. Panel ish maydonini ochgan paytda, buyruq kod bilan chiqadi `3`; o'rniga paneldan o'qish. `--data-dir`, `TGWITNESS_DATA`, `./data/live` yoki buyrug'ni bajarayotgan o'rnatmaning ma'lumotlar katalogi ishlatiladi. `--workspace ID` ish maydonini tanlaydi (bo'sh `default`). `tgwitness messages --workspaces` o'qish huquqiga ega bo'lganlarini ro'yxatlaydi. ## Buyruqlar | Buyruq | Natija | | --- | --- | | `tgwitness search QUERY [--chat ID] [--since] [--until] [--any] [--limit N] [--offset N]` | Avvalo eng yaxshi mos keladiganlar, so'z shakllari, aniq iboralar ikki nuqtali qavs ichida, domenlar va `@username` ([sintaksis](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#search-syntax)) | | `tgwitness search QUERY --exact [--before SEQ]` | Aniq matn, eng yangi avval, indeksisiz | | `tgwitness context CHAT_ID MESSAGE_ID` | Saqlangan xabarlar har ikkala tomondagi o'n xabar ID oralig'ida | | `tgwitness messages` | O'qishingiz mumkin bo'lgan suhbatlar | | `tgwitness messages CHAT_ID [--since] [--until] [--before SEQ]` | Suhbatning saqlangan xabarlari, eng yangilari birinchi | | `tgwitness messages CHAT_ID --message ID` | Har bir saqlangan versiya va bitta xabarning o'chirish yozuvi | | `tgwitness stats [--chat ID] [--sender ID] [--since] [--until] [--top N]` | Quyida faoliyat statistikasi | | `tgwitness export [--chat ID] [--since] [--until] [--output FILE]` | Saqlangan kuzatuvlar jurnal tartibida JSON Lines shaklida | Sanalar `2026-10-01` (UTC yarim kecha) yoki vaqt zonasini hisobga olgan ISO vaqtlari, `2026-10-01T09:00+03:00`. Uchun `search`, `messages` va `export` ular kuzatuv vaqtini tanlaydilar. Sahifalar 50 tagacha yozuvni saqlaydi: kuzatib boring `next_offset` (`--offset`) reytingli qidiruv va `next_before` (`--before`) boshqa joylarda. Reyting bo'yicha qidiruv 1,000 ta natijaga to'xtaydi. Oxirgi sahifa `--limit` dan qisqaroq bo'lishi mumkin; mos keladigan kuzatuvlar ko'proq bo'lgan so'rov, suhbat yoki davrni toraytiring. Har bir xabar natijasi quyidagilarni o'z ichiga oladi `untrusted_content: true`, ish maydoni, suhbat va xabar IDlari, jurnal ketma-ketligi, saqlangan yozuvning xeshini va panel havolasini o'z ichiga oladi. Tahrirlar, o'chirish bildirishnomalari va `missing_on_recheck` alohida yozuvlardir. Yozuvning yo'qligi voqeaning hech qachon sodir bo'lmagani isbotlanmaydi. ### Faoliyat statistikasi `stats` bir suhbat, bir jo'natuvchi yoki doiradagi barcha suhbatlar bo'yicha saqlangan kuzatuvlarni hisoblaydi: - xabarlar UTC soati va haftaning kunlari bo'yicha (dushanba birinchi), eng gavjum soatlar va kunlar; - tahrirlangan, o'chirilgan va `missing_on_recheck` ulashishlar; - xabar soni va birinchi hamda oxirgi xabar yuborilgan vaqtlari bilan yuboruvchilar; - eng ko'p uchraydigan domenlar va `@handles`, saqlangan versiyalar bo'ylab har bir xabar uchun bir marta hisoblanadi; - qamrov: `coverage.gap` yozuvlarni va butun ish maydoniga kirish uchun davrlarni ulangan kollektor yuragi bo'lmagan davrlar (`collector_liveness`). Davr **Telegram tomonidan xabar vaqtini hisobot berish** muddatini belgilaydi. Soat va hafta kunlari soni jo'natuvchining vaqt zonasini taxmin qilishda yordam berishi mumkin; ularni aniq belgilamaydi. Raqamlar jurnal so'rovi bo'yicha hisoblanadi va saqlanmaydi. Har bir natija ish maydoningiz bo'ylab kirishingiz davom etganda qamrab oladigan jurnal sarlavhasini nomlaydi. Paneldan besh soniya o'tgach o'qish to'xtaydi, yoki `--timeout` sekund (defolt 30); so'ngra `complete` noto'g'ri bo'ladi va `partial` o'qilmagan birinchi yozuvni nomlaydi. Bu holda faqat eng so'nggi yozuvlar hisobga olinadi. ### Eksport `export` saqlangan kuzatuv uchun bitta JSON ob'ektini yozadi (yangi xabarlar, snapshotlar, tahrirlar, tiklangan xabarlar, o'chirish bildirishnomalari, `missing_on_recheck` va saqlangan media yozuvlari jurnal tartibida yoziladi. Har bir satr boshqa natijalar kabi bir xil maydonlarga ega bo'lib, to'liq matnni o'z ichiga oladi. `--output`, fayl quyidagi yo'lda yoziladi `.partial` nomini oladi va faqat panel yakuniy yozuvidan keyin qayta nomlanadi; to'xtatilgan eksport hech qanday fayl qoldirmaydi va kod bilan chiqadi `1`. `--output` mavjud faylni hech qachon ustiga yozmaydi. `--output` va `--json`, stdout orqali qisqacha hisobot chiqariladi: yozuvlar soni, oxirgi jurnal ketma-ketligi va butun ish maydoni bo'yicha kirish huquqi bo'lsa, jurnal sarlavhasi. Panel orqali eksport qilish uchun **"Xabarlarni eksport qilish"**ga ruxsat beruvchi ulanish talab etiladi **(faqat buyruq satri)**; bu bo'yicha avtomatik tanlanmagan. Ushbu fayl ishlash nusxasi bo'lib, dalil emas: tekshiriladigan topshirish uchun "**Eksportlar**" bo'limidagi imzolangan eksportdan foydalaning, `python -m tgwitness.verify`tekshiradi. Panel har bir yozuvni, jumladan yakuniy yozuvni chiqarishdan oldin kirishni qayta tekshiradi. Bekor qilingan yoki muddati tugagan kirish to'liq bo'lmagan eksportga olib keladi. Keyingi yuklash orqali sahifalarni o'qish arxiv ishchisi limitini boshqa so'rovlar bilan bo'lishadi va cheklangan kutish muddatiga ega. ## Agent mahorati [`.agents/skills/tgwitness-cli/SKILL.md`](https://github.com/phishdestroy/TgWitness/blob/main/.agents/skills/tgwitness-cli/SKILL.md) agentga bu buyruqlarni qanday ishlatishni, yozuvlarni qanday keltirishni va ushlangan matnni qanday qayta ishlashni tushuntiradi. O'qiydigan agentlar `.agents/skills` Uni ombordan yuklab oling. Claude Code uchun, nusxa ko'chiring `tgwitness-cli` papkaga `.claude/skills/` loyihangizga nusxa ko'chiring yoki `~/.claude/skills/`. ## MCP va buyruq qatori Ikkalasi ham bir xil ulanishlar, doira tekshiruvlari va cheklovlardan foydalanadi. MCP natijalari bitta 64 KiB sahifaga cheklangan, shuning uchun MCP ommaviy eksportni taklif qilmaydi; buyruq satri uni oqim sifatida chiqaradi. `get_activity_stats` har ikkala holatda ham mavjud. --- # Telegram · Mahalliy OCR va transkripsiya Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/media-analysis/ Mahalliy ishchi yordamida ushlangan tasvirlar va audio materiallarni aniqlang; hosil qilingan matnni uning manba fayli bilan bog'lab saqlang. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Mahalliy ishchi yordamida ushlangan tasvirlar va audio materiallarni aniqlang; hosil qilingan matnni uning manba fayli bilan bog'lab saqlang. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Tergov](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/) ![Tergov](https://phishdestroy.github.io/TgWitness/assets/chapter-investigate.svg) [Ish jarayoni bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/docs/archive/) · [Wiki](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Archive-and-Integrations.md) `media.saved` jurnal yozuvini oching, **Ilovani aniqlashni** tanlang, so'ngra **Arxivdan so'rash** bo'limida OCR yoki transkripsiyani tanlang. Ishlov berish qo'lda va mahalliy tarzda amalga oshiriladi. Bulutli media rejimi yoki avtomatik yuklash mavjud emas. Ilova asl baytlari va `media_sha256` o'zgarmasligicha qoladi; aniqlangan matn aniq mashinaviy tan olish deb belgilangan va manba xesh, dvigatel/model versiyasi, til, parametrlar va yakunlanish vaqti bilan alohida saqlanadi. Transkriptlar qaytarilgan vaqt tamg'alarini saqlab qoladi. Ushbu natijalarni **tan olingan matn** va OCR/transkript filtri yordamida qidiring, yoki **Jurnal**ning eng yaxshi mos keluvchi qidiruvi manbai sifatida tan olingan matnni tanlang. Ikkalasi ham [xotiradagi indeks](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#recognized-text) orqali so'z shakllariga mos keladi. Bu alohida hosil qilingan ma'lumotlar qidiruvi; u mashinaning tan olishini sukut bo'yicha asl Telegram matniga aylantirmaydi yoki uni imzolangan voqealarga qo'shmaydi. ## Ixtiyoriy ishchini sozlang 1-versiya mahalliy Docker daemoniga ega Linux mezbonini talab qiladi. Windowsda TgWitness o'zining mahalliy daemoniga ega Linux VM/WSL muhitida ishlashi mumkin. Panel hech qachon ishonchsiz ilovamani o'zi deksodlamaydi. ``` docker build -f deploy/media-worker/Dockerfile -t tgwitness-media:local . export TGWITNESS_MEDIA_IMAGE=tgwitness-media:local ``` Ushbu o'zgaruvchilarni TgWitness xizmat muhitida sozlang va uni qayta ishga tushiring. Daemon soketi standart bo'yicha `/var/run/docker.sock` ga o'rnatiladi; rootless joylashtirishlarda `TGWITNESS_DOCKER_SOCKET` ni belgilash mumkin. Worker masofaviy Docker kontekstiga emas, balki aynan shu Unix soketidan foydalanadi. Docker API ni panel foydalanuvchilariga ochiq qoldirmang yoki uning soketini tanib olish konteyneri ichida montaj qilmang. Transkripsiya uchun CTranslate2 bilan mos Whisper modelini alohida o'rnating, so'ngra `TGWITNESS_WHISPER_MODEL_DIR` ni uning papkasiga o'rnating. Worker uni `local_files_only=True` bilan yuklaydi; tanlangan model va kirish faqat o'qish uchun o'rnatiladi. Dasturning [model yuklash bo'yicha hujjatlar](https://github.com/SYSTRAN/faster-whisper)ini ko'ring. Taqdim etilgan OCR tasviriga ingliz va rus tillariga o'rgatilgan ma'lumotlar kiritilgan. Zarur bo'lganda tasvirga boshqa tilni ham qo'shing; til kodlari [Tesseract'ning CLI'siga](https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html) muvofiq keladi. Ishlash vaqtida hech qanday model yuklab olinmaydi. Qurish/yuklab olish o'rnatmasi tarmoqni ishlatishi mumkin; har bir haqiqiy tanish konteynerida tarmoq o'chirib qo'yilgan. Ijroni yoqishdan oldin tasvirni o'rnating; ijro vaqti`--pull=never`dan foydalanadi. ## Chegaralar va tiklash Kontener imtiyozsiz foydalanuvchi sifatida, faqat o'qish uchun root huquqi bilan, imtiyozlari cheklangan (`no-new-privileges` ), bitta CPU, 2 GiB xotira, PID chegarasi va chegaralangan vaqtinchalik fayl tizimi bilan ishga tushadi. Faqat tanlangan faylning tasdiqlangan nusxasi va ixtiyoriy model papkasi ulanadi. Yig'uvchining ma'lumotlar bazasi, ombori va sessiyasi yuklanmaydi. [Docker ijro etish vaqti bayroqlari](https://docs.docker.com/reference/cli/docker/container/run/) ushbu cheklovlarni majbur qiladi; bu konteyner chegarasi bo'lib qoladi, apparat enklyavi emas. Fayllar 50 MiB, rasmlar 20 million piksel, audio ma'lum davomiylikda 30 daqiqa va qayta ishlash 5 daqiqagacha cheklangan. Bir vaqtning o'zida bitta ishchi ishlaydi, har bir ish maydoni uchun maksimal 20 ta navbatga qo'yilgan/ijro etilayotgan ish va 100 ta saqlangan ish mavjud. Bekor qilish konteynerni to'xtatadi; qayta urinish oldingi urinishga bog'langan yangi ish yaratadi. To'xtatilgan ishlar qayta ishga tushirilgandan keyin belgilab qo'yiladi. Modeli sozlangan chegaralarga mos kelmasa, ishlov berish muvaffaqiyatsiz bo'lishi mumkin; u izolyatsiyasiz jimjit ishlayvermaydi. --- # Telegram · Chiquvchi webhooks Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/webhooks/ HMAC imzolari, qayta urinishlar va yetkazib berish holati bilan HTTPS qabul qiluvchilarga doirali voqealarni yuboring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) HMAC imzolari, qayta urinishlar va yetkazib berish holati bilan HTTPS qabul qiluvchilarga doirali voqealarni yuboring. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Arxiv integratsiyalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/) ![Arxiv integratsiyalari](https://phishdestroy.github.io/TgWitness/assets/chapter-integrations.svg) [Ish jarayoni bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/docs/archive/) · [Wiki](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Archive-and-Integrations.md) Tanlangan ish maydonida **Integratsiyalar → Chiquvchi webhooks** bo'limini oching. HTTPS qabul qiluvchini qo'shing, collector/media/export voqealarini tanlang va ixtiyoriy ravishda yangi kuzatuvlar va o'zgarishlar uchun suhbatlarni tanlang. Xabar matni standart bo'yicha o'chirilgan. Parchalarni yoqish xabar o'zgarishi voqealariga ko'pi bilan 1 000 belgini qo'shadi; xom Telegram maydonchalari va ma'lumotlar hech qachon yuborilmaydi. HMAC sirini bir marta qabul qiluvchining himoyalangan sozlamalariga nusxalang. U TgWitness xazinasi ichida shifrlangan va paneldan tiklab bo'lmaydi. Maqsadni olib tashlab, uni aylantirish uchun qayta yarating. **Sintetik test** navbatlariga suhbat mazmuni bo'lmagan test **yuboring**; natijani ko'rish uchun yetkazib berish holatini yangilang. Yetkazib berish Apprise bilan mavjud bildirishnoma tsiklini kengaytiradi. U ish maydonining tashqi yo'nalishi va mavjud xususiy manzil cheklovlaridan foydalanadi. Keyingi hech qanday to'g'ridan-to'g'ri zaxira rejasi yoki yo'naltirish mavjud emas. URL manzillarida autentifikatsiya ma'lumotlari, so'rov satrlari yoki fragmentlar bo'lmasligi kerak; xususiy manzillar uchun server darajasidagi tarmoqqa rozi bo'lish talab etiladi, bu panel foydalanuvchisi aylanib o'tolmaydigan sozlama emas. ## Yuk va imzo Sxema: [`tgwitness.webhook/1`](https://github.com/phishdestroy/TgWitness/blob/main/integrations/webhook.schema.json). Har bir yuklama `event_id`, `timestamp`, `workspace`, `type`, `synthetic` va hisoblagichlarni o'z ichiga oladi. Jurnalga asoslangan voqealar ularning ketma-ketligi va xeshini o'z ichiga oladi. To'liq eksportning yakunlanishi va sintetik testlar yetkazib berish voqealari bo'lib, hech qanday ixtiro qilingan imzolangan jurnal havolasiga ega emas. Telegram o'chirish bildirishnomalari va `missing_on_recheck` alohida turlar bo'lib qoladi. `X-TgWitness-Signature` sarlavhasi `t=UNIX_SECONDS,v1=HEX_HMAC_SHA256`. Ko'rsatilgan sirni UTF-8 baytlariga aylantirib, `timestamp + "." + raw_request_body` aniq baytlari bo'yicha HMAC hisoblang. Imzolarni tana qismini tahlil qilish yoki unga ishlov berishdan oldin doimiy vaqt ichida solishtiring. O'z soatingizdan besh daqiqadan ortiq bo'lgan vaqt tamg'alarini rad eting. Vaqt tamg'asi har bir yetkazib berish urinishida yangilanadi. `event_id`ni idempotentlik kaliti sifatida bardoshli saqlashda, yon ta'sirlarga kirishdan oldin atomik noyob cheklov bilan ishlating. Faqat haqiqiy imzo yaqinda yuborilgan so'rovning qayta ijro etilishini oldini olmaydi. Ishlangan identifikatorlarni kamida butun qayta urinish oynasi davomida saqlang; agar qabul qiluvchi saqlangan voqealarni qayta ishlay oladigan bo'lsa, ularni uzoqroq saqlang. ## Qayta urinishlar Yetkazib berishlar HTTP so'rovlaridan oldin barqaror navbatga qo'yiladi. Ular kamida bir marta yetkazish semantikasidan foydalanadi: yo'qolgan tasdiq yoki qayta boshlash voqeani bir xil ID bilan yana yetkazishi mumkin. Eksponensial kechiktirish bilan 15 soniyadan boshlab va bir soat bilan cheklangan sakkizta urinish mavjud. Muvaffaqiyat uchun 2xx javob talab etiladi. Yakunlangan ishlar ko'rinadigan xato qoldiradi; qayta urinishlar tugagach yetkazib berish kafolatlanmaydi. Navbatda 1 000 ta yetkazib berish bo'ladi. To'lganida jurnal voqealarini skanerlash to'xtaydi va bo'sh joy paydo bo'lgach davom ettiriladi. Navbatga qo'yib bo'lmaydigan to'liq eksport yakunlanishi ko'rinadigan navbat xatosini yuzaga keltiradi. Har bir bildirishnoma o'tishida beshtagacha yetkazib berish urinishlari amalga oshiriladi va so'nggi 100 urinish yozuvlari saqlanadi. Manzilni olib tashlash uning kutayotgan yetkazib berishlarini ham olib tashlaydi. ## n8n misoli [Namuna ish jarayonini](https://github.com/phishdestroy/TgWitness/blob/main/integrations/n8n-tgwitness.json) import qiling. U faol emas va hech qanday sirlar yoki keyingi harakatlarga ega emas. `TGWITNESS_WEBHOOK_SECRET`ni n8n ishchi muhitiga o'rnating, ushbu muhitga kirishni ruxsat bering va Code tuguni uchun `crypto` built-in funksiyasini yoqing. Misol Webhook tugunining raw-body opsiyasidan foydalanadi, imzo/yangiligi tekshiriladi va tasdiqlangan voqealarni tasdiqlaydi. Bu tugunning [hujjatlashtirilgan amalga oshirilish](https://github.com/n8n-io/n8n/blob/master/packages/nodes-base/nodes/Webhook/Webhook.node.ts)iga mos keladi. SIEM yozuvlari yoki bildirishnomalarni qo'shishdan oldin, `event_id` bo'yicha kalitlangan barqaror idempotent saqlashni qo'shing. Tanlagan yuborish ma'lumotlariga muvofiq n8n ish jarayonini tahrirlash va ijro-log saqlash muddatini cheklang. TgWitness hech qanday kirish buyruqlarini qo'shmaydi. --- # Telegram · Jamoat namoyishi Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/showcase/ Tanlangan ommaviy kanallarning saqlangan xabarlari va imzolangan snapshotlarini muddati tugaydigan, bekor qilinishi mumkin bo' lgan havolalar orqali e' lon qiling. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Tanlangan ommaviy kanallarning saqlangan xabarlari va imzolangan snapshotlarini muddati tugaydigan, bekor qilinishi mumkin bo'lgan havolalar orqali e'lon qiling. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) ![Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/assets/chapter-operate.svg) **Kirish → Jamoat namoyishi** mavjud access-token tizimidan foydalangan holda alohida, faqat o'qish uchun mo'ljallangan sahifa yaratadi. U o'rnatmaning saqlangan kuzatuvlarini o'qiydi. U kollektorni ishga tushirmaydi, Telegramga kirishni amalga oshirmaydi yoki tashrif buyuruvchi uchun kanalni olmadi. ## Sahifani nashr qiling 1. Ko'rsatmoqchi bo'lgan har bir ommaviy kanal uchun manba profilini saqlang. Kanal quyidagilarga ega bo'lishi kerak: o'zining so'nggi saqlangan profilida ommaviy foydalanuvchi nomi; guruhlar va xususiy suhbatlar mos kelmaydi. 2. Ochiq **kirish → Jamoat namoyishi** (yoki `/showcase-manage.html`) ma'mur sifatida. 3. 16 tagacha ish maydonida kanallarni tanlang, ommaviy sahifa sarlavhasini kiriting va havolaning amal qilish muddatini 1, 7 yoki 30 kun etarlicha belgilang. Ichki ish maydoni yorliqlari e'lon qilinmaydi. 64 tagacha kanal kiritilishi mumkin. 4. Nashr uchun tanlangan kanallar matnini ko'rib chiqing, so'ngra "**Tanlangan yozuvlarni ko'rib chiqish"** tugmasini bosing. Ko'rib chiqish tashrifchi sahifasidagi kabi server tomonidagi proyeksiyani ishlatadi. 5. **"Create showcase" havolasini** bosing. Havola ko'rinib turgan paytda uni nusxalab oling. Uni tarqatishdan oldin alohida brauzerda ochib, qabul qiluvchining sahifasini ko'rib chiqing. Havo URL bo'lagida kirish tokeni mavjud. Sahifa API so'rovlarini yuborishdan oldin bo'lakni olib tashlaydi va uni brauzer sessiyasiga almashtiradi. Havo ulgurgan har kim tanlangan materialni muddati tugaguncha yoki bekor qilinguncha ochishi mumkin. Yangi havolalar 100 ta bir vaqtning o'zidagi sessiyaga ruxsat beradi, har biri eng ko'pi bilan bir soat davom etadi. Mavjud Kirish nazoratlari grant API orqali manzil cheklovlari va tizimga kirish limitlarini ham joriy qilishi mumkin. Oddiy ko'rib chiquvchi kirish alohida rejim bo'lib, u hanuzgacha asl ruxsat etilgan xabarlar va fayllarni o'z ichiga oladi. ## Mehmonlar nima ko'radi | Ko'rinadigan | Maxfiy saqlanadi | | --- | --- | | Tanlangan ommaviy kanal sarlavhalari, foydalanuvchi nomlari va profil kuzatilgan sanalar | Hisob identifikatorlari, ichki ish maydoni yorliqlari va tanlanmagan manbalar | | Yozib olingan matn va har bir saqlangan tahrir | Tuzilgan jo'natuvchi identifikatorlari, ismlar, foydalanuvchi nomlari, telefon raqamlari va profil qiymatlari | | Agar mavjud bo'lsa, avval saqlangan matn bilan o'chirish kuzatuvlari | Ilovalar, avatarlar, kichik rasmlar, fayl nomlari va asl yuklamalar | | Muallif/profil yoki ilova yozib olinganini bildiruvchi belgilovchilar | Yo'naltirish va javob metama'lumotlari, tarmoq yo'llari, IP manzillari va kirish ma'lumotlari | | Tanlangan kanal voqealari soni, joriy yig'ish kalitlari, yurak urishi va tekshiruv nuqtasi oralig'i | Yig'ish boshqaruvlari va oddiy dalillarni eksport qilish API-lari | | Imzolash barmoq izi, jurnal tekshiruv nuqtasi va izchillik isboti | Imzolash kalitlari va Telegram sessiyalari | **Ochiq xabar matni avtomatik ravishda anonimlashtirilmaydi.** Xabarga yozilgan ism, tilga olish, telefon raqami yoki havola matnning bir qismi bo'lib qoladi. `Redacted`tuzilgan muallif/profil maydonlariga ham tegishli. Nashr etishdan oldin saqlangan tahrirlar va o'chirishlarni ham o'z ichiga olgan haqiqiy tanlangan kontentni ko'rib chiqing. Moslik **so'nggi saqlangan manba profil**ini aks ettiradi, jonli Telegram qidiruvini emas. Agar keyingi profil endi ommaviy kanal foydalanuvchi nomiga ega bo'lmasa, yangi so'rovlar kanalni istisno qiladi. Manba profillarini ommaviy ko'rinish o'zgarganda yangilang. O'quvchilarda ilgari olgan materiallari allaqachon saqlangan bo'lishi mumkin. Asl imzolangan yozuvlar o'zgarmas holda qoladi. Ko'rsatilgan proyeksiya alohida imzolanadi va uning asl yozuvlarga havola qiluvchi xeshlarini o'z ichiga oladi. Proyeksiya imzosi ko'rsatilgan bayonotni tasdiqlaydi; bu tahrirlangan baytlar ustidagi asl voqeaning imzosi emas. ## Imzolar va uzluksizlikni tekshiring **Izzat izi va imzolangan tekshiruv nuqtasini** kengaytiring va snapshotni yuklab oling. Sahifa yangilangach, yuklab olish avvalgi brauzer snapshoti va ularning jurnal chegaralari orasidagi Merkle moslik isbotini o'z ichiga oladi. Avtomatik yangilanish sahifa ko'rinib turgan va kuzatuvlarning birinchi sahifasini ko'rsatayotgan paytda har daqiqada bir marta amalga oshiriladi. TgWitness o'rnatilgan bo'lsa, yuklab olingan faylni oflayn tarzda tekshiring: ``` python -m tgwitness.showcase_verify showcase.json --fingerprint TRUSTED_COLLECTOR_SHA256 ``` Barmoq izi alohida ishonchli manbadan olinishi kerak. O'zingiz saqlagan snapshot bilan solishtirish uchun `--previous earlier.json`; bu yuklab olish ichida keltirilgan avvalgi snapshot ustidan ustun keladi. Joriy isbot o'sha saqlangan chegaradan boshlanishi kerak. Tasdiqlangan mijozlar ushbu isbotni quyidagi usul bilan so'rashi mumkin `GET /api/showcase/{workspace_id}?challenge=<32-hex-random>&from_count=`. Qisqaroq jurnal chegarani jimjit qayta tiklash o'rniga HTTP 409 kodini qaytaradi. Imzolangan tekshiruv nuqtasi **butun kollektor**jurnaliga, jumladan uning yozuvlar soni va tushunarsiz sarlavha xeshiga yozib qo'yiladi. Ko'rsatilgan xabar sonlari faqat tanlangan ommaviy kanallarga tegishli. Sahifa hech qachon boshqa jurnalning mazmunini ro'yxatlamaydi. Bu voqealar soni, noyob xabarlar soni emas. Sozlamalar joriy konfiguratsiyani, avvalgi har bir yozib olish oralig'ini emas, tasvirlaydi. Imzo va izchillikni tekshirish saqlangan chegaraga nisbatan o'zgarishlarni aniqlay oladi. U mustaqil ravishda imzolangan hisoblagichlarni qayta hisoblamaydi, Telegram kelib chiqishini tasdiqlamaydi, uzluksiz yozib olishni namoyish etmaydi yoki mustaqil guvohni almashtirmaydi. Shu ko'rib chiqish uchun [dalillarni tekshiruvchi](https://github.com/phishdestroy/TgWitness/blob/main/docs/TRUST.md), [mustaqil guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/) va [sinovdan o'tgan miqyos yozuvidan](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) foydalaning. Sun'iy o'rnatmalar ko'rinadigan tarzda "sun'iy" deb belgilangan. ## Sahifani bekor qiling yoki mezbonlik qiling Showcase menejerida yoki mavjud **Access** bo'limida **Revoke'dan** foydalanib havolani yoping va barcha sessiyalarni yakunlang. Kiruvchi, kirish tugaganini aniqlagan so'rov orqali ko'rsatilgan yozuvlarni o'chiradi. Har bir so'rovda muddat va ruxsatlar tekshiriladi. Showcase grantlarini oddiy panelga kirishga aylantirib bo'lmaydi; rejimni o'zgartirish uchun yangi grant yarating. Sahifani o'rnatishning mavjud HTTPS manzili orqali yetkazib bering. Havola chop etish yangi port ochmaydi, tunnel yaratmaydi yoki DNSni o'zgartirmaydi. HTML va API foydalanuvchining o'rnatmasida qoladi. Showcase tashrifchisi ushbu kirish bilan oddiy xabar, profil, media, eksport yoki boshqaruv APIlaridan foydalana olmaydi. --- # Telegram · Dalil qanday ishlaydi Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/ Hash zanjiri, imzolar, tekshiruv nuqtalari va guvohlar verifikator ishlatadigan aniq formulalar bilan tushuntirilgan. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Hash zanjiri, imzolar, tekshiruv nuqtalari va guvohlar verifikator ishlatadigan aniq formulalar bilan tushuntirilgan. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ![Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/assets/chapter-evidence.svg) TgWitness yig'uvchi akkaunt tomonidan kuzatilganlarni saqlaydi, bu kuzatuvlarni imzolangan jurnalga bog'laydi va boshqa shaxsga ishonchli kalit hamda oldin saqlangan tekshiruv nuqtasiga nisbatan eksportni tasdiqlash imkonini beradi. [Mahalliy hujjatlar veb-sayti](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/PUBLISHING.md#preview-the-website-locally)`/docs/concepts/` manzilida interaktiv misollar, `/docs/witness/` manzilida Checkpoint qarorlar eksplorerini va [Case Board](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/), [hisobot dizayni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/) hamda [topshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#handover-extract) bo'yicha bosqichma-bosqich ko'rsatmalarni o'z ichiga oladi. Barcha misol xabarlar, hisoblar va kechikishlar tasodifiydir. Zanjirli qumdonidagi xeshlar brauzerda SHA-256 yordamida hisoblanadi. Hech narsa Telegramga yuborilmaydi. **Ushbu sahifada** - [Xabar o'zgaradi; kuzatuvlar to'planadi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/#a-message-changes-observations-accumulate) - [Hash nima qamrab oladi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/#what-a-hash-covers) - [Oldingi tekshiruv nuqtasi nimani qo'shadi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/#what-an-earlier-checkpoint-adds) - [Guvoh qayerda tegishli](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/#where-a-witness-belongs) - [Ma'lum harakatlarga qarshi test yetkazib berish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/#test-delivery-against-known-actions) - [Ish jarayonini tanlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/#pick-a-workflow) ## Xabar o'zgaradi; kuzatuvlar to'planadi Ketma-ketlik diagrammasi · Telegram → Yig'uvchi: Yangi xabar: Soat 10:00 da uchrashamiz; Yig'uvchi → Imzolangan jurnal: xabar.yangi ilova qiling; Telegram → Yig'uvchi: Tahrir: Soat 11:00 da uchrashamiz; Yig'uvchi → Imzolangan jurnal: Xabarni ilova qiling.tahrirlangan; Telegram → Yig'uvchi: O'chirish to'g'risidagi bildirishnoma; Yig'uvchi → Imzolangan jurnal: Qo'shimcha: message.deleted; Imzolangan jurnal bo'yicha eslatma: Asl xabar + tahrir + o'chirish kuzatuvi qoladi · Telegram · Yig'uvchi · Imzolangan jurnal · Yangi xabar: Soat 10:00 da uchrashamiz · xabar.yangi ilova qiling · Tahrir: Soat 11:00 da uchrashamiz · Xabarni ilova qiling.tahrirlangan · O'chirish to'g'risidagi bildirishnoma · Qo'shimcha: message.deleted · Asl xabar + tahrir + o'chirish kuzatuvi qoladi **Diagramma matn sifatida** 1. Telegram → Yig'uvchi: Yangi xabar: Soat 10:00 da uchrashamiz 2. Yig'uvchi → Imzolangan jurnal: xabar.yangi ilova qiling 3. Telegram → Yig'uvchi: Tahrir: Soat 11:00 da uchrashamiz 4. Yig'uvchi → Imzolangan jurnal: Xabarni ilova qiling.tahrirlangan 5. Telegram → Yig'uvchi: O'chirish to'g'risidagi bildirishnoma 6. Yig'uvchi → Imzolangan jurnal: Qo'shimcha: message.deleted 7. Imzolangan jurnal bo'yicha eslatma: Asl xabar + tahrir + o'chirish kuzatuvi qoladi Ushbu soddalashtirilgan ketma-ketlik Telegram har bir yangilanishni yetkazganini va tanlangan akkaunt uni ko'ra olganini taxmin qiladi. Operatsion voqealar ham jurnalga kiritiladi. O'chirish to'g'risidagi bildirishnoma o'chiruvchini yoki aniq o'chirish vaqtini ko'rsatmaydi. Takroriy yetkazib berishlar alohida kuzatuvlar bo'lib, jurnal bo'ylab nusxa ko'chirishni bostirish mavjud emas. ## Hash nima qamrab oladi ![Kuzating, kodlang, xeshlang va imzolang: har bir yangi voqea oldingi xeshni o'z ichiga oladi.](https://phishdestroy.github.io/TgWitness/assets/evidence-chain-animated.svg) Formulani ichkaridan tashqariga o'qing: **C** to'qqizta maydonni aniq baytlarga aylantiradi; **SHA-256** ularning digestini hosil qiladi; **hex** esa shu digestni qanday saqlanishini ko'rsatadi. Oldingi hash allaqachon voqeada mavjud. **unhex** saqlangan hashni Ed25519 imzolaydigan 32 baytga qaytaradi. [Statik zanjir diagrammasi](https://github.com/phishdestroy/TgWitness/blob/main/docs/assets/presentation/evidence-chain-static.svg) C(ei)ni to'qqizta voqea maydonining kanonik UTF-8 JSONi deb oling. Birinchi `previous_hash` 64 ta nol belgisidan iborat. Keyingi har bir yozuv oldingi yozuvning geksadesimal xeshini o'z ichiga oladi: hi = hex(SHA256(C(ei))) σi = Ed25519.Sign(sk,unhex(hi)) Imzo 32 xom digest baytlarini qamrab oladi. Hash kirishiga aynan quyidagilar kiradi: `seq`, `observed_at`, `source_at`, `kind`, `chat_id`, `message_id`, `actor_id`, `payload` va `previous_hash`. Ob'ekt kalitlari tartiblangan; bo'sh joylar va ASCII qochirishlari chiqarib tashlanadi; NaN va cheksizlik rad etiladi. [Aniq kodlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#event-canonicalization)ni ko'ring. Oqim sxemasi · 64 nol belgisi → Yozuv 1 / hash h1; Yozuv 1 / hash h1 → Yozuv 2 ga h1 / hash h2 kiradi; Yozuv 2 ga h1 / hash h2 kiradi → Yozuv 3 h2 / hash h3 ni o'z ichiga oladi; Yozuv 3 h2 / hash h3 ni o'z ichiga oladi → Imzolangan tekshiruv nuqtasi: 3-bosqich, h3 sarlavhasi (boshqa joyda saqlash) · 64 nol belgisi · Yozuv 1 / hash h1 · Yozuv 2 ga h1 / hashh2 kiradi · Yozuv 3 h2 / hash h3ni o'z ichiga oladi · Imzolangan tekshiruvnuqtasi: 3-bosqich, h3sarlavhasi · boshqa joyda saqlash **Diagramma matn sifatida** 1. 64 nol belgisi → Yozuv 1 / hash h1 2. Yozuv 1 / hash h1 → Yozuv 2 ga h1 / hash h2 kiradi 3. Yozuv 2 ga h1 / hash h2 kiradi → Yozuv 3 h2 / hash h3 ni o'z ichiga oladi 4. Yozuv 3 h2 / hash h3 ni o'z ichiga oladi → Imzolangan tekshiruv nuqtasi: 3-bosqich, h3 sarlavhasi (boshqa joyda saqlash) | Taqdim etilgan jurnalga o'ting | Nima uni aniqlaydi | | --- | --- | | 2-yozuvni o'zgartiring, saqlangan xeshini esa o'zgarmas holda qoldiring | Qayta hisoblangan voqea xeshidan farq qiladi; uning imzosi o'zgartirilgan voqeani endi qamrab olmaydi | | O'zgartirilgan yozuvni va keyingi barcha hashlarni qayta tuzing | Asl imzolar muvaffaqiyatsiz bo'ladi; ta'sirlangan chegaradagi saqlangan tekshiruv nuqtasi ham nomuvofiqlik ko'rsatadi | | Oxirgi qismini olib tashlang, lekin qolgan prefiksni o'z holicha saqlang | Taqdim etilgan prefiksdan keyin saqlangan oldingi tekshiruv nuqtasi eksport juda qisqa ekanligini ko'rsatadi | | Zaxira jurnalni boshqa kalit bilan qayta imzolash | Alohida ishonchli kalit barmoq izi almashtirilgan shaxsni rad etadi | ![Saqlangan maydonni o'zgartirish uning digesti o'zgarishiga olib keladi; hashlarni qayta hisoblash esa asl imzolarni tiklamaydi.](https://phishdestroy.github.io/TgWitness/assets/evidence-tamper-animated.svg) **Yozuv 2da mantiqni sinab ko'ring:** saqlangan voqeada `Meet at 11:00`ni `Meet at 12:00`ga o'zgartiring. Uning qayta hisoblangan xeshida moslik qolmaydi. Keyingi zanjirni qayta hisoblash uning bog'lanmalarini tiklashi mumkin, ammo dastlabki imzolar yangi digestlarni qamrab ololmaydi. Aksincha, kuzatilgan Telegram tahriri yangi jurnal yozuvi bo'lib qoladi. [Statik o'zgarish diagrammasi](https://github.com/phishdestroy/TgWitness/blob/main/docs/assets/presentation/evidence-tamper-static.svg) Hash havolalari o'z-o'zidan kimnidir almashtirilgan zanjirni qayta hisoblashdan to'xtatmaydi. Ishonch mustaqil ishonchli kalit ostidagi imzo tekshirish va kollektor tashqarisida saqlangan havolalar bilan solishtirish orqali paydo bo'ladi. ## Oldingi tekshiruv nuqtasi nimani qo'shadi ![3-raqamni saqlang va h3 sarlavhasini qo'ying; keyinchalik 4 ta yozuvni 3-pozitsiyada tekshirish amalga oshiriladi.](https://phishdestroy.github.io/TgWitness/assets/evidence-checkpoint-animated.svg) **Jurnal o'sib borgan sari referensiya o'zgarmas qoladi.** Agar tekshiruv nuqtasi "3 yozuv, boshlang h3" desa, to'rt yozuvli eksport 3-pozitsiyadagi h3 ga mos kelib o'tishi mumkin. Uning eng yangi boshi h4 bo'lib, u farq qilishi kutiladi. Faqat ikki yozuvli eksport esa muvaffaqiyatsiz tugaydi. [Statik tekshiruv nuqtasi diagrammasi](https://github.com/phishdestroy/TgWitness/blob/main/docs/assets/presentation/evidence-checkpoint-static.svg) Tekshiruv nuqtasining imzosini tasdiqlaganingizdan so'ng, quyidagilarni talab qiling: Nexport ≥ Ncheckpoint and hexport[Ncheckpoint] = Hcheckpoint Eksport tekshiruv nuqtasidan tashqariga cho'zilishi mumkin. U saqlangan chegarada mos kelishi kerak. Haqiqiy verifikator har bir voqeaning ketma-ketligi, avvalgi havolasi, xesh va imzosini ham tekshiradi. Faqat oxirgi saqlangan bosh qismini solishtirish o'zgartirilgan ichki yozuvni, uning saqlangan xeshi yangilanmagan bo'lsa, aniqlamaydi. ## Guvoh o'z o'rnida Oqim sxemasi · Yig'uvchi / hisob sessiyasi / kalit A → Faqat o'qish uchun mo'ljallangan tekshiruv nuqtasi oxiri; Witness / mahkamlangan yig'uvchi kalit / o'z kalit B → Alohida imzolangan guvoh jurnali; Witness / mahkamlangan yig'uvchi kalit / o'z kalit B → Faqat o'qish uchun mo'ljallangan tekshiruv nuqtasi oxiri (Tekshiruvni so'rang); Faqat o'qish uchun mo'ljallangan tekshiruv nuqtasi oxiri → Witness / mahkamlangan yig'uvchi kalit / o'z kalit B (Imzolangan javob); Witness / mahkamlangan yig'uvchi kalit / o'z kalit B → Imzolangan TGW1 postlari kanali (Bot API / o'z tokeni) · Mehmondo'st A · Mehmon B · Yig'uvchi / hisobsessiyasi / kalit A · Faqat o'qish uchunmo'ljallangan tekshiruvnuqtasi oxiri · Witness / mahkamlanganyig'uvchi kalit / o'zkalit B · Alohida imzolangan guvohjurnali · Imzolangan TGW1 postlarikanali · Tekshiruvni so'rang · Imzolangan javob · Bot API / o'z tokeni **Diagramma matn sifatida** 1. Yig'uvchi / hisob sessiyasi / kalit A → Faqat o'qish uchun mo'ljallangan tekshiruv nuqtasi oxiri 2. Witness / mahkamlangan yig'uvchi kalit / o'z kalit B → Alohida imzolangan guvoh jurnali 3. Witness / mahkamlangan yig'uvchi kalit / o'z kalit B → Faqat o'qish uchun mo'ljallangan tekshiruv nuqtasi oxiri (Tekshiruvni so'rang) 4. Faqat o'qish uchun mo'ljallangan tekshiruv nuqtasi oxiri → Witness / mahkamlangan yig'uvchi kalit / o'z kalit B (Imzolangan javob) 5. Witness / mahkamlangan yig'uvchi kalit / o'z kalit B → Imzolangan TGW1 postlari kanali (Bot API / o'z tokeni) Guvoh rollbackni, bir xil hisobda boshqa sarlavhani, o'zgartirilgan kalitlarni, noto'g'ri javoblarni va yetishmayotgan javoblarni qayd etadi. Faqat katta hisob har bir avvalgi yozuv o'zgarmaganligini aniqlamaydi; saqlangan tekshiruv nuqtalari bilan eksportni solishtiring. Boshqa mezbonidagi guvoh yig'uvchining mezbonidagi uzilishni bo'lishishdan saqlaydi; alohida operator esa qo'shimcha mustaqillik beradi. Guvox yig'uvchining xabar bergan jurnal holatini tasdiqlaydi. Telegram harakatlarining qaysilari yig'uvchi hisobga yetib borganini o'lchash uchun nazoratli yetkazib berish testidan foydalaning. [Guvoxni sozlashni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/) ko'ring. ## Ma'lum harakatlarga qarshi test yetkazib berish Nazorat guruhidan foydalaning, alohida yig'ish akkauntlari va yangi marker belgilang. Jo'nating, tahrirlang va o'chirib tashlang, bosqichlar orasida yozib olishni tekshirib turing. Natijalarni ko'zdan kechirishdan oldin kutilayotgan harakatlar va kesish nuqtasini aniqlang. R = |observed∩expected| / |expected| Δ t = treceipt - taction Faqat mos kelgan kutilgan harakatlar hisobga olinadi; takroriy kvitansiyalar hisoblagichni oshirmaydi. Qisminom nol bo'lmasligi kerak. Yo'qolgan kvitansiyada o'lchangan kechikish bo'lmaydi. Hujjatda soat noaniqligini qayd eting; Telegram aniq o'chirish vaqtini taqdim etmagani uchun o'zingiz nazorat qiladigan o'chirish harakati vaqtidan foydalaning. 5/6 (83,3%) kabi natija test harakatlarini tasvirlaydi, barcha Telegram trafigining to'liqligini emas. ## Ish jarayonini tanlang [To'liq tergov bosqichlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/) kanalda, guruhda, botda va shaxsiy suhbatda sodir bo'lgan hodisani kuzatadi: 1. Maxsus yig'ish hisobida butun hisobni tergov rejimiga o'tkazing va inventorizatsiya qilinadigan suhbatlarni yoqish. Asosiy hisob uchun tanlangan suhbatlar yoki papkani ishlating. 2. Jurnal snapshotlarini, har bir chat bo'yicha to'liq tarixni va saqlangan ilovalarni oling. 3. Jonli o'zgarishlarni va paneldagi har qanday ataylab amalga oshirilgan o'zaro ta'sirlarni ularning kvitansiyalari bilan saqlang. 4. Raqamli jo'natuvchi IDlari, javob munosabatlari, takroriy manzillar va fayl hashlarini keltirilgan yozuvlar va shaxs profillari bo'ylab kuzating. 5. Case Board'da manba-bog'langan eslatmalar va to'plamlar qo'shing. Chatlararo kronologiyani vaqt belgilari va aniq bo'shliqlar bilan qayta tiklang. 6. Boshqa hisob ma'lumotlari ish maydonlarini ularning kelib chiqishi va kalitlarini alohida saqlagan holda solishtiring. 7. Imzolangan jurnal, profil va tarix eksportlarini ish yozuvlari bilan birga to'plang va tekshiring. Veb-saytning `/docs/cases/` qo'llanmasida botlar bo'yicha nizolar, o'chirilgan xabarlar va ishtirokchilarning ismlarini o'zgartirishi uchun interaktiv ish holati xaritasi hamda variantlar mavjud. Case Board eslatmalar va kollektsiyalarni ish maydonida saqlaydi. Guruh eksportlari alohida ish maydoni paketlarini to'playdi; ish maydonlari o'rtasidagi korrelyatsiya va birlashtirilgan vaqt chizig'i tahlilchining vazifasi bo'lib qoladi. [Yakunlangan tasdiqlash va qolgan ishlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) · [Eksport va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#investigation-handoff) · [Bir akkaunt bilan boshlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/quickstart/) --- # Telegram · Hisobotni sozlash va tekshirish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/ Hisobot filtrlari, sakkizta dizayn, kontent uchun oldindan belgilangan sozlamalar, saqlangan o'zgarish tarixlari va imzolangan eksportlarga kiritilgan baholash. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Hisobot filtrlari, sakkizta dizayn, kontent uchun oldindan belgilangan sozlamalar, saqlangan o'zgarish tarixlari va imzolangan eksportlarga kiritilgan baholash. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Tergov](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/) ![Tergov](https://phishdestroy.github.io/TgWitness/assets/chapter-investigate.svg) Tanlangan kuzatuvlarni ishning o'qiladigan hisobotiga aylantiring: uning savoli, doirasi, saqlangan o'zgarishlari, diagrammalari, topilmalari va manba havolalari. Har bir hisobot qabul qiluvchiga yetkazilgan materialni tekshirish va uning to'plam qamrovini ko'zdan kechirish imkonini beradi. **Ishonch va cheklovlar** bo'limi jurnal, topshirish, suhbat, hisob va ulashish hisobotlarida paydo bo'ladi. Jurnal va topshirish bo'yicha PDF-fayllar imzolangan `report.json`-fayl bilan bir xil baholashdan foydalanadi. ZIP manifestlari imzolangan manifestda `case_assessment` ni o'z ichiga oladi. Ushbu baholash eksport qilingan material bilan birga yuboriladi. Asl kuzatuvlar o'z mavjud imzolarini saqlab qoladi. ## Hujjat formatlari va o'qish tartibi ### Report studio **Exportlarni** oching **→ Sozlash va ko'rinishni ko'rish**. **Ma'lumotlar → Dizayn va mazmun → Ko'rinish** bo'ylab ishlang: 1. Butun ish maydonini yoki suhbatlar, mualliflar, UTC kuzatuv sanalari va voqea turlarini tanlang. Suhbatlar va mualliflarni qidirish uchun katalogni yuklang yoki ularning Telegram IDlarini kiriting. Muallif filtrlari yozib olingan jo'natuvchi IDlariga mos keladi; jo'natuvchisiz o'chirish bildirishnomasiga muallif filtri mos kelmaydi. 2. Sahifa dizaynini tanlang, so'ngra grafikalarni, ishtirokchilar yorliqlarini, transkriptni va yozma xulosalaringizni tanlang. Dizaynni o'zgartirish ushbu tanlovlarni saqlab qoladi. 3. Ko'rinishni tuzing. U haqiqiy sonlarni, faoliyatni, ishtirokchilarni, namunaviy yozuvlarni, saqlangan o'zgarishlarni va yo'qolgan xabar raqamlari diapazonlarini ko'rsatadi. Tanlovni o'zgartirish ko'rinishni eskirgan deb belgilaydi. HTML, imzolangan PDF, imzolangan JSON yoki dalillar ZIP faylini yuklab olishdan oldin saqlang. Ma'lumotlarning oldindan ko'rinishi to'liq barqaror jurnal prefiksini hisoblaydi, dastlabki namunani emas. Faqat ko'rsatilgan namunaviy qatorlar va uzun ro'yxatlar chegaralangan; ularning kiritilmagan sonlari ko'rsatiladi. Keyingi eksport yangi barqaror snapshot oladi, shuning uchun davom etayotgan yig'ish raqamlarni oshirishi mumkin. Doira, sonlar va manba identifikatori imzolangan hisobotga kiritilgan. Formani ochish yoki ko'rinishini ko'rish uni saqlamaydi. **Yurisdiktsiya bo'yicha ko'rsatmalar.** Hujjat tafsilotlari bo'limida **Yurisdiktsiya bo'yicha ko'rsatmalar · ixtiyoriy** bo'limini ochib, yurisdiktsiya hamda fuqarolik/tijorat yoki jinoyat protsedurasini tanlash mumkin. Ilovada huquqiy asos, manba havolalari, tayyorlash eslatmalari va tadqiqot holati keltirilgan. Yig'ishni himoya qilish choralari bo'yicha mahalliy tilidagi qisqacha mazmun va izohlar ixtiyoriy. Hech qanday yurisdiktsiya standart bo'yicha tanlanmaydi. Ushbu tanlovlar ish maydoniga tegishli bo'lib, saqlangan tartib sozlamalari va bilvosita ulashish/nusxa ko'chirish bo'yicha standart parametrlardan chiqarib tashlanadi. Qarang: [standart parametrlar, qo'llab-quvvatlanadigan hisobotlar va tadqiqot cheklovlari](https://github.com/phishdestroy/TgWitness/blob/main/docs/JURISDICTION_GUIDANCE.md) . **Qabul qiluvchining nusxasini tanlang.** Jadvallar va transkript tanlangan yozuvlardan foydalanadi. To'liqlik, saqlash va qamrov butun manba jurnalini tasvirlaydi. Dalil ZIP hujjati uning asl yozuvlari va ilovalarini o'z ichiga oladi. Qabul qiluvchi faqat tanlangan, ruxsat etilgan ma'lumotlarni olishi kerak bo'lgan hollarda [minimal topshirishdan](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#handover-extract) foydalaning. ### Tahrirlar, o'chirishlar va yetishmayotgan IDlarni o'qing Tahrir saqlangan **oldingi** va **keyingi** matnni ko'rsatadi va o'zgartirilgan so'zlarni ajratib ko'rsatadi. O'chirish bildirishnomadan oldin saqlangan oxirgi versiyani ko'rsatadi. Agar ilgari hech qanday kontent qayd etilmagan bo'lsa, hisobot shuni bildiradi. Faqat tahrirlar yoki o'chirishlarni tanlaganingizda, oldingi versiyalar filtrlardan tashqarida aniq belgilangan kontekst sifatida mavjud bo'lib qoladi. Alomat qo'yilmagan xabarlar ushbu tarixlarga qo'shilmaydi. **Ko'rilmagan xabar IDlari** tanlangan suhbatlardagi ma'lum raqamlar va sana asosidagi ID diapazoni orasidagi bo'shliqlardir. Har bir ma'lum manba yozuvi raqamni ko'rilmagan deb e'lon qilishdan oldin tekshiriladi: boshqa muallifni, voqea turini yoki sanani filtrlash soxta bo'shliq hosil qila olmaydi. Yonma-yon saqlangan xabarlar kontekst deb belgilangan. Yetishmayotgan raqam xabar mavjud bo'lgan yoki o'chirilganligini aniqlamaydi; o'chirish bildirishnomalari va muvaffaqiyatsiz qayta tekshiruvlar alohida hodisa turlari bo'lib qoladi. ### Dizaynni tanlang Jurnal va yakka suhbat uchun HTML hamda imzolangan PDF hisobotlari uchun sakkiz sahifali dizaynlar mavjud. Ular bir xil yozuvlar va hisob-kitoblardan foydalanadi, ammo muqovalari, tipografiyasi, bob sarlavhalari, jadvallari va bo'shliqlari turlicha. | Dizayn | O'qish uslubi | | --- | --- | | Klassik | Qorong'i muqovali va raqamlangan bo'limlarga ega an'anaviy dosye. | | Tahririy | Ramkali serifli sarlavha sahifasi, keng marjalar va tor bo'lim paneli. | | Brifing | Ko'k rangli qattiq muqovali, qisqa sarlavhalar va zich joylashgan jadvallar bilan. | | Analitika | So'rovnoma uslubidagi muqova, modulli diagramma plastinkalari va monospaced rasmlar. | | Texnik | Chiziqli ro'yxat, raqamlangan ma'lumotlar poyasi va aniq solishtirish jadvallari. | | Ushbu dastur foydalanuvchi hujjatlari TgWitness, Telegramni saqlash va tergov dasturi uchun | Panoramik muqova, keng bo'shliq va ko'zga tashlanadigan qisqacha ma'lumot grafikalar. | | O'qish seriyasi | Topilmalar, doira, o'zgarishlar va kuzatuv jurnali uchun bo'lim paneli va guruhlangan boblar. | | Ledjer va marja | Keng chekkali raqamlangan boblar, aniq diagramma jadvallari va alohida xabar transkripti. | Dizayn har bir ish maydoni bo'yicha saqlanadi va imzolangan eksport manifestida qayd etiladi. HTML oflayn ishlaydi, yorug' va qorong'i mavzularni qo'llab-quvvatlaydi hamda tor ekranlar va o'ngdan chapga yoziladigan tillarga moslashadi. Mahalliy PDF-fayllar biriktirilgan shriftlardan foydalanadi; Editorial dizayni o'zining biriktirilgan SIL Ochiq Shrift Litsenziyasi ostida Noto Serifni o'z ichiga oladi. O'qish seriyalari va Ledger & margin hisob ko'rinishlari, hisob suhbatlari va nusxalarni ulashishga ham tegishlidir. Xitoycha, yaponcha va koreyscha PDF fayllar uchun serverda Noto Sans CJK kabi mos shrift o'rnatilgan bo'lishi yoki u `TGWITNESS_FONT_DIR` papkasiga joylashtirilishi kerak. Agar u mavjud bo'lmasa, ZIP HTML va JSON hisobotlarni saqlaydi. Ushbu ikki dizayn JavaScript'siz o'qiladigan jurnalni o'z ichiga oladi. Katta eksportlar uchun bu ko'rinish 8 MiB kirish byudjeti doirasida 500 tagacha to'liq yozuvni o'z ichiga oladi; hisobot chegarani belgilaydi va to'liq ko'ruvchi hamda manba yozuvlariga havolalar beradi. Hisob katalogi va munosabatlar indeksi shu o'qish namunasini tasvirlaydi, barcha ishtirokchilarni emas. To'liq jurnal diagrammalari o'z alohida ko'rsatilgan doirasini saqlab qoladi. ### Mavzularni tanlang | Mavzular oldindan belgilangan | O'rnatilgan holda kiritilgan | | --- | --- | | Ish hujjatlari | Faoliyat, kuzatuv vaqtlari, ishtirokchilar, suhbatlar va yozuv transkripti. | | Brifing | Ishtirokchilarning reytinglari yoki transkriptisiz faoliyat ko'rinishi. | | Faoliyatni ko'rib chiqish | Faoliyat, kuzatuv vaqtlari, ishtirokchilar, suhbatlar va tarkib, manba havolalari va aniq raqamlar bilan. | | Moslashtirilgan hisobot | Grafiklar, transkript va ko'rinishlarning o'zingiz tuzgan kombinatsiyasi. | Oldindan sozlamani o'zgartirish dizayningizni, ish tafsilotlarini va yozma tahlilingizni saqlab qoladi. Butunlik tekshiruvlari, qamrov, cheklovlar va tasdiqlash bo'yicha ko'rsatmalar har bir dizaynda saqlanib qoladi. Jadvali yoki transkripti yashirilganda ZIP-dagi manba yozuvlari o'zgarmay qoladi. Ixtiyoriy **Tekshiruv eslatmalari** hisobot muallifi tomonidan yozilgan savol, usul, natijalar va xulosani o'z ichiga oladi. Natijalar bo'limida manba faylini va yozuv raqamlarini keltiring. Imzo ushbu muallif bayonotlarini hisobot bilan birga saqlaydi; manba kuzatuvlari va muallifning talqini aniqlanishi mumkin bo'lib qoladi. Minimalizatsiyalangan topshirishlar ushbu shaxsiy eslatmalarni va to'liq jurnal diagrammalarini o'tkazmaydi. Jurnal hisobotlariga diagramma va tekshiruv tanlovlari tatbiq etiladi. Vaqt bo'yicha faoliyatni, UTC haftaning kunlari/soatlari bo'yicha issiqlik xaritani, ishtirokchilar reytinglarini, suhbat reytinglarini va yozuv tuzilmasini tanlang. 5–30 ta reytingdagi guruh va neytral ishtirokchi taxalluslari yoki hisob IDlarini tanlang. Noma'lum jo'natuvchilar va qolgan ishtirokchilar alohida qatordir. Taxalluslar faqat diagrammalarga ta'sir qiladi; manba yozuvlari hanuzgacha ularning shaxsiyatini o'z ichiga oladi. Dizayn ko'rinishi saqlanmagan loyihadan ishlab chiqarish muqovasi, tekshiruv va grafik komponentlaridan foydalangan holda yangilanadi, birinchi 50 000 manba yozuvidagi mos keluvchi yozuvlar bilan cheklangan. Quyidagi ma'lumotlar ko'rinishi to'liq tanlovni hisoblaydi. U aniq imzolanmagan va tahrirlarni saqlamaydi. Muqova va Grafikler tugmalari uning bo'limini almashtiradi. Bu to'liq PDF ko'rinishi emas. **Hisobot sozlamalarini saqlash** tanlovlarni kelgusi eksportlarga qo'llaydi; mavjud imzolangan fayllar o'zgarmasdir. PDF tanlangan muqova, tipografiya, bob tartibi va HTML hamda imzolangan JSON dagi kabi bir xil tanlangan agregatlardan foydalanadi. Ishonchni baholash, qamrov cheklovlari va tekshirish bo'yicha ko'rsatmalar saqlanib qoladi. Grafiklarni yoki o'qiladigan transkriptni yashirish ZIP-dan vakolatli manba qatorlarini olib tashlamaydi. O'chirib qo'yilgan grafik seriyalari analitik JSON-dan chiqarib tashlanadi; manba yozuvlarini oshkor qilishni cheklash uchun minimallashtirilgan eksportdan foydalaning. Ma'lumot tanlash filtrlari jurnal hisobotlariga qo'llaniladi; hisob va ulashish eksportlari o'zlarining olish va oshkor qilish doirasini saqlab qoladi. Ushbu dizayn/diagramma sozlamalari yangi suhbat/hisob eksportlariga va hisob ulashish oldindan ko'rishlariga muhrlanadi. Hisob/ulashish tili va maxfiylik sozlamalari mustaqil bo'lib qoladi; shaxsiy ish va tekshiruv eslatmalari ushbu eksportlarga nusxa ko'chirilmaydi. Hisob va ulashish hisobotlari o'zlarining imzolangan arxiv manifesti bilan HTML shaklida himoyalangan bo'lib qoladi. Jurnal, minimallashtirilgan jurnal topshiruvi va yakka suhbat to'plamlari ham imzolangan PDF-fayllarni taqdim etadi. ### Jadvalar nima sanaydi Jurnal faoliyati va issiqlik xaritalari yangi, tarixiy, tiklangan, tahrirlangan, o'chirilgan va qayta tekshirishda yo'qolgan **kuzatuvlarni** UTC bo'yicha yig'uvchi kuzatuv vaqtiga qarab hisoblaydi. Heartbeats va ilova kvitansiyalari hisobga olinmaydi. Ishtirokchi reytinglari faqat yangi, tarixiy va tiklangan xabar kuzatuvlarini hisoblaydi: jo'natuvchi tahrirlovchi yoki o'chiruvchi deb e'lon qilinmaydi. Takroriy kuzatuvlar bir xil Telegram xabarini tasvirlashi mumkin. Jurnal analitikasi turiga ko'ra, birinchi/oxirgi yozuv havolalari va manba `events.jsonl` SHA-256 bo'yicha hisoblarni saqlab qoladi. Rasmlarda HTML va PDF formatida aniq qiymatlar keltirilgan. Kunlik bloklar 366 kunlik yozib olingan davrdan keyin oylarga o'tadi; grafiklar ularni eng ko'pi bilan 36 ta teng kenglikdagi intervallarga birlashtiradi. 100 000 dan ortiq alohida identifikatorlar yoki 1 200 oy bo'lsa, tegishli diagramma mavjud bo'lmaydi, biroq aniq umumiy hisob-kitoblar mavjud bo'lib qoladi. Snapshot va hisob-ma'lumotlarni baham ko'rish diagrammalari faqat xizmatga tegishli bo'lmagan xabar qatorlarini hisobga oladi, ularning yozib olingan xabar vaqtini ishlatadi. Ulashish agregatlari redaksiya va filtrlashdan keyin hisoblanadi. Ushbu diagrammalar eng ko'pi bilan 90 ta teng kenglikdagi UTC sana oralig'idan foydalanadi va 10 000 tagacha guruhlash qiymatlarini saqlaydi; ortiqcha sonlar aniq ko'rsatiladi va muvofiqlashtiriladi. Oxirgi intervall qisqaroq bo'lishi mumkin. Noma'lum yoki sodda sanalar vaqt diagrammalariga kiritilmaydi. Bo'sh interval hech qanday kuzatuv kiritilmaganligini anglatadi; bo'shliqlar uchun qamrovni ko'ring. Ushbu diagrammalar saqlangan faoliyatni tasvirlaydi. Noma'lum jo'natuvchilar alohida toifa bo'lib qoladi va har bir tekshiruv alohida hisobot qilinadi. Qo'shilganda, `analytics.json` arxivning imzolangan fayl xeshlari bilan himoyalangan. Journal `report.json` shu tanlangan agregatni o'z ichiga oladi. Imzo tekshiruvi o'zgargan baytlarni aniqlaydi. Raqamlarni tekshirish uchun jurnal agregatlarini qayta hisoblang `report_analytics.Analytics` va `selected` bilan, yoki snapshot agregatlarini `snapshot_analytics.collect` va `project` bilan. ### Anomaliya ko'rsatkichlari **Oldindan ko'rish.** Dalil hisobotlariga ro'yxatdan o'tgan protsessorlar (`tgwitness/metrics/`, har bir metrika uchun alohida fayl) tomonidan hisoblangan **Anomaliya ko'rsatkichlari** bo'limi qo'shiladi. Hisobot har bir protsessorni uning versiyasi bilan birga nomlaydi va jadval ostida uning usulini chop etadi, shunda hisoblashni `events.jsonl` faylidan `tgwitness.metrics.run` yordamida takrorlash mumkin. | Protsessor | U nimani ko'rsatadi | | --- | --- | | `first_time_posters_over_time` v1 | Har bir UTC kunida birinchi marta post qilgan foydalanuvchilar va xabarlar soni. Bayroq uchun kamida beshta birinchi marta post qilgan foydalanuvchi va ularning mediani uch barobariga teng bo'lgan xabarlar soni, xabar hajmi esa mediani ko'pi bilan 1.5 barobar bo'lishi talab etiladi. Asosiy chiziq 7 kunlik tayyorgarlikdan so'ng, so'nggi 14 ta kalendar kun ichida kamida 7 ta kuzatilgan kunni hisobga oladi. | | `service_vs_message_ratio` v1 | Har bir suhbat bo'yicha alohida saqlangan xabar raqamlari va xizmat xabarlari ulushi. Bu raqamlashni tasvirlaydi; ma'lum bir yo'qolgan raqamni tushuntirmaydi. | | `join_leave_per_month` v1 | Qo'shilishlar, tark etishlar va oylik, shaxs, suhbat, o'zgarish va kun bo'yicha olib tashlashlar yoki taqiqlar. | | `pinned_per_month` v1 | Oylik chat holati snapshotlari orasida qo'shilgan yoki olib tashlangan xizmat xabarlari, bildirishnomalar va biriktirilgan xabarlar. | **Parametrlar → Hisobot metrikalari** protsessorlar va ko'rsatiladigan qatorlar sonini tanlaydi, shu jumladan filtrlangan hisobotlarda ham. Kunlik va oylik jadvallar so'nggi qatorlarni ko'rsatadi, xizmat ulushi jadvallari esa saqlangan xabarlar soniga qarab suhbatlarni reytinglaydi. Yakunlar har bir qatorni o'z ichiga oladi. Manba kodini olgandan so'ng, yuqorida sanab o'tilgan sakkizta dizaynni bir xil badiiy jurnal asosida tuzing: ``` python tools/build_report_styles.py --output test-results/report-styles ``` Natijada hosil bo'lgan `index.html` faylini ochib, to'liq HTML hisobotlar, imzolangan PDF va ZIP fayllarni solishtiring. Har bir dizayn bir xil manba jurnalidan foydalanadi. Har bir ishga tushirish uchun yangi chiqish katalogidan foydalaning, shunda oldin imzolangan namunalar saqlanib qoladi. ![Badiiy HTML hujjat](https://phishdestroy.github.io/TgWitness/assets/dossier-en.png) HTML hujjat ish yuzasidagi muqova va asosiy ma'lumotlar bilan ochiladi. Raqamlangan dalillar xaritasi har bir topilma, uning qo'llab-quvvatlovchi faktlari, cheklovlari va mustaqil ko'rib chiqishga havola qiladi. Qidiriladigan yozuvlar va barqaror yozuv havolalari oflayn ko'ruvchida ham mavjud bo'ladi. Dizayn tor ekranlarga, shuningdek JavaScript o'rnatilmagan brauzerlar va mavzularga moslashadi. Imzolangan PDF hujjat maxsus A4 qoplama, hisobot referensi va QR-kodi, ijrochi xulosasi, dalillar xaritasi, raqamlangan natijalar va hujjat belgilari (bookmarks) bilan jihozlangan. Uning sahifa sarlavhalari va pastki qismlari hisobotni aniqlaydi. QR-kod materialni aniqlaydi; u mustaqil tasdiqlash natijasi emas. Brauzerdan chop etilgan nusxalar ushbu kriptografik imzolangan PDF hujjatdan alohida. Kuzatuv vaqti yozib olingan kuzatuv davrlari va uzilishlarni bir xil UTC o'qida joylashtiradi. Bo'sh joy qamrovni anglatmaydi; batafsil jadvallar aniq oraliklarni saqlaydi. ZIP ichida o'qiladigan hisobotlar, imzolangan JSON, manba yozuvlari va tekshirish bo'yicha ko'rsatmalar mavjud. Rivojlantirish muhiti o'rnatilgan yangi, badiiy Ingliz/Rus/Nemis dosye yaratish: ``` python tools/build_dossier_example.py --output test-results/my-new-dossier ``` Har bir til katalogida `report.html`, `report.pdf`, `report.json` va `dossier.zip` fayllari mavjud. Mavjud namunaviy kataloglar hech qachon ustiga yozilmaydi. Uni yaratishda Telegram hisob qaydnomasi, tashqi vaqt belgilash xizmati yoki tarmoq ulanishi ishlatilmaydi. ![Badiiy imzolangan PDF-ning birinchi uch sahifasi](https://phishdestroy.github.io/TgWitness/assets/dossier-pdf.png) ## Konkret ishni o'qish 1 200 ta yozuvdan iborat jurnalning 1 000-yozuvida tasdiqlangan vaqt tamg'asi bo'lsa, hisobot shu vaqt tamg'asining chegarasidan tashqaridagi 200 ta keyingi yozuvni aniqlaydi. Bu tekshiruv nuqtasining mavjudligiga oid yuqori chegarani belgilaydi, har bir xabarning yuborilgan vaqtini isbotlamaydi. Agar yana uchta vaqt belgilash fayli tasdiqdan o'tmasa yoki tasdiqlanmasa, ular alohida hisoblanadi va ijobiy xulosani bera olmaydi. Foydalanish mumkin bo'lgan vaqt tamg'asi quyidagi barcha tekshiruvlardan o'tishi kerak: uning izi tekshiruv nuqtasiga mos kelishi, imzosi tamg'alangan vaqtdagi ishonchli TSA ildiziga zanjirlanishi, hamda tekshiruv nuqtasining imzosi, kaliti, hisobi va boshi aniq jurnal prefiksiga mos kelishi. Faqat timestampni tahlil qilish yoki OTS kvitansiyasiga ega bo'lish yetarli emas. O'quvchi ishonchli TSA ildizini mustaqil ravishda tanlashi va tasdiqni takrorlashi kerak. OTSga o'zining Bitcoin tasdiqlash tekshiruvi kerak. | Hisobot holati | Ma'no | | --- | --- | | Eksport paytida tekshiriladi | Eksportyor aytilgan tekshiruvni amalga oshirdi; mustaqil takrorlash hanuzgacha zarur. | | Yozib olindi; ko'rib chiqish talab etiladi | Asosiy kuzatuv yoki operator bayonoti qayd etiladi; bu mustaqil tasdiq emas. | | Ushbu nusxaga kiritilmagan | Matnda bu da'voni qo'llab-quvvatlovchi hech qanday artefakt yo'q. U boshqa joyda mavjud emasligini aytmaydi. | | Mustaqil ravishda tekshirilmagan | Hisobot mustaqil tasdiqlash natijasini taqdim etmaydi. | | Toʻliq emas yoki mavjud emas | Material yoki talab qilinadigan tekshiruv yetishmayapti, to'liq emas yoki muvaffaqiyatsiz tugadi. | Har bir tekshiruvni yozib olingan to'plam qamrovi bilan birga alohida ko'rib chiqing. ## Qanday kuchli konfiguratsiya saqlanishi kerak 1. Yig'ishga tayanishdan oldin, yig'uvchining kalit barmoq izini alohida ishonchli kanal orqali saqlab qo'ying. Ushbu referensni eksportni imzolash kaliti bilan solishtiring. 2. Mustaqil ravishda vaqt belgilangan tekshiruv nuqtalarini saqlang va agar ishlatilsa, yig'uvchining ma'muriy nazorati tashqarisidagi guvoh jurnalini saqlang. Ularni eksport qilingan jurnal bilan solishtirib, uning avvalgi chegaralarini tekshiring. 3. Yozuvlarni olish doirasi, bo'shliqlar, filtrlar, cheklovlar va yig'ishdagi o'zgarishlarni aniqlang. Amaldagi da'vo bilan bog'liq etishmayotgan davrlarni tushuntiring, kuzatilmagan xabar IDlari, o'chirish bildirishnomalari va muvaffaqiyatsiz qayta tekshiruvlarni alohida ajratib ko'rsating. 4. Asl ZIP-fayllarni va ularning hashlarini saqlang. Har bir saqlovchi, uzatish, sana va maqsadini qayd eting. Tegishli operator bayonotlari va ish yozuvlarini ular bilan birga saqlang. 5. Maxfiy VMlar uchun iqtibos, chaqiriq, Intel sertifikat zanjiri, o'lchovlar, aniq manba va kalit boshqaruv shartlarini saqlang va mustaqil ravishda tasdiqlang. Attestatsiya tekshiruv natijasini ko'rib chiqilgan artefaktlar bilan birga saqlang. Har bir rejimda ma'lumotlarni olish, arxiv yaxlitligi, vaqt va to'plam qamrovini tekshirish uchun [tekshiruv doirasiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) qarang. ## Qabul qiluvchi ko'rib chiqishi TgWitness'ning ishonchli o'rnatilgan versiyasidan va mustaqil ravishda olingan barmoq izidan foydalaning: ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 --tsa-ca tsa-root.pem python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 --witness witness.zip --witness-fingerprint WITNESS_SHA256 --require-witness python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 --check-drand ``` Witness ZIP mustaqil ishonchli manbadan olinishi kerak; uning kaliti va kelib chiqishini ham saqlang. Buyruqlar, vosita versiyasi, chiqishlar, ko'rib chiqilgan kirish hashlar va hal qilinmagan savollarni saqlang. Beacon tasdiqlash alohida onlayn tekshiruvdir; hisobotni render qiluvchi hech qachon faqat hisobotni ko'rsatish uchun xizmatga murojaat qilmaydi. Muayyan xabar bo'yicha tortishuv yuzaga kelganda, arxiv referensiyasini, vakolatli fayl va yozuv referensiyasini keltiring, so'ng tegishli vaqt chegaralari, qamrov bo'shliqlari, tanlov va tasdiqlovchi materiallarni ta'riflang. Taqsimlash nusxasi uchun yozib olingan o'zgartirish va uning manba arxiviga bo'lgan havolalarini ham ko'rib chiqing. Xususiy filtrlar va identifikatsiya xaritalash ommaviy baholashdan tashqarida qoladi. Imzolangan PDF-ni tekshirish qoplangan baytlarda o'zgarishlarni aniqlaydi. Asl raqamli fayl va tekshirish natijasini har qanday skrinshotlar yoki chop etilgan nusxalar bilan birga saqlang. --- # Telegram · Hisobni eksport qilish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/account-export/ Hisob hozirda o' qiy oladigan narsalarni eksport qiling: doira, qayta boshlanadigan ishlar, imzolangan arxiv va minimallashtirilgan ulashish nusxalari. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Hisob hozirda o'qiy oladigan narsalarni eksport qiling: doira, qayta boshlanadigan ishlar, imzolangan arxiv va minimallashtirilgan ulashish nusxalari. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ![Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/assets/chapter-evidence.svg) Akkaunt eksporti akkauntni faqat o‘zi uchun band qiladi. Boshlash yoki davom ettirishdan oldin monitoringni yoki boshqa yig‘ish vazifasini aniq to‘xtatib turing; ilova ularni avtomatik to‘xtatmaydi. O'rnatish ma'muri sifatida **Start here → Export my account** yoki **Exports → Telegram account → Configure account export** ni tanlang. Kerak bo'lsa tizimga kiring, hajmini ko'rib chiqing va eksportni aniq boshlang. Uzluksiz kuzatuv talab qilinmaydi. **Saqlangan kuzatuvlar** mavjud jurnalning alohida eksporti hisoblanadi; uning ZIP jurnal filtrlaridan qat'i nazar barcha manbalarni o'z ichiga oladi. Har bir ish maydoni o'z ishlariga, imzolash identifikatoriga va saqlash joyiga ega. Chiqarilgan panelga kirish, jumladan cheklanmagan oddiy eksport ruxsati, bu hisob bo'ylab yo'llarni ochmaydi. Jo'natuvchi va xabar matni bo'yicha filtrlar **"Jo'natuvchi yoki xabar matni bo'yicha filtr"** ostida kengayadi. **Hisob ma'lumotlari va ulanish usuli** bo'limida ixtiyoriy hisob toifalari va "Export/oddiy sessiya" tanlovi mavjud; uning qisqacha mazmuni yopiq bo'lganda ham faol tanlovlarni ko'rsatadi. Ushbu bo'limlarni yopish ularning sozlamalarini saqlab qoladi. Eksport va hisobot loyihalari ko'rinishni o'zgartirish paytida ham joriy panel sessiyasida qoladi; ular brauzerni qayta yuklashda saqlanmaydi. Mavjud ishlar har ikkala eksport tanlovidan ham erishilishi mumkin. Ushbu ish jarayoni ulangan hisobga hozirda kirish mumkin bo'lgan ma'lumotlarni eksport qiladi. Standart bo'yicha [Telegram Takeout](https://core.telegram.org/api/takeout) ishlatiladi; bu mavjud bo'lmagan yoki o'chirilgan Telegram ma'lumotlarining zaxira nusxasi emas. Maxfiy suhbatlar, kirib bo'lmaydigan tarix va avvalgi tahrirlar tiklanmaydi. Telegram Takeout boshlanishidan oldin kutish muddatini belgilashi mumkin. Panel bu kutishni ko'rsatadi; transportni jimlik bilan almashtirmaydi. Aniq regular-API opsiyasi boshqacha qamrovga ega va qo'llab-quvvatlanmagan kategoriyalarni ham yozib oladi. Takeout — bu Telegram Desktop tomonidan ham ishlatiladigan rasmiy eksport API. TgWitness o'zining ma'lumot yig'ish jarayonidan to'g'ridan-to'g'ri Desktop bilan mos JSON yozishi mumkin; boshqasining arxivini import qilish shart emas. Chat va xabar IDlari har ikkala transport orqali mavjud. Ochiq chat yoki jo'natishga ruxsat tezroq eksportni kafolatlamaydi yoki Takeout tasdiqlash kechikishini bartaraf etmaydi. Sür'atni solishtirishdan oldin bir xil hajm va media sozlamalarini o'lchab ko'ring. 20tagacha aniq tanlangan chat IDlari uchun, oddiy API eksporti hisobning to'liq dialog inventarizatsiyasini ko'rib chiqishdan oldin ushbu tengdoshlarni to'g'ridan-to'g'ri aniqlaydi. Shuning uchun o'qiladigan ommaviy kanalga qo'shilmasdan ham, u dialoglar ro'yxatida bo'lmasa ham eksport qilish mumkin. Keshga olinmagan tengdoshlar oddiy inventarizatsiyaga qaytadi. Arxiv filtri majburiy bo'lib qoladi: agar Telegram dialogni qaytarmasa va arxivlangan suhbatlar chiqarib tashlangan bo'lsa, noma'lum arxiv holati o'tkazib yuborilganlik sifatida qayd etiladi. Takeout o'zining bo'lingan diapazonli inventarizatsiya protsedurasini saqlab qoladi. Hech bir yo'nalish suhbatlarni birlashtirmaydi yoki jo'natish ruxsatlarini o'zgartirmaydi. Desktop-ga mos JSON-da, Telegram `left` deb belgilagan kanallar `left_chats` ostida paydo bo'ladi, bu jumladan hisobga qo'shilmagan o'qiladigan ommaviy kanallarni ham o'z ichiga oladi. `FLOOD_WAIT` va `FLOOD_PREMIUM_WAIT` ikkalasi ham server so'ragan to'liq muddat davomida so'rovlarni to'xtatadi. Hisobning muddati qayta ulanishlar va qayta ishga tushirishlar davomida saqlanadi; keyinchalik qisqaroq kutish uni qisqartira olmaydi. Qayta urinishlar cheklangan, bekor qilish muhrlangan sahifalarni saqlaydi va API ma'lumotlari tezlik chegarasini chetlab o'tish uchun aylantirilmaydi. Premium sotib olinmaydi. ## Qaysi ma'lumotlar yig'ilishini tanlang | Sozlamalar | Ma'no | | --- | --- | | Maqsad | Ushbu ma'lumotni olish nima uchun zarurligini qayd eting. Bu yerga keraksiz ismlar yoki nozik ish tafsilotlarini kiritmang. | | Hisobot tili | O'qiladigan hisobot yorliqlarining tilini tanlang. Asl xabar matni o'zgarmaydi; tarjima qilinmagan shablon yorliqlari ingliz tilida qoladi. Til imzolangan ish opsiyalari bilan belgilangan. | | Suhbat turlari / suhbat IDlari | Barcha tanlangan turlar yoki faqat ro'yxatdagi suhbatlar; Saqlangan xabarlar shaxsiy suhbatlarga tegishli. Arxivlangan suhbatlar alohida tanlanishi mumkin. | | Sanalar | UTC. Panelning From va Through kalendar sanalari ikkalasi ham kiritilgan. API inklyuziv `from_utc` va eksklyuziv `to_utc`; panel Throughdan keyingi kunning boshlanishini yuboradi. Bo'sh chegarani belgilash o'sha tomonni cheklovsiz qoldiradi. | | Yuboruvchi identifikatorlari | Faqat ro'yxatda ko'rsatilgan jo'natuvchilarning xabarlari; bo'sh ro'yxat barcha jo'natuvchilarni o'z ichiga oladi. | | Matn quyidagilarni o'z ichiga oladi | Bosh harflarga e'tibor bermaydigan so'zma-so'z iboralar OR bilan mos keladi. Jo'natuvchi/sana/o'z-xabari shartlari AND bilan birlashtiriladi. | | O'z xabarlari | Faqat chiqadigan xabarlarni saqlang. | | Media turlari | Ilova kategoriyalarini tanlang yoki barchasini tozalang, xabar fayllarini yuklab olishdan qochish uchun. | | Fayl / umumiy media limitlari | Har bir fayl bo'yicha MiB va jami yuklab olingan media GiB. Matn, kvitansiyalar, o'qiladigan hisobotlar vaZIP ustki qismi qo'shimcha disk joyini talab qiladi. | | Hisob toifalari | Profil, kontaktlar, profil rasmlari, hikoyalar, sessiya metama'lumotlari va boshqa Takeout ma'lumotlari uchun alohida boshqaruvlar mavjud. | **Minimize yig'ish** sozlamasi fayllar va akkaunt metama'lumotlarini o'chirib tashlaydi. Jo'natuvchi/kontent filtrlari saqlangan xabar sahifalari va media yuklab olinishidan oldin qo'llaniladi. Telegram shu filtrlarni baholash uchun zarur bo'lgan xabarlarni o'z ichiga olgan API tarixi sahifalarini hali ham uzatadi: filtrlash tanlanmagan xabarlarning jarayon xotirasiga hech qachon kirmaydi, degan kafolat emas. Ish maydonchasidagi boshqa davom etayotgan kuzatuv o'z doirasi va saqlash sozlamalariga ega. Profil-foto tarixi va hikoyalar standart bo'yicha tanlanmaydi. Ish faqat xabarlarni talab qilganda profil va kontaktlarni ham o'chirib qo'ying. Ilovalar yoki metadata keraksiz bo'lsa, ularni yig'ish paytida chiqarib tashlash ushbu eksportda yana bir xususiy nusxa saqlanishining oldini oladi. Foto yuklamalar metadata va xesh manifestlarida ko'rsatilgan statik tasvir varianti, shu jumladan animatsiyalangan avatar variantiga ega fotosuratlardan foydalanadi. Ushbu animatsiya tanlangan statik tasvir o'rnini bosmaydi. Kuzatilgan o'lchamdan qisqaroq yoki uzunroq yuklama muvaffaqiyatsiz ilova sifatida qayd etiladi va faylga havola yangilanishi paytida vakillik o'zgartirilishi rad etiladi. Ushbu xatoliklar arxivni qisman saqlaydi, ammo xabar yozuvlarini saqlab qoladi. Mustaqil tekshiruv shuningdek, imzolangan uzunligi ularning kuzatilgan o'lchami yoki vakilligiga zid bo'lgan saqlangan ilovalarni, jumladan eski arxivlarda ham rad etadi. ## Qayta tiklash, qamrov va tasdiqlash Har bir ish o'z parametrlari va hisob identifikatorini muzlatadi. Inventarizatsiya va ushlangan sahifalar imzolanadi; sahifa kvitansiyalari hashlar, kursorlar, vaqtlar, ilova natijalari va ularning oldingi kvitansiyalarini qayd etadi. Faqat tasdiqlangan sahifalar jarayonni oldinga siljitadi. Qayta boshlash/davom ettirish bu yozuvlarni davom ettirishdan oldin tekshiradi. O'zgartirilgan hisob, o'zgartirilgan imzolangan sahifa yoki nomuvofiq kvitansiya zanjiri rad etiladi. Parametrlarni yozib olish jarayonida o'zgartirish mumkin emas: boshqa doira uchun yangi ish boshlang. Pause joriy hisob operatsiyasini to'xtatadi. Ilovani qayta ishga tushirish yakunlanmagan ishni aniq davom ettirish uchun ochiq qoldiradi. Muddati tugagan Takeout sessiyasi aniq davom ettirishni talab qiladi; Telegram bo'lingan diapazonlarini o'zgartirish yangi olishni talab qilishi mumkin. Davom ettirish avvalgi kuzatuvlarni saqlab qoladi, shuning uchun uzoq davom etadigan eksport bitta atomik snapshot emas. Hisobni o'zgartirish bo'yicha boshqa amallar va ziddiyatli eksportlar olish jarayonida bloklanadi. Ish maydonchasini o'chirishdan oldin paketlash tugashini kuting. Resume allaqachon olingan kontentni davom ettirishdan oldin tekshiradi. Sekin saqlash qurilmasidagi katta arxivlar sozlangan **Parameters → Panel action timeout** (o'rnatilgan bo'yicha 120 soniya) muddatidan oshib ketishi mumkin. Qayta urinishdan oldin ushbu sozlamani oshiring; bekor qilish yoki saqlash uzilishi ishni to'xtatib qo'yadi, integritet tekshiruvlari muvaffaqiyatsiz bo'lsa, ish tushuntirish bilan muvaffaqiyatsiz bo'ladi. Verification fayllarini yopishdan oldin xavfsiz yakunlanishi yoki to'xtashi kerak. Sintetik tekshiruvlar orqali hech qanday katta akkaunt o'tkazuvchanligi da'vosi tasdiqlanmagan. Panel tanlangan doirani to'liq bajarilgan va qisman arxivlangan holatlardan ajratib ko'rsatadi hamda e'tibordan chetda qolgan va o'qilmay qolgan holatlarni qayd etadi. Ataylab chiqarib tashlangan fayllar xato bo'lgan yoki mavjud bo'lmagan fayllardan farq qiladi. Integritet tekshiruvi muvaffaqiyatli bo'lsa ham qamrovni tekshirishni davom ettiring. Hech qanday mahalliy o'quvchi Telegram hech qachon mavjud bo'lgan barcha xabarlarni qaytarganini isbotlay olmaydi. TugallanganZIPlar takroriy va HTTP-range yuklab olish uchun mavjud bo'lib qoladi. Hisob arxivi o'z ichiga oladi `manifest.json`, `manifest.sig`, imzolangan `job.json`, `inventory.json`, `receipts/`, vakolatli `data/*.jsonl`, tanlangan `media/`, imzolangan, vakolatli, tanlangan, o'qiladigan HTML va tasdiqlovchidan iborat. Yig'uvchining barmoq izini mustaqil kanal orqali belgilab, so'ng ishonchli o'rnatish yordamida tasdiqlang: ``` python -m tgwitness.verify account-export.zip --fingerprint TRUSTED_SHA256 ``` Kengaytirilgan mazmuni 4 GiB dan oshadigan arxivlar uchun aniq yetarli `--max-gib`. Panel o'zining autentifikatsiyalangan, to'liq bajarilgan mahalliy arxivlarini ularning e'lon qilingan kengaytirilgan hajmi va e'lon qilingan ZIP digesti bo'yicha tekshiradi; tashqi CLI esa mustaqil hajm chegarasini saqlaydi. O'qiladigan HTMLni ochishdan oldin tekshirishni bajaring. Arxivga biriktirilgan verifikator qulay, ammo mustaqil ravishda olingan verifikator dalillarga biriktirilgan ijro etiladigan kodga ishonmaslikka imkon beradi. Ed25519 imzosi va SHA-256 xeshlari kollektor tegishli baytlarni yozib qo'yganidan keyin o'zgarishlarni aniqlaydi. Ular **emas** isbotlaydiki, Telegram ushbu xabarlarni imzolagan, kollektor operatori halol bo'lgan, hisobning tarixi to'liq, yoki sud ushbu materialni qabul qiladi. Yozib olish vaqtlari kollektor soatiga asoslanadi. Mustaqil vaqt belgilari va mustaqil olish kelib chiqishi alohida baholanishi kerak. ## Advokat yoki boshqa qabul qiluvchi uchun oshkor etish hujjatini tayyorlang Tayyor eksportni yuklab olgach, asl ZIPni saqlang va oching `index.html` chiqarilgan nusxadan oching. Hisobot uning doirasi, mavjud qamrovi va cheklovlarini tushuntiradi. Uning yozuv havolalari arxiv havolasi, hujjat yo'li va yozuv raqamini birlashtiradi, shunda qabul qiluvchi HTML yoki chop etilgan nusxada xuddi shu yozuvni topa oladi. Ishlangan misol uchun, [Badiiy hisobotni oching](https://phishdestroy.github.io/TgWitness/demo/report/). Tamomlangan hisob eksportidan "**Ulashish uchun nusxa tayyorlash**"ni tanlang. Bu alohida imzolangan derivativ yaratadi. Manba ZIP o'zgarmas va maxfiy bo'lib qoladi; qabul qiluvchi uning to'liq mazmunini olishga ruxsat etilmagan bo'lsa, uni minimallashtirilgan derivativ bilan birga yubormang. Hisobot tilini alohida tanlang. Tilni yoki istalgan tanlov sozlamasini o'zgartirish yaratishdan oldin yana bir ko'rinishni talab qiladi. 1. Ochiq qilish maqsadini kiriting va sanalar, yuboruvchi identifikatorlari hamda so'zma-so'z matn mezonlarini tanlang. 2. Shaxslarni saqlab qolish, faqat ro'yxatdagi ishtirokchilarni ko'rsatish yoki hammani psevdonimlashni tanlang. Psevdonimlash rejimida chat IDlari/sarlavhalari va xabar IDlari ham almashtiriladi. Psevdonimlar bitta oshkorot ichida barqaror bo'lib, mustaqil tayyorlangan oshkorotlar orasida o'zgaradi. 3. Xabar matnini saqlang, uni butunlay o'chirib tashlang yoki mask qilish uchun haqiqiy ismlar/iboralarni qo'shing. Xususiy rejimda vosita shuningdek ma'lum yashirin jo'natuvchi nomlari va muqobil foydalanuvchi nomlari, butun tokenli jo'natuvchi identifikatorlari, bevosita suhbat nomlari, havolalar, elektron pochta manzillari va telefon ko'rinishidagi qatorlarni ham masklaydi. Ma'lum nomga moslash Unicode katta-kichik harflarning bir xil yozilishini (case folding) hisobga oladi, jumladan `Straße`/`STRASSE`. Umumiy guruh/kanal sarlavhalari xabar matnidan avtomatik ravishda olib tashlanmaydi. Agar ma'lum identifikatorni yashirish chegarasi oshib ketsa, manba eksportini toraytiring yoki matnni o'chirib tashlang; vosita keyingi nomlarni jimjit o'tkazib yubormaydi. Bu eng yaxshi urinish qoidalari bo'lib, umumiy anonimlashtirish emas. 4. Fayllarni faqat qabul qiluvchi ularga ehtiyoj sezsa qo'shmang. Ilova qilingan asl fayllar piksellar, audio, matn va metadata saqlanadi. Ular vosita tomonidan anonimlashtiriladi**emas**. 5. Hisoblarni, ogohlantirishlarni va namunaviy o'zgartirilgan xabarlarni ko'rib chiqing, so'ng yaratishni aniq tasdiqlang. Namuna har biri 12 tagacha xabar va 2 000 belgiga qadar cheklangan. Bu natijaning to'liq ko'rib chiqilishi emas, balki namunadir. Sozlamalarni o'zgartirish uchun yana bir ko'rib chiqish zarur. Ko'rib chiqish 15 daqiqadan so'ng amal qilmay qoladi va u ma'lum bir administrator sessiyasiga hamda aynan shu asl ZIP ga bog'langan; yaratilgandan so'ng qayta ishlatilmaydi. Yangi ko'rib chiqish bir xil ish va sessiya uchun avvalgisini bekor qiladi. 6. Natijaning to'liq versiyasini tekshiring `index.html` va `messages.jsonl` Topshirishdan oldin uni mahalliy tarzda to'liqva tadqiq qiling. Agar u keraksiz ma'lumotni oshkor qilsa, kuchliroq istisnolar bilan yangi oshkor qilish hujjatini yarating. Imzolangan ZIPni joyida tahrirlamang. ### Tanlov orqali chiqarib tashlangan xabarlar **Oldindan ko'rish.** Ochiqlanmagan xabar bo'lsa, u to'liq ko'rinmaydi. Har bir suhbat ichida kamida bitta ochiqlangan xabar bo'lsa, tanlovdan chiqarib tashlangan xabarlar markerlar sifatida paydo bo'ladi, `[withheld by selection — rule: sender]` (yoki `text`, `period`). **Tanlovdan chiqarib tashlangan xabarlarni** tanlang: ketma-ket yashirilgan xabarlar uchun har bir yig'indiga bitta marker (defolt) yoki har bir xabar uchun bitta marker. Markerlar faqat qoida va sonni o'z ichiga oladi, hech qachon matn, jo'natuvchi, sana yoki fayllarni emas. Hech narsa oshkor qilinmagan suhbatlar butunlay chiqarib tashlanadi, shuning uchun paket ularning mavjudligini ko'rsatmaydi. Ochiqlangan javoblar nimaga javob berishini ko'rsatadi: ushbu nusxaga kiritilgan xabar, tanlov orqali yashirilgan xabar yoki manba eksportida mavjud bo'lmagan xabar (ekspurtdan oldin o'chirib tashlangan yoki hech qachon eksport qilinmagan; eksport qaysi biri ekanini aniqlay olmaydi). Ochiq javob beradigan yashirilgan xabar har doim o'ziga xos belgi oladi, shuning uchun javob bo'sh ekanligini tushuntiruvchi yozuvga ishora qiladi. Bu uch holat manba eksportiga tegishli o'chirishlar va yig'ish bo'shliqlaridan farq qiladi. In `messages.jsonl` (format `tgwitness-account-disclosure-v2`) har bir xabarda `state`: `disclosed`, yoki `withheld` bilan `rules` va `count`. Ochiqlangan javobda `reply_to` maqsad bilan `id` va `state` (`disclosed`, `withheld`, `not_in_source`). Manifest oshkor qilingan xabarlar, suhbatlar, media va `withheld` xabarlardan iborat. `verify.py` kontentni o'z ichiga olgan marker va paketdan yo'qolgan yozuvga ishora qiluvchi javobni rad etadi; 1-versiya paketlari avvalgidek tekshiriladi. Minimizatsiya qilingan format tuzilgan akkaunt profillari, kontaktlar, avatarlar, sessiyalar, hikoyalar, xom Telegram obyektlari, jo'natish sarlavhalari, javob iqtiboslari, kontakt kartalari va joylashuv metama'lumotlarini o'z ichiga olmaydi. U asl JSONL fayllarini, shaxsiy filtr sozlamalarini, psevdonim kalitini va identifikatsiya xaritasini o'z ichiga olmaydi. Tanlangan matn, aniq saqlangan identifikatorlar va kiritilgan fayllar hanuzgacha o'sha filtrlarda ishlatilgan nomlar, ID-lar yoki iboralarni o'z ichiga olishi mumkin; ular alohida ko'rib chiqilishi kerak. Maxfiy siyosat va psevdonim kaliti ish uchun mahalliy omborda shifrlangan holda saqlanadi; ishni o'chirish unga bog'liq maxfiy oshkor etish yozuvlarini tozalaydi. Ommaviy siyosat yozuvlari filtr qiymatlari o'rniga filtr sonlarini hisobga oladi. Manifest va HTMLda ko'rsatilgan maqsad ommaviy bo'lib, aniq maxfiy mezonlar va psevdonimlashtirilgan rejimlarda ma'lum yashirin shaxsiyatlar ham, xabar matni o'chirib tashlanganida ham, maskalanadi. Maqsadni keraksiz shaxsiy ma'lumotlardan holi saqlang; noma'lum identifikatsiya konteksti esa qolishi mumkin. Uning manifesti derivativ fayllarni, jamoat siyosatini va asl ZIPning hashini bog'laydi. Verifikatsiya yaxlitlikni aniqlashi va, agar manba mahalliy taqdim etilsa, mos keluvchi manba bog'lanishini o'rnatishi mumkin: ``` python -m tgwitness.verify minimized-disclosure.zip --fingerprint TRUSTED_SHA256 python -m tgwitness.verify minimized-disclosure.zip --fingerprint TRUSTED_SHA256 --evidence account-export.zip ``` Manba bog'lanishi mustaqil ravishda tanlangan o'zgartirish har bir zarur elementni tanlaganini yoki har bir identifikatsiya qiluvchi ma'lumotni olib tashlaganini isbotlamaydi. Asl oddiy matn dalil sifatida ilova qilinmagan. Ushbu hukm uchun yangi ko'rib chiqish zarur. ## Ulashish va mezbonlik qilingan yozib olish Qabul qiluvchiga kerak bo'lgan xabarlar va fayllarni tanlang, to'liq ulashish nusxasini ko'rib chiqing va manbani alohida saqlang. Yetkazilgan ZIP-ning hashini qayd eting, shunda qabul qiluvchi aynan shu nusxani aniqlab, tasdiqlay oladi. Psevdonimizatsiya tanlangan identifikatorlarni almashtiradi; kiritilgan matn va asl fayllar ko'rib chiqishning bir qismi bo'lib qoladi. GitHub Actions Takeout yoki oddiy API orqali to'liq akkaunt va tanlangan chat eksportlarini, shuningdek, bitta chat voqealar jurnalini qo'llab-quvvatlaydi. [Joylashtirilgan capture qo'llanmasi](https://phishdestroy.github.io/TgWitness/docs/capture/) sozlamalarni tekshirish va 120 daqiqalik cheklovni tushuntiradi. Joylashtirilgan capture'dan olingan ulashish nusxasini tekshirish uchun uning manba hashini asl arxiv bilan solishtiring va arxivning guvohnomasini [tegishli rejim bo'yicha tekshiruvlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) yordamida tasdiqlang. [Dalil formati](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) · [Holat hisobotlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-reports/) --- # Telegram · Dalil formati Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/ Imzolangan ZIP tarkibi, yozuv turlari, jarayon kvitansiyalari, odamlar profillari, masofaviy nusxalar va oflayn tekshirish. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Translation coverage: this edition includes material from the English original. Imzolangan ZIP tarkibi, yozuv turlari, jarayon kvitansiyalari, odamlar profillari, masofaviy nusxalar va oflayn tekshirish. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) ![Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/assets/chapter-evidence.svg) TgWitness hisobga ko'rinadigan Telegram kuzatuvlarini imzolangan jurnalda saqlaydi. Qabul qiluvchilar saqlangan yozuvlar, ilovalar va hisobotlarni ishonchli yig'uvchi kalitiga nisbatan tekshirib, so'ng jurnalni mustaqil saqlangan nazorat nuqtasiga solishtirishlari mumkin. Ushbu sahifa formatlar, tekshiruvlar va topshirish uchun saqlanishi kerak bo'lgan materiallarni tasvirlaydi. Qabul qiluvchilar Windowsda **VERIFY.cmd** bilan boshlasha oladilar: u asl ZIP va mustaqil ravishda olingan kalit barmoq izini so'raydi, tushuntirilgan natijani ko'rsatadi va alohida tasdiqlash yozuvini saqlaydi. Sozlash va ishonch chegaralari uchun [tasdiqlash ishga tushiruvchilari va portativ ijro muhitiga](https://github.com/phishdestroy/TgWitness/blob/main/docs/VERIFICATION_LAUNCHER.md) qarang. **Ushbu sahifada** - [Imzolangan narsa](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#what-is-signed) - [Suhbat eksportlarini taqqoslash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#comparing-chat-exports) - [Tergovni topshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#investigation-handoff) - [Topshirish qismi parchasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#handover-extract) - [O'qiladigan hisobotlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#readable-reports) - [Voqealarni kanoniklashtirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#event-canonicalization) - [Aktyor semantikasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#actor-semantics) - [Qamrov: uzluksizlik, bo'shliqlar va kuzatilmagan identifikatorlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#coverage-continuity-gaps-and-unobserved-ids) - [Ishlab chiqaruvchi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#producer) - [Foydalanuvchi profillari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#people-profiles) - [Mustaqil guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#independent-witness) - [Manifest va tekshiruv nuqtalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#manifest-and-checkpoints) - [Verifikatsiya doirasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) - [Ilovalar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#attachments) - [Muddatli yig'ish va jarayon kvitansiyalari (0.2)](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#durable-collection-and-process-receipts-02) - [RFC 3161 tayyorlash va javobni tasdiqlash (0.2)](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#rfc-3161-preparation-and-response-verification-02) - [Dalil rejimidagi ixtiyoriy yozuvlar: drand va Telegram qurilmalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#optional-records-in-evidence-mode-drand-and-telegram-devices) ## Imzolangan nima | Material | Himoya | Saqlab qo'yish kerak bo'lgan narsalar | | --- | --- | --- | | Har bir jurnal kuzatuvi, jumladan operatsion voqealar | Har bir voqea uchun SHA-256 zanjiri va Ed25519 imzosi | `events.jsonl` original, ishonchli kalit izi va saqlangan tekshiruv nuqtasi | | Dalil ZIP tarkibi | `manifest.sig` kontent fayllarining hashlarini ro'yxatlaydigan kanonik manifestni imzolaydi | To'liq ZIP arxivi, manifesti va imzosi bilan | | Saqlangan ilovalar | SHA-256 va bayt soni imzolangan `media.saved` voqeasida; fayl xesh imzolangan ZIP manifestida | Tekshirilgan ZIP ichidagi asl baytlar | | Tekshiruv nuqtasi | Jurnal bo'ylab Ed25519 imzosi, sarlavha xesh, jamoat kaliti va yaratilish vaqti | Mujadala ostidagi o'zgarishdan oldin saqlangan mustaqil nusxa | | Jo'natish kvitasi | Yig'uvchi versiyasining imzolangan yozuvi, manba-fayl hashlar va boshlang'ich sozlamalar, shuningdek `process.started` funksiyasida ham kiritilgan | Tanlangan tasdiqlash rejimi uchun kvitansiya, tegishli jurnal va muhit dalillari | | O'qiladigan hisobotlar: `report.html` va uning bo'laklari, `report.json`, `report.pdf`, `chat.pdf` | Har bir faylning mazmuni bo'yicha Ed25519 muhri; PDF shuningdek standart PDF imzosi ham mavjud (qarang [o'qiladigan hisobotlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#readable-reports)) | Qabul qilingan fayl va ishonchli kalit barmoq izi; u tasvirlaydigan ZIP | | Mustaqil CSV | Mustaqil kriptografik imzo yo'q; faqat voqea xeshlari yetarli emas | Butunlikni tekshirish uchun tasdiqlangan ZIP ichidagi aniq nusxani ishlating | | Brauzer tomonidan yaratilgan skrinshotlar, chop etilgan nusxalar yoki PDF | Derivativda TgWitness imzosi yo'q | Asl tasdiqlangan paketni saqlang va uning asosida yaratilgan derivativ qanday tayyorlanganini hujjatlashtiring | Yig'uvchi har bir eksport formatini yaratishdan oldin jurnal imzolarini tekshiradi. O'qiladigan HTML va PDF hisobotlari o'z muhrlariga ega; mustaqil CSV imzolangan ZIP tarkibida tekshiriladi. Ilovaga tegishli baytlar va manifestni saqlash uchun ZIP-ni saqlang, shuningdek jurnalni avvalgi chegaraga nisbatan tekshirish uchun alohida tekshiruv nuqtasini yarating. ## Suhbat eksportlarini solishtirish Ikki imzo qo'yilgan chat-eksport ZIP fayllarini mustaqil saqlangan imzolovchi barmoq izlari bilan tekshirib, solishtiring: ``` python -m tgwitness.verify first.zip --compare second.zip \ --fingerprint FIRST_TRUSTED_KEY_SHA256 --compare-fingerprint SECOND_TRUSTED_KEY_SHA256 ``` Ikkala arxiv ham bir xil raqamli hisob va suhbat IDlarini qayd etganda, yozuvlar xabar IDsi bo'yicha juftlashtiriladi. **O'zgarmagan (Unchanged)** degani to'liq saqlangan JSON yozuvining tengligini anglatadi: to'liq matn, muallif, sanalar, javob maqsadi, ichki metadata va noma'lum maydonlarning barchasi kiritilgan. JSON ob'ektining kalit tartibi muhim emas; maydonlarning yo'qligi, null qiymatlar, qiymat turlari va massiv tartibi esa muhim. 300 belgili oldindan ko'rish faqat ko'rsatish uchun mo'ljallangan. O'zgargan yozuvlar farq qiluvchi eng yuqori darajadagi `changed_fields` nomini oladi, bu oldindan ko'rishda ko'rinmaydigan o'zgarishlarni ham o'z ichiga oladi. Moslashtirish paytida bir-birini ustma-ust yozish o'rniga takroriy xabar IDlari rad etiladi. Farq o'zgartirilgan ko'rinish nomi, ko'rishlar soni, to'plam izohi yoki boshqa kuzatuv metama'lumotlari bo'lishi mumkin. Bu o'zi Telegram tahririni aniqlamaydi, kim o'zgartirish kiritganini aniqlamaydi yoki qaysi qarama-qarshi arxiv to'g'ri ekanligini isbotlamaydi. Tahlil qilinmagan yozuvlar solishtirishda saqlanib qoladi; ularning saqlangan vakilligining tengligi ularning Telegram yuklamasi deksoderlanganligini anglatmaydi. Turli yoki yo'qolgan akkaunt/suhbat identifikatorlari uchun vosita faqat jo'natuvchi, to'liq matn, fayl xesh, media turi va besh soniyalik vaqt toleransidan foydalangan holda mumkin bo'lgan mosliklarni topadi. U **Mos kelgan (Matched) ni** bildiradi, **O'zgarmagan (Unchanged) ni** emas. Ushbu nomzodlar xabar identifikatori yoki barcha metama'lumotlarning tengligini aniqlamaydi. Tahlil qilinmagan yozuvlar mos kelmagan holda qoladi. Juft yozuvlardagi farqlar kontent rejimida ham `changed` ro'yxatida qoladi; bu farqlar bir xil xabarga tahrirlar kiritilganini isbotlamaydi. `--json` bilan `matched` juftliklarni hisoblaydi va `unchanged` to'liq saqlangan yozuvlari teng bo'lgan juftliklarni hisoblaydi. Ikkalasi ham kontent rejimida xabar identikligini isbotlamaydi. Mavjud `changed_fields` va butun sonli `unchanged` chiqishlari oldingi taqqoslash natijalari bilan mos keladi. Arxiv formati va imzo tekshiruvi o'zgarmagan. ## Tergovni topshirish 1. Holat yozuvlaringizga ish bo'yicha ma'lumotnoma, operator, Telegram hisobidagi raqamli ID, tanlangan manbalar, yig'ish siyosati va yig'ish davrini qayd eting. TgWitness kuzatuvlarni saqlaydi va [Case Board](https://phishdestroy.github.io/TgWitness/uz/docs/reference/case-board/)'da manbaga bog'langan eslatmalar hamda yig'indilarni qo'llab-quvvatlaydi. Ko'chirish va saqlash yozuvlarini ish materiallaringiz bilan birga saqlang. Mo'ljallangan yig'ish sozlamalarini [jonli qabul qilish tartibi](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md) bilan tekshiring. 2. Ishlash maydonining jamoat kaliti barmoq izini uning eksportlariga tayanishdan oldin mustaqil ravishda saqlang. Yig'ish jarayonida imzolangan tekshiruv nuqtalarini yig'uvchidan tashqarida saqlang. To'xtashlar va hisobning ko'rinish chegaralarini qayd eting. 3. **Imzolangan ZIP**-faylni eksport qiling va imzolangan ish jarayoni kvitansiyasini saqlang. Eksport qilingan jurnal chegarasida yoki undan oldin nazorat nuqtasidan foydalaning. Keyingi nazorat nuqtasi avvalgi eksportni juda qisqa deb to'g'ri rad etishi mumkin. Eksportlar panel filtrlaridan qat'i nazar to'liq ish maydoni jurnalini o'z ichiga oladi; materialni ulashishdan oldin ko'rib chiqing. 4. Qabul qiluvchidan ZIP-ni ishonchli nusxa ko'chirish vositasi va mustaqil taqdim etilgan barmoq izi/nazorat nuqtasi yordamida tasdiqlashini so'rang. Ishonchli checkout-dan, Python muhiti yoqilgan holda: ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json ``` Muvaffaqiyatli chiqish hisobotlari `key_pinned: true` va `checkpoint_checked: true` bo'ladi, agar ikkala kirish ham taqdim etilgan va qabul qilingan bo'lsa. Verifikatsiya natijasini saqlang. ``` For a handover requiring the final exported record to be witnessed, use `--witness witness.zip --witness-fingerprint TRUSTED_WITNESS_SHA256 --require-witness`. This refuses an export with an unwitnessed tail. See the [witness handover procedure](WITNESS.md#require-a-witnessed-export-boundary). ``` 1. Record the archive's SHA-256, export boundary, transfer date, sender, and recipient in your custody record. Keep the original package intact and work from copies. Share evidence files rather than the application's private data directory, which also contains account sessions and signing secrets. For transfer, choose a password-protected AES-256 ZIP or the stronger `.tgwpw` container. ZIP uses WinZip's low-cost password derivation; use a long random passphrase. `.tgwpw` uses scrypt and AES-256-GCM and opens with the standalone verifier's `unseal-password` command. The password is not stored and only protects confidentiality; the recipient decrypts the archive and verifies the signed export inside, which is unchanged. 2. Agar mustaqil vaqtga bog'lash zarur bo'lsa, [RFC 3161 protseduras](https://phishdestroy.github.io/TgWitness/uz/docs/reference/timestamp/)iga rioya qiling va so'rov, tekshiruv nuqtasi, ishonchli CA ma'lumotlari hamda tasdiqlangan vakolatli javobni saqlang. Faqatgina so'rov tayyorlash vaqt tamg'asini olishga yetarli emas. For `.tgwpw`, use an independently obtained verifier and choose a new output file with the original extension: `python verify.py unseal-password export.tgwpw --out evidence.zip`. The command prompts for the password; `--password-stdin` reads one line for automation. It never overwrites an existing file and publishes plaintext only after all records authenticate. Run normal signature verification on the decrypted file afterwards. The container uses scrypt (`N=131072`, `r=8`, `p=1`, 16-byte salt; about 128 MiB RAM) and AES-256-GCM with 1 MiB records and an authenticated final record. An encrypted metadata record stores the inner filename, so downloaded containers can be renamed. Muvaffaqiyatli tekshiruv ishonchli yig'uvchi kaliti va saqlangan chegaraga nisbatan yaxlitlikni ta'minlaydi. [Tekshiruv doirasiga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) qarang – ishonch taxminlari va bajarilgan tekshiruvlar bo'yicha [tasdiqlash natijalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) uchun. ## Topshirish qismi Imzolangan ZIP butun ish maydoni jurnalini o'z ichiga oladi. Sud, advokat yoki suiiste'mol bo'limi faqat ba'zi suhbatlar, ma'lum bir davr yoki ayrim shaxslarga oid ma'lumotlarga muhtoj bo'lganda, **Eksportlar → Handover extract** tanlangan oshkor qilish qoidalariga muvofiq minimallashtirilgan nusxa (`tgwitness-handover-v1`) tayyorlaydi. Operator maqsadni bildiradi va suhbatlarni, ixtiyoriy davrni (UTC), ekstrakt qaysi odamlar haqida ekanligini, qolganlarga nima bo'lishini (ko'rsatiladi, P01 psevdonimlari bilan almashtiriladi, P02… yoki chiqarib tashlanadi), qaysi xabar matnlari qoladi, qaysi ilovalar va profil rasmlari kiritiladi, hamda matnlardagi telefon raqamlari va elektron pochta manzillari niqoblanadimi. Maqsad va ushbu qoidalar imzolangan manifestda va hisobotda ko'rsatiladi; jurnal faylni tayyorlagan foydalanuvchining kirish huquqi bilan`handover.exported` yozuvini qayd etadi, mazmuni emas, balki faylning SHA-256 qiymatini. `verify.py` ekstraktni ikki usulda tekshiradi. O'zgarmagan holda ko'rsatilgan yozuv to'liq tasdiqlanadi: uning mazmuni hash bilan, Ed25519 imzosi va kiritilgan avvalgi yozuvga havolasi orqali tekshiriladi. Minimalizatsiya qilingan yozuv asl xesh va imzoni saqlab qoladi, shuning uchun imzo hanuzgacha tekshiriladi, lekin yashirilgan maydonlarni undan qayta hisoblash mumkin emas; yozuvda nima yashirilgani ko'rsatiladi va hisobot buni belgilaydi. Manifest jurnal uzunligi va sarlavhani, sarlavha ustida esa yig'uvchining imzosini ko'rsatadi, shuningdek chiqarib tashlangan yozuvlar sonini hisoblaydi; `coverage.json` tanlangan suhbatlarni tasvirlaydi. Fayl nomlaridagi ismlar aniqlanmaydi. Ulashishdan oldin yakuniy fayllarni ko'rib chiqing: erkin matn, fayl nomlari va tanlangan ilovalar hanuzgacha odamlarni aniqlashi mumkin. To'liq imzolangan ZIP-ni saqlang: undan olingan nusxa ma'lumotni oshkor qiladi, almashtirish emas. ## Oson o'qiladigan hisobotlar Imzolangan dalillar, topshirish va chat ZIP-fayllari tanlangan hisobot tilida o'qiladigan HTML va JSON hisobotlarini, shuningdek zarur shriftlar mavjud bo'lganda PDF-ni o'z ichiga oladi. Har bir hisobot ish maydonining Ed25519 kaliti bilan muhrlanadi va alohida tekshirilishi mumkin: `python -m tgwitness.verify FILE --fingerprint KEY [--evidence ZIP]`. - `report.html` / `chat.html`: muhr bayonoti (`tgwitness-report-seal-v1`) faylni yopadi va undan oldingi har bir baytning SHA-256ini imzolaydi. Uzoq jurnallar va suhbatlar sozlanadigan o'lchamdagi bo'laklarga bo'linadi (Hisobot sozlamalari, 500 dan 100 000 gacha yozuv; standart bo'yicha 5 000): `records/records-0001.html` yoki `messages/messages-0001.html`, har biri o'z raqami, diapazoni va jami bilan muhrlanadi va imzolangan manifestda SHA-256 bilan ro'yxatga olinadi. Kollektor yurak urishlari ketma-ketligi bitta satrda ko'rsatiladi, agar Hisobot sozlamalari ularni alohida-alohida ro'yxatga olishni belgilamagan bo'lsa. - `report.json` (`tgwitness-report-json-v1`, kalitlar `format`, `report`, `seal`): muhr SHA-256 ning kanonik JSON dagi `report` ni imzolaydi, shunda faktlar ish yuritish tizimlari va skriptlar tomonidan o'qilishi mumkin va imzolangan fayl butunligicha saqlanib qolgan holda ulardan ma'lumotlarni himoya qilish uchun tanlov amalga oshirilishi mumkin. - `report.pdf` / `chat.pdf`: chop etish va arxivlash uchun rasmiy hujjat, bir xil baytlar bo'yicha ikki marta imzolangan, imzo qiymatidan tashqari butun fayl (`/ByteRange`). Standart PDF imzosi (`adbe.pkcs7.detached`, SHA-256 va ECDSA P-256 bilan CMS) o'z-o'zini chiqargan hujjatni imzolash sertifikatidan foydalanadi, u ish maydoni xazinachisida saqlanadi; uning sub'ekt seriyali raqami Ed25519 kalit barmoq izidir. Ed25519 muhri CMS ichida imzolanmagan atribut sifatida harakatlanadi `2.25.240684792623320047764573196045913242332` va sertifikatning SHA-256 hashini bilan nomlaydi.Standart PDF imzosi (, SHA-256 va ECDSA P-256 bilan CMS) ish maydoni seyfida saqlanadigan o'z-o'zini chiqargan hujjatni imzolash sertifikatidan foydalanadi; uning sub'ekt seriyali raqami Ed2 `"content": "pdf-byte-range"`, shuning uchun Ed25519 kaliti sertifikatni tasdiqlaydi. PDF o'quvchisi fayl imzolangandan keyin o'zgarganini ko'rsatadi va sertifikat ishonchli bo'lmaguncha imzolovchini noma'lum deb ataydi; buning o'rniga Ed25519 barmoq izini solishtiring. Xitoycha, yaponcha va koreyscha PDF fayllariga serverda (yoki `TGWITNESS_FONT_DIR`); font bo'lmasa ZIP faqat HTML va JSON hisobotlarini o'z ichiga oladi. Telegram kanalida yoki superguruhda xabarlarni 1, 2, 3… tartib bilan raqamlaydi. Chat eksporti birinchi va oxirgi raqamni, nechta xabar mavjudligini va `message-ids.json` dagi har bir ketma-ket kelmagan raqamni manifest va `chat.json` sarlavhasida ro'yxatlaydi hamda har bir bo'shliqni transkriptda qayerda joylashganini belgilaydi. `verify.py` ularni `chat.json` dan qayta sanaydi. Yo'qolgan raqam – bu Telegram qaytarmagan xabar (eksportdan oldin o'chirib tashlangan yoki hisobga ko'rinmaydigan); shaxsiy suhbatlarda va oddiy guruhlarda raqamlar hisobning barcha suhbatlari bo'ylab ulashiladi va bo'shliqlar hisobga olinmaydi. Tarixni o'qigandan so'ng, eksport Telegramdan har bir yo'qolgan raqamni yana, raqam bo'yicha so'raydi (`channels.getMessages`, 10,000 tagacha). Natija `message-ids.json` va hisobotda bo'ladi. Bo'sh javob raqamning qayta tekshirish vaqtida ushbu hisobga mavjud emasligini qayd etadi; u sababini ko'rsatmaydi. Qayta tekshirishda qaytarilgan xabar eksportga qo'shiladi va `found_on_recheck` bilan belgilangan. Har bir hisobot**bilan boshlanadi. Qisqacha**: bir paragraf, keyin material nimani ko'rsatishini va nimani ko'rsatmasligini (hisob ortida kim turgani, yetkazib berish to'liqligi, kuzatuvdan oldin o'chirishlar, vaqt belgilovchi bo'lmasdan soat vaqti). Sahifaning o'z muhr tamg'asi sahifani emas, muhr imzosini tekshirganda ambra rangiga aylanadi: brauzer sahifaga o'z baytlarini bermaydi. U faqat o'quvchi faylni sahifaning oxiridagi tekshiruvga tashlaganda va har bir bayt mos kelganda yashil rangga aylanadi, shuningdek, ko'rsatilgan sahifa aynan shu fayl bo'lsa; aks holda u qizilga aylanadi. Har bir hisobot dastur nomini aniq ko'rsatadi: git commit, agar yig'uvchi checkoutdan ishga tushsa yoki o'rnatuvchi `TGWITNESS_COMMIT` ni belgilasa, va manba fayllarining SHA-256 (`source_tree_sha256`, yo'lning kanonik JSON → har bir `.py` ning SHA-256, `.js`, `.css`, `.html` va `.svg` fayli paketda), bu commitni checkout qilish fayllar o'zgartirilmagan bo'lsa, qayta yaratadi. Telegram klienti o'z kutubxonasi, API qatlami va ma'lumotlar markazi nomi bilan ataladi. Kuzatuv boshlanganda va suhbat eksporti boshlanib tugagach, yig'uvchi Telegram'dan vaqtini (`updates.getState`, butun soniyalarda) so'raydi va yig'uvchining soatidan Telegram vaqtini ayirib, qaytish vaqti noaniqligini hisobga olgan holda qayd etadi; hisobotlarda bu o'lchovlar "Zanjir nazorati" bo'limida ko'rsatiladi. Suhbat eksporti shuningdek xabarlar sanalaridan tashqari, tarixni qachon o'qigani sanasini ham qayd etadi. ### Oflayn hisobot ko'ruvchi va arxiv bo'yicha qo'llanma `chat.html` yoki `report.html` ni ochishdan oldin to'liq ZIP arxivini chiqarib oling. Ko'ruvchi qidiruv, filtrlar, ishtirokchilar, ko'rsatkichlar, yozuv tafsilotlari va serversiz JSON/CSV tanlovlarini taqdim etadi. `viewer/` va `media/` ni hisobot yonida saqlang. Tanlovlar hosilalar: ularni imzolangan arxiv bilan solishtirish uchun `verify.py SELECTION.json --evidence ARCHIVE.zip` dan foydalaning. Verifikator hisobot IDsi, imzolash kaliti, arxiv chegarasi va har bir tanlangan elementni tekshiradi; tahrirlangan, yo'qolgan va takroriy elementlar rad etiladi. Tanlov izohlar va yaratilish vaqti imzolanmagan metadata bo'lib qoladi. Xabar-raqam bo'shliqlari faqat to'liq, filtrlanmagan osib boruvchi chat oqimida ko'rsatiladi. Kategoriyani yashirish yoki ma'lumot bo'lagini yuklamaslik o'chirib tashlangan qatorni yo'qolgan xabar dalili deb hisoblashga olib kelmasligi kerak. Qidiruv ta'kidlashlari oddiy matnda ishlaydi, HTML qochirilishidan oldin va so'zma-so'z belgilashni saqlaydi. Brauzer imzo manifestlari, hisobot ID va kaliti hamda ro'yxatda keltirilgan barcha fayl hashlarini tekshiradi. U noaniq yoki noto'g'ri tuzilgan ZIP tuzilmalarini, takroriy nomlarni va xavfsiz bo'lmagan yo'llarni rad etadi hamda fayllarni 256 MiB, e'lon qilingan jami hajmni esa 4 GiB bilan cheklaydi. Katta arxivlar uchun mustaqil verifikatorni ishlating. Ushbu brauzer tekshiruvi verifikatorning jurnal zanjirlari va ma'lumotlar semantikasini tekshirishini to'ldiradi. `README.txt` boshlang'ich qo'llanma, moslashtirilgan fayllar ro'yxati, tasdiqlash bo'yicha ko'rsatmalar va hisobot tilidagi ma'lumot formatiga oid eslatmalarni o'z ichiga oladi, undan keyin to'liq inglizcha qo'llanma keltiriladi. `SHA256SUMS` o'zini, `manifest.json` va `manifest.sig` fayllarini istisno qilgan holda ichida ro'yxatga olingan fayllarni qamrab oladi; imzolangan manifestga `SHA256SUMS` ham kiritilgan. Asl ZIP-ni o'zgarmas holda saqlang va ishlayotgan fayllarni chiqarilgan papkadan tashqarida saqlang. PDF hisobotlariga bo'lim belgilari va keyingi sahifalarda ish/hisobot identifikatsiyasi kiritilgan. ### Eksport vaqtidagi suhbat Chat eksporti eksport boshlanganida chat haqidagi Telegram ma'lumotlarini qayd etadi: Telegramning o'z yorliqlari (`scam`, `fake`, `restricted` sabablari bilan, `verified`), foydalanuvchi nomlari, tavsif, a'zo va admin soni, bog'langan muhokama, kontentni himoya qilish, yangi a'zolarning oldingi xabarlarni ko'rishi va ushbu hisobdagi tarixni qaysi xabardan boshlab ko'rishi (`available_min_id`), chat yaratilgan paytdagi 1-xabar sanasi va chat fotosuratining SHA-256i (`media/`da saqlangan). Bu eksport qilinayotgan hisobning chatdagi o'rnini qayd etadi: roli, qo'shilgan sanasi, kim taklif qilgani va admin uchun uning huquqlari. Telegram rad etgan so'rov esa uning o'rniga nomlanadi. Eksport qilayotgan hisob ma'mur bo'lsa, eksport suhbatning ma'mur logini (Telegram taxminan 48 soat saqlaydi) `admin-log.json` ga o'qiydi: mazmun va harakat qilgan hisob bo'yicha o'chirishlar va tahrirlar. Bu o'chirishni kim amalga oshirganini ko'rsatadigan yagona yozuvdir. ### Ko'rsatkichlar Hisobotlar ro'yxati va arxiv `indicators.csv` , `indicators.stix.json` (STIX 2.1 ) va `indicators.misp.json` (MISP hodisasi) orqali qayd etilgan xabarlarda suiiste'mol bo'yicha bo'lim qaysi harakatlarni amalga oshirishi mumkinligini ko'rsatadi: havolalar va domenlar (shuningdek matn ortida, tugmalarda va havola ko'rinishlarida yashirilgan), kriptovalyuta manzillari, Telegram foydalanuvchi nomlari va taklif havolalari, telefon raqamlari, elektron pochta manzillari va saqlangan rasmlar. Bitcoin, Litecoin, Dogecoin va TRON manzillari faqat ularning base58 tekshiruv yig'indisi to'g'ri bo'lganda, segwit manzillari ularning bech32 yoki bech32m tekshiruv yig'indisi to'g'ri bo'lganda va TON manzillari ularning CRC to'g'ri bo'lganda ro'yxatga olinadi; EVM va Solana manzillari tekshirilmagan deb belgilangan. Rasmlar SHA-256 va perceptual hash (dHash, 64 bit) bilan belgilangan bo'lib, qayta siqilgan yoki o'lchami o'zgartirilgan nusxalarda deyarli o'zgarmas qoladi. Hisobotlar ko'rsatkichlarni tasodifan ochilmasligi uchun yozadi (`hxxps[://]example[.]com` ); fayllar esa qiymatlarni o'z holicha saqlaydi. Har bir indikator noma'lum va avtomatik aniqlash uchun mo'ljallanmagan deb belgilangan (STIX `indicator_types: unknown` , MISP `to_ids: false` , o'z tashkilotiga tarqatish): ro'yxatda bo'lish xabar unda mavjudligini anglatadi, zararli ekanligini emas. Hisobotda matni ochiladigan manzildan farq qiladigan havola belgilangan. PDF hisobotlari qo'l bilan imzolanadigan tekshiruvchi bayonoti, notarius yoki sud eksperti uchun tekshiruv ro'yxati va hisobot IDsi, kalit barmoq izi hamda vakolatli ma'lumotlarning SHA-256 bilan QR-kod (birinchi sahifada ham) bilan yakunlanadi, shunda chop etilgan nusxa uning arxiviga qaytadi. ## Voqealarni kanoniklashtirish Hash kirish aynan quyidagi maydonlardan iborat: ``` seq, observed_at, source_at, kind, chat_id, message_id, actor_id, payload, previous_hash ``` Python bilan mos keladigan JSON yordamida serializatsiya qiling: UTF-8, tartiblangan ob'ekt kalitlari, ASCII kodlashsiz, ahamiyatsiz bo'shliqlarsiz va NaN/cheksizliksiz: ``` json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(",", ":"), allow_nan=False).encode("utf-8") ``` Ushbu baytlarning SHA-256 hash qiymati voqea hashiga aylanadi. Imzo 32 xom hash baytiga Ed25519 algoritmi bo'yicha qo'llanib, keyin base64 kodlanadi. Birinchi previous_hash 64 ta noladan iborat. Ketma-ketlik raqamlari 1 dan boshlanadi va 1 taga oshadi. Barcha voqealar, jumladan operativ voqealar ham, bitta zanjirni baham ko'radi. Takroriy yetkazib berishni bostirish yo'q: takroriy kuzatuvlar alohida kvitansiyalar bo'lib, ular alohida Telegram harakatlari da'vosini anglatmaydi. Xom Telegram sanalari ISO satrlaridir; binar maydonlar bytes_base64 ob'ektlarini o'z ichiga olgan ob'ektlarga aylanadi. Xabar matni, birliklar, media tavsiflovchilari, javob metadata, reaksiyalar va xizmat harakatlari taqdim etilganda xom xabar metadata'ida saqlanadi. observed_at — ma'lumot to'plovchining UTC devar soatidir. source_at esa mavjud bo'lganda Telegram taqdim etgan sana hisoblanadi. O'chirish bildirishnomalari aniq o'chirish vaqtini bermaydi, shuning uchun source_at nol bo'lib qoladi. Transport qabul qilish tartibi manba-voqea tartibiga to'g'ri kelmasligi mumkin. Tarix snopshotlari eski manba sanalarini, lekin joriy kuzatuv vaqtlarini ishlatadi. ## Aktyor semantikalari message.new actor_id xabar jo'natuvchisidir. message.edited bo'yicha tahrir qiluvchi aniqlanmaydi; payload.sender_id kuzatilgan xabar jo'natuvchisini qayd etadi. O'chirish actor_id nol bo'lib qoladi. A'zolik xizmati xabarlari jo'natuvchi va harakat turini saqlab qoladi, har bir olib tashlashni ixtiyoriy tark etishga aylantirmaydi. Xom ishtirokchi yangilanishlari actor_id ni taqdim etilganidek saqlab qoladi. Reaksiya snapshotlari o'zgarish aktyorini ixtiro qilmaydi. Shaxsiy suhbatlar va oddiy guruhlar uchun o'chirish bildirishnomalari faqat xabar IDlarini o'z ichiga oladi. Ushbu suhbatlar bir hisob bo'ylab yagona ID ketma-ketligini baham ko'radi, shuning uchun ID ushbu hisobdagi bitta xabarni aniqlaydi. Agar shu IDga ega xabar ilgari ushbu jurnalda saqlangan bo'lsa, o'chirish ushbu suhbatda message.deleted sifatida qayd etiladi va payload.chat_resolution nomli metod chaqiriladi. Hech qachon saqlanmagan IDlar esa chat_id bo'lmasdan deletion.unscoped sifatida saqlanadi; hech narsa taxmin qilinmaydi. Kanal va superguruhlar har bir suhbat bo'yicha xabarlarni sanab boradi va shu tarzda hech qachon mos kelmaydi. Agar o'chirilgan xabar kuzatilayotgan akkaunt tomonidan yuborilgan bo'lsa, payload.deleted_message_was_outgoing qiymati true bo'ladi; o'chiruvchi hanuzgacha taqdim etilmaydi. Doiraga kiritilmagan bildirish xabarning hech qachon saqlanmaganligini tasdiqlamaydi: mos keluvchi suhbat joriy kuzatuv doirasidan tashqarida bo'lishi yoki noyob moslik mavjud bo'lmasligi mumkin. Qayta tekshirish natijasida topilmaslik hisobot sonlari, filtrlar va yorliqlarda o'chirish bildirishidan alohida kuzatuv bo'lib qoladi. Keyingi tiklash joriy yo'qlik holatini bartaraf etadi, lekin imzolangan tarixda avvalgi muvaffaqiyatsiz tekshiruvni saqlab qoladi; hech biri o'chirish bildirishini aniqlamaydi. Bir bildirishnomadan bir xil suhbatga mos keladigan bir nechta IDlar, sonidan qat'i nazar, `deletion.batch` (o'chirish to'plami) ga guruhlanadi. Bildirishnoma butun tarixning tozalangani, o'chirishni kim amalga oshirgani yoki bu barcha ishtirokchilarga tegishli bo'lganini aniqlamaydi. Saqlangan chiqish xabarlari bu chegaralarni o'zgartirmaydi. Eski jurnallarda o'n yoki undan ortiq ID to'plamlaridan xulosa qilingan `history.cleared` voqealari bo'lishi mumkin, unda o'chirish boshqa ishtirokchiga tegishli ekanligini ko'rsatuvchi izohli matn keltirilgan. Ushbu yangilanish bu xulosalarni qo'llab-quvvatlamaydi. Ushbu asl imzolangan yozuvlarni saqlang, lekin ularni guruhlangan o'chirish bildirishnomalari sifatida ko'ring; joriy interfeys ularni shunday belgilaydi. ## Qamrov: uzluksizlik, bo'shliqlar va sezilmagan identifikatorlar Har bir imzolangan ZIP `coverage.json` ni o'z ichiga oladi, HTML hisobot ham xuddi shu xulosadan boshlanadi va `verify.py` faylga ishonish o'rniga uni `events.jsonl` dan qayta hisoblaydi: - **X dan Y gacha uzluksiz kuzatiladi.** Davr `observation.started` bilan boshlanadi va pauza, to'xtash, Telegram ulanishining yo'qolishi, tizimdan chiqish, tartibli to'xtashsiz jarayon boshlanishi yoki kuzatuv paytida hech qanday yozuv bo'lmasdan uch daqiqadan ortiq vaqt o'tishi bilan yakunlanadi. (yurak urishlari har daqiqada yozib boriladi, shuning uchun sukut jarayon to'xtaganini, muzlaganini yoki kompyuter uxlab qolganini anglatadi). **Parametrlarda** yurak urishi oralig'i o'zgartirilganda, har bir yurak urishi buni qayd etadi va ruxsat etilgan sukut uch intervalga teng bo'ladi, hech qachon uch daqiqadan kam bo'lmaydi. - **Bo'shliqlar** davrlar orasidagi vaqtni va sababini ko'rsatadi. Oxirgi yozuvda hali ham ochiq bo'shliq `not_resumed_by_last_record` bilan belgilangan. - **Xabar IDlari kuzatilmagan.** Kanal va superguruhlarda, har bir suhbat bo'yicha xabarlar sonini hisoblab, kuzatilgan IDlar orasidagi yo'qolgan IDlar diapazonlar sifatida ro'yxatga olinadi. Ular *kuzatilmagan*deb qayd etiladi — o'chirilgan, hech qachon yetkazilmagan yoki saqlangan tarixdan tashqarida bo'lgan — lekin hech qachon o'chirilgan deb emas. Xususiy suhbatlar va oddiy guruhlar hisob bo'ylab yagona ketma-ketlikni baham ko'radi, shuning uchun bunday suhbat ichidagi bo'shliqlar hech narsani anglatmaydi va ro'yxatga kiritilmaydi. - Suhbat darajasidagi bo'shliq bildirishnomalari (masalan, Telegram bir kanalda farqni tiklashni so'rashi) eslatma sifatida hisoblanadi; ular global qamrovni to'xtatmaydi. ### Yo'qolgan xabar raqamlari (`gap_summary`) **Ko'rinish.** `coverage.json` → `gap_summary` Telegram tomonidan tayinlangan va ushbu to'plovchi hech qachon ko'rmagan raqamlarni o'lchaydi. Telegram xabarlarni har bir kanal yoki superguruh bo'yicha bir marta, shuningdek shaxsiy suhbatlar, botlar va oddiy guruhlardagi har bir akkaunt bo'yicha bir marta raqamlaydi. Ikki kuzatilgan xabar orasidagi raqam yoki kuzatilgan, yoki yo'qolgan hisoblanadi; uzluksiz diapazon esa undagi har bir raqamlangan xabar kuzatilganligini ijobiy tasdiqlaydi. Bo'shliq esa hech qanday ijrochi va sababni ko'rsatmaydi. | Maydon | Ma'no | | --- | --- | | `status` | `on`, yoki `off` **Parametrlar → Bo'shliq tahlili** bo'limida o'chirib qo'yilganda | | `parameters` | Natijani bergan parametrlar, shunda uni takrorlash mumkin | | `chats[]` | Har bir kanal yoki superguruh uchun alohida yozuv, har biri o'z raqami bilan | | `account` | Hisob bo'ylab maxfiy suhbatlar, botlar va oddiy guruhlarning ketma-ketligi | | `status` (har bir ketma-ketlik bo'yicha) | `applicable`, yoki `not_applicable` bilan `reason` | | `observed_from`, `observed_to`, `span` | Birinchi va oxirgi kuzatilgan raqam hamda diapazon hajmi | | `observed`, `observed_without_content` | Kuzatilgan raqamlar; faqat o'chirish yoki qayta tekshirish yozuvidan ma'lum bo'lganlar | | `missing`, `density`, `gap_ranges`, `largest_gap` | Hech qachon kuzatilmagan raqamlar, ularning diapazondagi ulushi, necha marta takrorlanganligi, eng uzun takrorlanish | | `clusters[]` | Ro'yxatga olingan bo'shliqlar: `low`, `high`, `missing`, va qo'shni kuzatilgan raqamlar `after` / `before` ularning kuzatuv vaqtlarini ko'rsatadi | | `service_estimate` | Faqat yoqilganda: qancha yetishmayotgan raqamlar kuzatilgan ulush bo'yicha xizmat xabarlari bo'lardi. Hech qachon undan chegirmaydi `missing` | Haqiqiylik jurnalga asoslanadi, hech qachon taxmin qilinmaydi: - **Kanal va superguruhlar** har bir suhbat bo'yicha o'lchanadi, shuningdek tanlangan suhbatlar eksportida ham. Jo'natuvchi tomonidan tanlangan yozuvlar o'lchovni aniqlaydi. `not_applicable`. - **Hisob bo'ylab ketma-ketlik** faqat butun hisob yig'ish yoqilgan paytda kelgan birinchi xabardan oxirgi xabargacha o'lchanadi va shaxsiy suhbatlar, botlar, oddiy guruhlar hamda hisobning o'z xabarlari hech qanday suhbat istisno qilinmagan holda saqlanadi (`scope.changed`). Nomlangan raqamlar `deletion.unscoped` mazmunisiz kuzatilgan deb hisoblanadi. Tanlangan suhbatlarni eksport qilish yoki topshirish buni o'lchay olmaydi. Agar butun hisob yig'ish o'chirilgan va yana yoqilgan bo'lsa, eslatmada aytilishicha, shu vaqt ichida ishlatilgan raqamlar bo'shliqlar sifatida paydo bo'ladi. - Xizmat xabarlari o'z raqamlariga ega jurnal yozuvlari bo'lib, ular bo'shliqlarni o'z-o'zidan yopadi; ixtiyoriy baho esa faqat kontekst hisoblanadi. `verify.py` qayta hisoblaydi `gap_summary` dan `events.jsonl` imzolangan parametrlar bilan `coverage.json` member (eski arxivlar uchun standart) va hisob bo'ylab chiziqni uning qamrovi xulosasida chop etadi. Arxivning `get_capture_status`(MCP va buyruq qatori) kirish o'qishi mumkin bo'lgan suhbatlar uchun bir xil o'lchovni qaytaradi; butun ish maydonini qamrab oladigan kirish uchun esa faqat hisob bo'ylab ketma-ketlikni chop etadi. Bir xizmat xabarining takroriy kuzatuvlari faqat bir marta hisoblanadi va hisob xizmati baholashi faqat o'lchangan diapazon ichidagi raqamlardan foydalanadi. Qo'llanilayotgan doira hisob bo'yicha o'lchov yoqilishidan oldin hisobning o'z xabarlarini aniq saqlashi kerak; bu ma'lumotga ega bo'lmagan eski yozuvlar ushbu shartni aniqlay olmaydi. To'xtatilgan kuzatuv o'lchangan diapazonni kengaytirmaydi va uni qayta boshlash qayd etiladi. Jonli arxiv so'rovi vaqt byudjetiga ega bo'lib, unga ma'lumotlar bazasini skanerlash ham kiradi va tugallanmagan o'lchovni qisman deb belgilaydi. Telegram [alohida xabar ID ketma-ketlik](https://core.telegram.org/api/updates#message-id-sequences)larini hujjatlashtiradi. Ushbu raqamlar kuzatuvlarni tasvirlaydi; ular o'chirishni amalga oshirgan tomonni aniqlamaydi yoki nega biror raqam yo'qligini aniqlamaydi. Telegram hisobni qabul qilishni to'xtatganda, kuzatuvni yakunlovchi `coverage.gap` yozuvi `cause` (`account_banned`, `account_frozen`, `account_deleted`, `session_duplicated`, `session_revoked`, `session_expired`, `session_ended` yoki `not_authorized`) va Telegram xatosini o'z ichiga oladi; `verify.py` davr yakunida sababni belgilaydi. Qamrov yozib olingan kuzatuv davrlarini, uzilishlarni va xabar natijalarini birlashtiradi. Uni tanlangan suhbatlar, davr va ilova siyosati bilan birga baholang; faqat uzluksiz ishlash Telegram yangilanishlarining to'liq yetkazilishini ta'minlamaydi. ## Ishlab chiquvchi Dalillar ZIP-arxivlari, suhbat eksportlari, guvoh jurnallari va shaxsiy profil fayllari bayonotining imzolangan manifesti `producer` ni o'z ichiga oladi: dasturiy ta'minot, versiya, loyiha (PhishDestroy), bosh sahifa va manba ombori. HTML hisobotida ham xuddi shu satr ko'rsatiladi, va `verify.py` uni tekshirgan narsalarning bir qismi sifatida chop etadi. Ushbu maydon mavjud bo'lmasdan oldin yaratilgan arxivlar oldingi holatni tasdiqlaydi va ularning yaratilganligi to'g'risida ma'lumot beruvchi ko'rsatilmaganligi qayd etiladi. Har bir `observation.started` yozuvi shuningdek kuzatgan Telegram mijozining nomini ham ko'rsatadi: uning `api_id` (hech qachon hash emas), bu ichki ommaviy juftlikmi yoki operatorning o'z ilovasi ekanligini, Telegram ulanish so'rovida yuborilgan mijoz tavsifini va IP rejimidagi ulanish yo'nalishi turini (proxy manzili yoki sir yo'q). Hisobot va `custody.json` har bir alohida mijoz va yo'nalishni ular qachon qayd etilgani bilan, shuningdek ro'yxatda keltirilmagan proxy javob bermagan va Telegram server manzilini ko'rgan vaqtlarni ko'rsatadi. Buni shu vaqtdan oldin yozilgan jurnallar ham tasdiqlaydi. ## Foydalanuvchi profillari Profil fayli (`tgwitness-dossier-v1`, JSON) jurnalga allaqachon kiritilgan yozuvlardan so'rov asosida bitta suhbat uchun tuziladi; Telegramdan hech narsa olinmaydi va profil mazmuni hech qachon jurnalga yozilmaydi (profilni yoqish va o'chirish `dossier.changed` sifatida qayd etiladi). Saqlangan xabarga ega har bir kishi uchun ism va foydalanuvchi nomi tarixi, Telegram belgilari (bot, firibgarlik, soxta, premium, tasdiqlangan, cheklangan, o'chirilgan) xabar saqlangan paytdagi holatga ko'ra, profil mahalliy avatar keshidagi avatarlarning foto IDlari, SHA-256 va sezgir xesh (pHash, `imagehash.phash` bilan mos keladi), shunga o'xshash avatarlar, faoliyat (birinchi va oxirgi xabar, hisoblar, tahrirlangan va o'chirilgan ulashuvlar, UTC soatiga ko'ra xabarlar), kim kimga javob berayotgani, boshqa suhbatlar bu jurnalda shaxs nimalarni yozgani, hamyonlarni (BTC, EVM, TRON, TON, LTC, DOGE, XMR, SOL; Base58Check manzillari checksum-validatsiya qilingan) tilga olgani, telefon raqamlari, foydalanuvchi nomlari va havolalar, jumladan matn ortida yashirilgan havolalar. Har bir fakt o'z kelib chiqqan jurnal yozuvlarini (`seq`) ro'yxatlaydi va `record_hashes` har bir ko'rsatilgan yozuvning xeshini o'z ichiga oladi. Bayonot ish maydoni kaliti bilan imzolangan: ``` python verify.py tgwitness-dossier-CHAT.json --fingerprint TRUSTED_SHA256 --evidence tgwitness-evidence.zip ``` imzoni tekshiradi, dalillar eksportini o'zi (imzo, xesh zanjiri va fayllar) tasdiqlaydi va har bir havola qilingan yozuv o'sha ish maydonining shu eksportida o'zgarmas holda mavjudligini aniqlaydi. Avatar xeshlari mahalliy keshdan olinganligi bilan belgilangan (jurnal yozuvlari emas). Tilga olishlar naqsh mosligi asosida aniqlanadi — tekshirish uchun yo'l-yo'riq, tasdiqlangan fakt emas. Profil(lar) har bir suhbat bo'yicha yoqiladi, parol bilan himoyalangan AES-256 ZIP fayli sifatida eksport qilinishi mumkin va manbalardan suhbat olib tashlanganda yoki profil o'chirilganda o'chiriladi. ## Mustaqil guvoh Guvoҳ jurnali (`tgwitness-witness-v1`) va uning kanal postlari `verify.py --witness … --channel …` yordamida eksport qilingan dalillar bilan solishtiriladi; [mustaqil guvoҳga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/) qarang. ## Manifest va tekshiruv nuqtalari manifest.json format, eksport vaqtini, jamoat kalitini, barmoq izini, jurnal uzunligini, bosh xeshini, doirasini, ishlab chiqaruvchini, cheklovlarni va `manifest.json` hamda `manifest.sig` o'zlari bundan mustasno, har bir kontent a'zosining SHA-256 ko'rsatkichini o'z ichiga oladi. manifest.sig esa kanonik manifest JSON ustidagi base64 Ed25519 imzodir. Verifikator kutilmagan/yetishmayotgan a'zolarni, takroriy nomlarni, shikastlangan fayllarni, uzilgan ketma-ketlik/zanjirni, noqonuniy imzo(lar)ni va taqdim etilgan tekshiruv nuqtasiga nomuvofiqlikni rad etadi. U hech qachon arxiv yo'llarini chiqarib olmaydi. U umumiy e'lon qilingan siqilmagan hajmni 4 GiB gacha cheklaydi;`--max-gib N` esa oshirilgan **Parameters** limiti bilan yaratilgan kattaroq arxivlarni yo'l qo'yadi. TgWitnessning o'rnatilgan versiyasidan yoki ko'rib chiqilgan checkout-dan tekshiruvni ishga tushiring. Arxivga kiritilgan nusxa portativ foydalanishni qo'llab-quvvatlaydi; uni ijro etishdan oldin ishonchli o'rnatishingiz bilan solishtiring. Checkpoint ommaviy kalit, jurnal uzunligi, head-hash va yaratilish vaqtini o'z ichiga olgan bayonotni imzolaydi. Verifikator keyingi arxivda bir xil prefiks mavjudligini tekshirishi mumkin. Checkpointni kollektor tashqarisida saqlang, shunda keyingi verifikatsiya arxivni undan alohida saqlangan referensiya bilan solishtiradi. ## Verifikatsiya doirasi Verifikatsiya arxivni va uni yaratishda ishlatilgan yig'ish rejimini tekshiradi. Ishonch chegarasiga mos keladigan rejimni tanlang, so'ng uning verifikatsiya kirishlarini saqlang. | Yig'ish rejimi | Verifikator nima tekshiradi | Verifikatsiya kirishlari va ishonch chegarasi | | --- | --- | --- | | Mahalliy ish maydoni | Imzolar, xesh zanjiri, manifest va ilova baytlarini yozib oling | Mustaqil saqlangan to'plovchi barmoq izi; mezbon ma'muri mahalliy imzolash kalitini nazorat qiladi | | Mustaqil guvoh bilan mahalliy ish maydoni | Arxiv tekshiruvini amalga oshiradi va guvoh tomonidan saqlangan avvalgi jurnal prefiksi bilan kelishuvni ta'minlaydi | Ishonchli guvoh kalitini va yozuvlarni alohida saqlang; tekshiruv nuqtasi allaqachon kuzatilgan prefiksni bog'laydi | | [GitHub Actions yozib oladi](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md) | GitHub orqali arxiv xashining tasdiqlovi, ma'qullangan ish jarayoni va yig'uvchi commitlari, joylashtirilgan ijrochi, yangi sessiya/kalit kelib chiqishi hamda ichki arxiv yaxlitligi | Ishonchli tasdiqlovchi siyosati, chaqiruvchi ombori va GitHub tasdiqlash to'plami; to'plam belgilangan ish jarayoni ostida ishlaydi | | [Bulutli joylashtirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/) | Provayder hayotiy tsikli va kirish yozuvlari, firewall va Cloudflare holati, shuningdek to'plovchining imzolangan ish yozuvi | Provayder va Cloudflare'ga faqat o'qish uchun so'rovlar; individual tekshiruvlarning mavjudligi provayderga bog'liq | | [Intel TDX maxfiy VM](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#confidential-vm-on-phala-cloud-intel-tdx) | Imzo va platforma holatini keltiring, to'plovchi bayonotiga bog'laning, kompozitsiya va operatsion tizim o'lchovlarini tuzing | Intel ishonch zanjiri va kutilayotgan joylashtirish o'lchovlari; har bir zarur TDX tekshiruvining natijalarini saqlang | Muhrlangan yig'ishda, tasdiqlangan yig'uvchi ma'lumotlarni tasdiqlangan muhit ichida autentifikatsiyalangan Telegram ulanishi orqali oladi. Tasdiqlash arxivni shu ijroga bog'laydi, shuning uchun tekshirish yig'ishni hamda keyingi fayl yaxlitligini qamrab oladi. Bu yuqorida keltirilgan tasdiqlangan kod va platforma ishonch zanjiriga tayanadi. GitHub yozib olishni tekshirish ijro davomida yaratilgan sessiyani talab qiladi va import qilingan sessiya yozib olishlarini rad etadi. Ijro kvitasi yig'uvchi versiyasini, fayl hashlarini va ishga tushirish sozlamalarini qayd etadi. GitHub kelib chiqishi va TDX o'lchovlari muhit tekshiruvlarini ta'minlaydi; [tasdiqlash yozuvi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) sinovdan o'tkazilgan konfiguratsiyalarni aniqlaydi. TgWitness o'z yig'adigan kuzatuvlarni imzolaydi; Telegram va xabar mualliflari bu imzo bermaydi. Mahalliy ish maydonida, birinchi mustaqil tekshiruv nuqtasidan oldin yaratilgan material hanuzgacha yig'uvchi va uning kalit egasiga bog'liq bo'ladi. Qamrov yozuvlari tanlangan doira va yig'ish natijalarini tasvirlaydi, tasdiqlangan tashqi vaqt tamg'alari esa saqlangan arxiv yoki jurnal chegarasini vaqt bo'yicha mustahkamlaydi. ## Ilovalar Media/ katalogi ostida fayllar SHA-256 hashiga ko'ra manzillanadi. media.saved hodisasi haesh va bayt uzunligini ma'lum bir xabar hodisasi bilan bog'laydi. Xom fayl nomlari metama'lumot bo'lib, hech qachon mahalliy yo'l bo'lmaydi. Media baytlari asinxron tarzda yuklanadi, shuning uchun darhol o'chirish ularni qayd etilishini to'xtatishi mumkin. To'plamni o'chirib qo'yish, katta hajmli/noma'lum hajmli fayllar, yuklab olishdagi xatoliklar va uzilgan yuklab olishlar natijalar sifatida ko'rinadi. Jarayon qulashi bog'lanmagan qisman fayllarni qoldirishi mumkin; ular eksportga kiritilmaydi. ZIP eksporti saqlangan media fayllarini ularning nomlari bilan solishtiradi. JSONL, CSV va HTML eksportlari voqea imzolarini tekshiradi, lekin media baytlarini o'z ichiga olmaydi. Qo'shimcha hisobotlar qulaylik uchun mo'ljallangan; events.jsonl voqealarning haqiqiy vakilidir. To'liq chat eksporti ish maydonining ilovalar sozlamalaridagi ilovalarni media/ katalogiga SHA-256 nomi bilan saqlaydi. chat.jsondagi har bir xabar yozuvi o'z faylini (`file`, `file_sha256`) yoki uning yo'qligining sababini (`file_status`), shuningdek o'quvchiga matn atrofida ko'ringan narsalarni: matn ortidagi havolalar, yuboruvchi manbai, bot tugmalari, imzo, ko'rinishlar va avtomatik o'chirish taymerini qayd etadi. `verify.py` har bir nomlangan faylning shu xesh ostidagi imzolangan manifestda mavjudligini tekshiradi. ## Chidamli yig'ish va jarayon kvitansiyalari (0.2) Media ish va uning xabar voqeasi bitta tranzaktsiyada yozib qo'yiladi. Ish asl TL xabar tavsiflagichini saqlaydi; imzolangan kuzatuv uning SHA-256, hisob va hajm siyosatini bog'laydi. Tiklash yuklab olishdan oldin bu bog'lanishni tekshiradi. U hech qachon joriy xabarni olib kelmaydi va jimjit ravishda yangiroq ilovani almashtiradi. To'xtab qolgan ishlar qayta urinadi, lekin doimiy xato aniq natija bo'lib qoladi. Har bir ish maydonining o'z jurnali va imzolash identifikatori mavjud. process.started hodisasi run ID, mahalliy soatlar, bog'liqlik versiyalari, manba fayl hashlarini, dastlabki hisob/doirani va yozib olish sozlamalarini o'z ichiga oladi. Heartbeats (yurak urishlari) run ID, monotonik vaqt va navbat holatini o'z ichiga oladi. Ijro kvitansiyasi alohida imzolangan bayonot sifatida ham yuklab olinishi mumkin. Ijro muhitini tasdiqlash uchun uni [Verification scope](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) bo'limida ta'riflangan GitHub attestasiyasi yoki TDX tekshiruvlari bilan birlashtiring. Avtomatik tekshiruv nuqtalari dastur ishga tushirilganda, kuzatuv paytida har besh daqiqada (**Parametrlar → Imzolangan tekshiruv nuqtasi har**) va tartibli to'xtashda mahalliy ravishda saqlanadi. Ishga tushirish tekshiruvi va eksport jurnalni eng so'nggi saqlangan mahalliy tekshiruv nuqtasi bilan solishtiradi. Bu tekshiruv nuqtasi saqlanib qolganda ma'lumotlar bazasining orqaga qaytishini aniqlashi mumkin. Mustaqil saqlash ushbu havolani ish maydonidan tashqarida mavjud bo'lishini ta'minlaydi; tasdiqlangan tashqi vaqt belgisi esa uni qo'shimcha ravishda vaqt bo'yicha mahkamlaydi. Qayta ishga tushirilgandan so'ng saqlangan Telegram yangilanish pozitsiyasi (`catch_up_from`da `observation.started`) tiklanadi va o'tkazib yuborilgan yangilanishlar so'raladi. Davriy qayta tekshirish o'tkazib yuborilgan xabarlar uchun `message.recovered`ni va Telegram saqlangan xabarni qaytarmasa `message.missing_on_recheck`ni qayd etadi; ikkinchisi o'chirish bildirishnomasi emas va o'chiruvchini ham, vaqtni ham ko'rsatmaydi. ### S3da nusxa olish va tiklash Joydan tashqari nusxa (eksportlar, standart bo'yicha o'chirilgan) jurnal segmentlarini, saqlangan fayllarni, tekshiruv nuqtalarini ularning vaqt tamg'alari bilan va yakunlangan suhbat eksportlarini S3-ga mos omborga yuklaydi, AES-256-GCM bilan shifrlaydi AES-256-GCM bilan yuklashdan oldin ish maydoni seyfida saqlanadigan kalit ostida shifrlanadi; Object Lock saqlash qoidasi bucket uni qo'llab-quvvatlaganda amal qiladi. Yuklab olingan kalitsiz nusxa o'qilmaydi. Tiklash va tasdiqlash uchun `python -m tgwitness.replica restore --key-file KEY.json --out DIR`. Qayta tiklash bo'sh oddiy katalogni talab qiladi. Yuklab olingan va dekript qilingan obyektlar butun jurnal va har bir saqlangan tekshiruv nuqtasi tasdiqlanguncha shaxsiy vaqtinchalik saqlash joyida qoladi. Xavfsiz bo'lmagan obyekt yo'llari, nomuvofiq segment diapazonlari va tekshiruv nuqtasidan qisqaroq jurnallar rad etiladi; muvaffaqiyatsiz tasdiqlash hech qanday tiklangan fayllarni e'lon qilmaydi. Saqlash tekshiruvlari qaytarilgan Object Lock rejimi va sanani yuklash paytida yuborilgan muddat bilan solishtiradi (bir soniya atrofida xatolik chegarasi). Muddati o'tgan, noto'g'ri yoki qisqartirilgan muddat tasdiqlangan hisoblanmaydi. Statusi esa shu yuklash bosqichi uchun saqlash ma'lumotlari o'qilgan namunaviy obyektni ko'rsatadi. Yo'qolgan yoki shikastlangan mahalliy media fayl o'tkazish jarayonidagi xato sifatida qayd etiladi va media kursorini uning oldidagi pozitsiyada ushlab turadi, shuning uchun fayl keyingi o'tkazishda yana sinab ko'riladi; undan keyingi fayllar, tekshiruv nuqtalari va eksportlar esa baribir nusxalanadi. Tiklash tekshiruvlari saqlangan media havolalarini dekriptaj qilingan xeshlar va qayd etilgan o'lchamlarga muvofiq tekshiradi. Uzilgan yuklashlardan kelib chiqqan bir xil ustma-ust keluvchi jurnal segmentlari takrorlanishdan tozalang; ziddiyatli ustma-ust kelishlar rad etiladi. Yuklash jarayonida yaratilgan nazorat nuqtalari ularning qamrab olgan jurnal yozuvlari nusxalanganiga qadar kechiktiriladi, shuning uchun yakunlangan bosqich o'z jurnalidan oldinda nazorat nuqtasini e'lon qilmaydi. ### Streaming eksporti snapshotlari Streaming eksportlari barqaror SQLite o'qish snapshotidan foydalanadi. Yuklab olish tugagach, uning bosh qismi joriy jonli jurnaldan eski bo'lishi mumkin. Ushbu snapshotdan keyin yaratilgan tekshiruv nuqtasi arxivning qisqaroq ekanligini to'g'ri ko'rsatadi; eksport qilingan prefiksdagi yoki undan oldingi tekshiruv nuqtasi bilan solishtiring, tasodifiy keyingi tekshiruv nuqtasi bilan emas. ## RFC 3161 tayyorgarligi va javobni tasdiqlash (0.2) Dalil rejimi (defoltda o'chirilgan) har bir imzolangan tekshiruv nuqtasining faqat SHA-256 hashini ro'yxatga kiritilgan RFC 3161 vakolatli organlariga va OpenTimestamps taqvimlariga ish maydoni marshruti orqali yuboradi va hech qachon MTProxy orqali emas. Javoblar `checkpoints/anchors/`da saqlanadi, eksport qilinadi va `verify.py` tomonidan tekshiriladi (`--tsa-ca` TSA imzosini tekshiradi; OpenTimestamps isbotlarini `ots upgrade` va `ots verify` bilan tasdiqlaydi). Panel canonical checkpoint.json baytlarini, SHA-256 xabar izini va timestamp.tsq, checksums hamda ko'rsatmalardagi tasodifiy nonse-ni o'z ichiga olgan so'rov arxivini tayyorlaydi. Hech qanday tarmoq so'rovi amalga oshirilmaydi. Tayyorlash ishonchli vaqt shtampi hisoblanmaydi. `python -m tgwitness.anchor verify` ikki marta OpenSSL ts-ni chaqiradi: bir marta tekshiruv nuqtasi baytlari bo'yicha va bir marta asl so'rov bo'yicha. Ishonchli CA fayli aniq ko'rsatilishi kerak; Ilovaga kiritilgan sertifikatlar avtomatik ravishda ishonchli hisoblanmaydi. CLIda so'rovni tekshirish ixtiyoriy bo'lib, shuning uchun nonse tekshirish uchun --request parametrini saqlang va kiritgan holda ishlating. Natija tekshirilgan yoki tekshirilmaganligini ko'rsatadi. Yig'uvchining tekshiruv nuqtasi imzosi va jurnalini ishonchli yig'uvchi barmoq izi bilan alohida tasdiqlash kerak. Verifikatsiya javob imzosi, tekshiruv nuqtasi baytlarini va taqdim etilganda, belgilangan CA ishonchi ostida asl so'rovni tekshiradi. Revokatsiya tekshiruvlari va sertifikat muddati tugagach uzoq muddatli arxivlashni tasdiqlash joriy verifikator doirasidan tashqarida. [Protsedura](https://phishdestroy.github.io/TgWitness/uz/docs/reference/timestamp/) va [tasdiqlash natijalarini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/) ko'ring. ## Dalil rejimidagi ixtiyoriy yozuvlar: drand va Telegram qurilmalari Yana ikkita yozuv vaqt belgilari bo'yicha bir xil o'tishlarda ishlashi mumkin. Ikkalasi ham standart bo'yicha o'chirilgan va faqat dalillar rejimi yoqilganda amalga kiradi: Qo'shimchalar → Dalillar va zaxira nusxalar → **Qo'shimcha guvohlar · ixtiyoriy**, yoki `"drand": true` va `"devices": true` da `POST /api/evidence`. Birining ishlamay qolishi ikkinchisiga yoki vaqt tamg'alariga ta'sir qilmaydi; panel har birining eng so'nggi natijasini shakl ostida ko'rsatadi. **drand** (`beacon.drand` ). Har bir o'tish drand quicknet'ning eng yangi raundini, Entropiya Ligasi ommaviy tasodifiyligini (har 3 soniyada bir raund), jurnalga yozadi: `chain` , `round` , `randomness` , `signature` , `round_time` va javob bergan `relay` . Tasdiqlangan, oldindan aytib bo'lmaydigan raund keyingi hash-bog'langan material uchun pastki vaqt manbasini ta'minlaydi. Keyingi tekshiruv nuqtasidagi tasdiqlangan vaqt tamg'asi yuqori vaqt referensiyasini ta'minlaydi. Ushbu tekshiruvlar bog'langan materialni chegaralab qo'yadi; to'plam qamrovi alohida baholanadi. Yig'uvchi avvalo `drand.cloudflare.com` ga murojaat qiladi, so'ngra Protocol Labs relelari orqali ish maydoni yo'li bo'yicha har bir o'tishda bitta so'rov yuboradi. `verify.py` har bir tasodifiylik uning imzosi SHA-256 ekanligini va raund vaqti to'g'ri ekanligini tekshiradi, shuningdek raundlarni, raundsiz eng uzun davrni va drand yig'uvchining soati qanchalik orqada qolganini hisobot qiladi. U BLS imzosi tekshirilmaydi. `--check-drand` raundlarni Cloudflare va Protocol Labs releylari bilan solishtiradi, barchasini yoki uzun jurnalda 100 tadan tasodifiy namunani; farqli raund tasdiqlashni rad etadi. **Telegram qurilmalari** (`account.devices`). Har bir o'tish hisobning sessiyalarini o'qiydi `account.getAuthorizations`, Telegram Sozlamalar → Qurilmalar bo'limida ko'rsatiladigan ro'yxatni o'qiydi va uni qayd etadi: oldingi tekshiruvdan beri o'zgargan bo'lsa to'liq, bilan `added` va `removed` session hashlarini, aks holda faqat uning soni va SHA-256 ni yozib oladi. Qurilma modeli, platforma, ilova va versiyasi, yaratilgan va oxirgi faoliyat vaqti, mamlakat va mintaqa saqlanadi; IP-manzillar esa saqlanmaydi, chunki dalillar eksporti sizning nazoratingizdan chiqadi. Yig'uvchining o'z sessiyasi doim faol bo'ladi, shuning uchun faqat boshqa sessiyalarning faolligi o'zgarish sifatida hisoblanadi. `verify.py` Ro'yxat qancha tez-tez yozib olingani va har bir yangi hamda yakunlangan sessiyani hisobot beradi. U ro'yxatni faqat kuzatuv davom etayotgan paytda o'qiydi. Ular nimani ko'rsatmaydi: drand jamoat vaqti bo'yicha yozuvlar tartibidan boshqa hech narsani isbotlamaydi, va qurilmalar ro'yxati — bu yig'uvchi orqali berilgan, har bir boshqa yozuv kabi yig'uvchi tomonidan imzolanganTelegram bayonotidir. **Cloudflare Gateway logi** (`cloudflare.gateway_dns`). Cloudflare Gateway ([Gateway DNS](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#cloudflare-as-an-outside-witness)) orqali so'rovni hal qiladigan server uchun, har bir pass oldingi nusxa olinganidan beri Gateway tomonidan qayd etilgan ma'lumotlarni nusxalaydi: har bir uch soatgacha bo'lgan oynada bittadan yozuv, `from`, `until`, `location_id`, serverning `address` (agar sozlangan bo'lsa) va `queries` (`[at, name, type, rcode, decision, colo]`) bo'yicha, hatto hech qanday yozuv bo'lmagan paytda ham. **Cloudflare Gateway log**ostar ostida sozlang: hisob, joylashuv, ixtiyoriy manzil va faqat o'qish uchun token (Hisob Analytics Read; Zero Trust PII Read (ulashilgan joyning bitta manzilini saqlash uchun). Panel ularni saqlashdan oldin bitta so'rov bilan tekshiradi; token shifrlangan holda qoladi va hech qachon jurnalga kiritilmaydi. `verify.py` oynalarni, eng ko'p qidirilgan nomlarni va nusxa qamrab olmagan har qanday vaqtni ro'yxatlaydi; so'rovlari soni ularning so'rovlari soniga mos kelmaydigan yozuv muvaffaqiyatsiz bo'ladi. Bir soniyada bir nechta sahifani o'z ichiga olgan oynada o'sha sahifani saqlab, qolganlari yo'qligini bildiradi. Nusxa — kollektor orqali Cloudflare javobidir, kollektor tomonidan imzolangan; 24 soat ichida faqat o'qish huquqiga ega tokeni bo'lgan har kim uni Cloudflare bilan solishtirishi mumkin. --- # Telegram · Mustaqil guvoh Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/ O'z kaliti va botiga ega Witnessni ishga tushiring, imzolangan tekshiruv nuqtalarini kanalga joylashtiring va eksportlarni ularga solishtiring. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) O'z kaliti va botiga ega Witnessni ishga tushiring, imzolangan tekshiruv nuqtalarini kanalga joylashtiring va eksportlarni ularga solishtiring. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ![Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/assets/chapter-evidence.svg) [Eksport va tekshirish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) · [Yuqori ishonchlilik](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/) · [Panel bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/#extras) Guvox imzolangan tekshiruv nuqtalarini yig'uvchidan alohida saqlaydi. U yig'uvchining imzosi va jurnal uzluksizligini tekshiradi, natijani o'z kaliti bilan imzolaydi va Telegram kanalida e'lon qiladi. Uni yig'uvchining guvoxlik oxirgi nuqtasiga faqat o'qish huquqi bilan alohida serverda ishga tushiring. Oqim sxemasi · Yig'uvchi → Guvoh (imzolangan tekshiruv nuqtasi: yozuvlar soni + sarlavha xesh); Guvoh → Witness jurnali, o'z kalitingiz; Guvoh → Telegram kanali (o'z boti orqali imzolangan post); Dalil ZIP → verify.py; Witness jurnali, o'z kalitingiz → verify.py; Telegram kanali → verify.py (Telegram Desktop eksporti yoki t.me/s sahifasi) · Yig'uvchi · Guvoh · Witness jurnali, o'zkalitingiz · Telegram kanali · Dalil ZIP · verify.py · imzolangan tekshiruv · nuqtasi: yozuvlar soni + · sarlavha xesh · o'z boti orqali imzolangan · post · Telegram Desktop eksporti · yoki t.me/s sahifasi **Diagramma matn sifatida** 1. Yig'uvchi → Guvoh (imzolangan tekshiruv nuqtasi: yozuvlar soni + sarlavha xesh) 2. Guvoh → Witness jurnali, o'z kalitingiz 3. Guvoh → Telegram kanali (o'z boti orqali imzolangan post) 4. Dalil ZIP → verify.py 5. Witness jurnali, o'z kalitingiz → verify.py 6. Telegram kanali → verify.py (Telegram Desktop eksporti yoki t.me/s sahifasi) **Ushbu sahifada** - [Guvoh nimani oladi va nimani olmaydi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/#what-the-witness-gets-and-what-it-does-not) - [U nima tekshiradi va qayd etadi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/#what-it-checks-and-records) - [Witnessni ishga tushiring](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/#run-a-witness) - [Bir nechta ish maydonchalari uchun ommaviy isbot sahifasi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/#public-proof-page-for-several-workspaces) - [Tasdiqlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/#verify) ## Guvoh nimani oladi va nimani olmaydi | Guvohda | Guvoh hech qachon | | --- | --- | | Bir ish maydoni uchun faqat o'qish huquqiga ega **guvoh tokeni** | Yig'uvchining Telegram sessiyasi yoki API ma'lumotlari | | O'zining Ed25519 kaliti va jurnali | Yig'uvchining ombori, imzolash kaliti yoki panel tokeni | | O'z Telegram bot tokeni | Xabar mazmuni: sarlavha yozuvlar soni va xesh | Token **Extras → Mustaqil guvoh** bo'limida yaratiladi, bir marta ko'rsatiladi va faqat SHA-256 sifatida saqlanadi. U aniq bir endpointni ochadi, `GET /api/witness/head`, u yangi imzolangan tekshiruv nuqtasini, shuningdek imzolangan, kontentsiz to'plam hisoblagichlari va operatsion holatini qaytaradi. U panelni ocholmaydi, xabar kontentini o'qiy olmaydi yoki sozlamalarni o'zgartira olmaydi va panel tokeni u yerda qabul qilinmaydi. Tokenni shu sahifada bekor qiling. Yig'uvchi qayd etadi yangi guvoh kaliti tekshirishni qachon boshlaganini (`witness.seen`) va har bir token bo'yicha oxirgi tekshiruvni ko'rsatadi; 2,5 intervaldan ortiq tekshirilmagan guvoh kechikkan deb belgilangan. Yangi guvohlar har bir so'rov bo'yicha tasodifiy chaqiriq yuboradilar; capture bayonoti uni kollektor imzosining ostida aks ettiradi. Hisoblagichlar aniq nazorat nuqtasiga bog'langan va imzolangan guvoh postlariga kiritilgan. Meros boshliqlar mustaqil guvoh tomonidan qabul qilinishda davom etadi. Jurnal hajmining o'sishi alohida yangi xabar sifatida hisobga olinmaydi. ## Nimani tekshiradi va qayd etadi Har bir intervaldan (o'rnatilgan bo'yicha 10 daqiqa) guvoh: 1. bosh qismni o'zi oladi (yig'uvchi uni sura olmaydi yoki o'tkazib yubora olmaydi); 2. yig'uvchining imzosini, mahkamlangan yig'uvchi kalitini (`--collector-fingerprint` yoki birinchi ko'rilgan kalit), kamaymaydigan hisobni va o'zgarmagan hisobda o'zgarmagan boshni tasdiqlaydi. Merkle kiritish va moslik isbotlari o'sib borayotgan jurnal saqlangan tekshiruv nuqtasini kengaytirishini tasdiqlaydi. Uzluksizlik isbotlari bir marta qo'llangach, ularni olib tashlash rad etiladi; 3. o'z jurnaliga imzolangan yozuvni ilova qiladi: `witness.anchor`, `ok`, `key_changed`, `rollback` (oldingisiga qaraganda kamroq yozuvlar), `fork` (uzunligi bir xil, boshqacha sarlavha) yoki `invalid` (javob tasdiqdan o'tmadi), yoki `witness.no_response` (to'plovchi javob bermaganida); 4. natijani kanalga joylaydi, imzolangan, shu jumladan "no answer", guvoh ishlayotgan va Bot API ga ulanish imkoniga ega bo'lgan paytda. Post ID yozib olinadi (`witness.posted`), shuningdek muvaffaqiyatsiz post ham (`witness.post_failed`). Post quyidagicha ko'rinadi; oxirgi satr imzolangan bayonotni o'z ichiga oladi: ``` TgWitness witness #42 · journal head Collector 3fa9c2d1e0b4a7f6: 18234 records Head 9b1f…c07e 2026-10-28T19:40:00.123+00:00 TGW1.eyJhdCI6…. ``` ## Witnessni ishga tushiring Sizga Telegram boti (uni @BotFather yordamida yarating), o'sha bot ma'mur bo'lgan kanal va guvohdan erishiladigan kollektor manzili kerak — xususiy tarmoqdan tashqarida HTTPS orqali (joylashtir[ish](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/)dagi HTTPS profiliga qarang). Paneldagi **Extras → Mustaqil guvoh → Sozlashni** oching. Uch bosqichda faqat o'qish huquqi, kanal va interval sozlanadi, so'ngra guvoh ishga tushiriladi. Nashr siyosati, ixtiyoriy HTTP/SOCKS5 proksi va maxsus Bot API manzili **Kengaytirilgan sozlamalarda** joylashgan. Forma yuklab olinadi `witness.json` ushbu ish maydonining yig'uvchi kaliti (collector key) belgilangan holda. Yangi yaratilgan faqat o'qish uchun mo'ljallangan tokenni "**Save access file** as" orqali yuklab oling. `witness-token.txt`; uni va bir `bot-token.txt`host'da yaratilgan JSON yoniga joylang. Collector bot tokenini hech qachon olmaydi. Yuklab olish xizmatni ishga tushirmaydi yoki xabar e'lon qilmaydi. Hech qanday joylashtirilgan loyiha guvohi avtomatik ravishda ro'yxatdan o'tkazilmaydi. ``` python -m tgwitness.witness run --config witness.json --check-config python -m tgwitness.witness run --config witness.json python -m tgwitness.witness fingerprint --config witness.json ``` Birinchi buyruq tarmoq so'rovlari yoki kalit yaratilishisiz konfiguratsiya va maxfiy fayllarni tekshiradi. JSONdagi yo'llar shu faylga nisbatan nisbiy; CLI/muhit yo'llari esa ishchi katalogga nisbatan nisbiy. Guvoh barmoq izini uning mezboni tashqarisida saqlang. Yig'uvchining oxirgi so'rov ko'rsatkichi faqat so'rovni tasdiqlaydi; nashr Proof orqali xabar qilinadi yoki guvoh jurnalida va kanalda tekshiriladi. Agar paneli SSH tunneli ortida qolsa, faqat Witness skop nuqtasini alohida HTTPS hostnomada [ushbu Caddy misoli](https://github.com/phishdestroy/TgWitness/blob/main/deploy/Caddyfile.witness.example) bilan ochiq qoldiring. O'rnatilgan ish maydoni keyin `https://witness.example.org`dan foydalanadi, boshqa ish maydonchalari esa `https://witness.example.org/profiles/ID`dan foydalanadi. Tokenlar hanuzgacha talab etiladi; panel va uning boshqa API yo'nalishlari o'sha virtual host orqali yo'naltirilmaydi. `all`ni muntazam e'lon qilinadigan tekshiruv nuqtalari uchun tanlang. Besh daqiqalik oraliq har bir ish maydoni uchun kuniga taxminan 288 ta post degani. `changes` va `problems` maqsadli ravishda ba'zi tekshiruvlarni e'lon qilmaydi. MTProxy yig'uvchining Telegram ilovasi uchun mo'ljallangan. Witness HTTP so'rovi va Telegramning HTTPS Bot API o'zining to'g'ridan-to'g'ri/HTTP/SOCKS5 yo'nalishidan ([Bot API](https://core.telegram.org/bots/api)) foydalanadi. **Yig'uvchiga qo'shimcha ravishda, Docker bilan** (bir xil host — mustaqil jarayon va kalit, lekin operator bir xil): `.env`ga qiymatlarni kiritib, profilni ishga tushiring. ``` TGWITNESS_WITNESS_TOKEN=tgww_... TGWITNESS_WITNESS_BOT_TOKEN=123456:ABC... TGWITNESS_WITNESS_CHANNEL=@your_witness_channel # another workspace: TGWITNESS_WITNESS_COLLECTOR=http://tgwitness:8787/profiles/ docker compose --profile witness up -d docker compose logs witness # prints the witness key fingerprint ``` E'lon qilingan rasm uchun `docker compose --project-directory . -f deploy/compose/compose.image.yaml --profile witness up -d` ni ishlating. **Boshqa birovning serverida** (haqiqiy mustaqil guvoh): repozitoriyni o‘sha yerga nusxalang, `.env` faylida `TGWITNESS_WITNESS_COLLECTOR=https://your-collector.example.org` va yuqoridagi uchta qiymatni belgilang, so‘ng ``` docker compose --project-directory . -f deploy/compose/compose.witness.yaml up -d ``` yoki Docker'siz: ``` python -m tgwitness.witness run --collector https://your-collector.example.org \ --token-file witness-token.txt --bot-token-file bot-token.txt --channel @your_witness_channel ``` ### Discordga e'lon qiling Guvoh Telegram o'rniga Discord kanaliga post qilishi mumkin. Discord'da **Kanalni tahrirlash → Integratsiyalar → Webhooks bo'limini** oching, webhook yarating va uning URL manzilini nusxalang. Panelda 2-qadamda **Discord webhook · o'zingizning kanalni** tanlang. Guvoh mezbonida URL manzilini sifatida saqlang `discord-webhook.txt` yonida `witness.json`; u hech qachon yig'uvchiga yetib bormaydi. ``` python -m tgwitness.witness run --collector https://your-collector.example.org \ --token-file witness-token.txt --discord-webhook-file discord-webhook.txt ``` Guvohda faqat bitta nashriyotchi bo'ladi: Telegram kanali yoki Discord webhook, ikkalasi ham emas. Postlar bir xil imzolangan bayonotni o'z ichiga oladi va hech kimga ping yubora olmaydi. Discord'ning 2 000 belgidan uzun post qisqa satr bilan almashtiriladi, to'liq tekshiruv esa ilova qilingan holda `witness-check.txt`. Har bir post ID quyidagicha qayd etiladi `witness.posted`. `verify.py --channel`Telegram kanal eksportlarini o'qiydi, shuning uchun Discord uchun guvoh jurnalini saqlang: u har bir tekshiruvni o'z ichiga oladi. ### Imkoniyatlar | Variant | Muhit | O'rnatilgan | Ma'no | | --- | --- | --- | --- | | `--interval` | `TGWITNESS_WITNESS_INTERVAL` | 10 | Tekshiruvlar orasidagi daqiqalar, 1–1440 | | `--timeout` | `_TIMEOUT` | 30 | Kollektor va Bot API uchun kutish soniyalari, 5–600 | | `--post` | `_POST` | `all` | `all`: har bir tekshiruv; `changes`: yangi bosh yoki muammo; `problems`: faqat muammolar va javobsiz savollar | | `--title` | `_TITLE` | `TgWitness witness` | Har bir kanal postining birinchi so'zlari | | `--collector-fingerprint` | `_COLLECTOR_FINGERPRINT` | – | Birinchi javobga ishonish o'rniga yig'uvchi kalitni belgilang | | `--proxy` | `_PROXY` | to'g'ridan-to'g'ri | `socks5://host:port` yoki `http://host:port` | | `--bot-api` | `_BOT_API` | `https://api.telegram.org` | Bot API manzili, masalan, mahalliy Bot API serveri | | `--data-dir` | `_DATA` | `witness-data` | Witness kaliti va jurnali | | `--config` | `_CONFIG` | – | Yuqoridagi istalgan variantlardan birini o'z ichiga olgan JSON fayl | Yig'uvchi manzili, tokenlar va kanal keladi `--collector`, `--token` yoki `--token-file`, `--bot-token` yoki `--bot-token-file`, `--discord-webhook-file` va `--channel`, yoki `_COLLECTOR`, `_TOKEN`, `_TOKEN_FILE`, `_BOT_TOKEN`, `_BOT_TOKEN_FILE`, `_DISCORD_WEBHOOK_FILE` va `_CHANNEL`, bu jarayonlar ro'yxatidan sirlarni yashiradi. Konfiguratsiya fayli opsion nomlarini tirelar bilan, shuningdek `texts` ni ishlatadi, u kanal postlaridagi so'zlarni almashtiradi: ``` {"collector": "https://your-collector.example.org", "token_file": "witness-token.txt", "bot_token_file": "bot-token.txt", "channel": "@your_witness_channel", "interval": 5, "timeout": 30, "post": "changes", "title": "Partner witness", "texts": {"ok": "journal head", "no_response": "no answer from the collector", "records": "records"}} ``` `texts` kalitlari: `ok`, `key_changed`, `rollback`, `fork`, `invalid`, `no_response`, `collector`, `records`, `head`. Kommanda qatori muhitdan ustun, muhit esa fayldan ustun. Noma'lum parametrlar yoki matnli kalitlar e'tiborsiz qoldirilish o'rniga xabar bilan guvohni to'xtatadi. Matn hech qachon tasdiqlashga ta'sir qilmaydi: verify.py har bir post oxirida imzolangan tokenni tekshiradi. `--post changes` yoki `problems` bilan joylanmagan tekshiruvlar ham guvoh jurnalida qoladi va `verify.py` ularni hech qachon joylanmagan deb ro'yxatlaydi; boshlang'ich yozuv siyosatni nomlaydi. Har bir tekshiruv jurnalda paydo bo'ladi, shuning uchun kamroq postlar kamroq mustaqil Telegram vaqtlarini anglatadi, tekshiruvlar soni esa kamaymaydi. Kanal bo'lmasa ham guvoh o'z jurnalini saqlab qoladi. Guvoh kalit barmoq izini (`python -m tgwitness.witness fingerprint`) boshqa joyda saqlang. ## Bir nechta ish maydonchalari uchun ommaviy tasdiqlash sahifasi `python -m tgwitness.proof` bir vaqtning o'zida 32 tagacha ish maydonini kuzatadi va har birining so'nggi imzolangan tekshiruvini o'z ichiga olgan faqat o'qish uchun mo'ljallangan sahifani taqdim etadi. Har bir ish maydoni ma'lumotlar papkasi ostida o'z guvoh kaliti va jurnalini hamda biriktirilgan to'plovchi kalitni oladi; Telegram kanaliga post qilish har bir ish maydoni uchun ixtiyoriy hisoblanadi. [proof.config.](https://github.com/phishdestroy/TgWitness/blob/main/deploy/proof.config.example)example-dan boshlang: | Maydon | Ma'no | | --- | --- | | `title` | Sahifa sarlavhasi, 1–100 belgilar | | `data_dir` | Guvoh kalitlari va jurnallari, faylga nisbatan; standart `proof-data` | | `interval`, `timeout` | Tekshiruvlar orasidagi daqiqalar (1–1440, standart 5); kutish soniyalari (5–600, standart 20) | | `workspaces[].id`, `label` | Qisqa kichik harfli taxallus va ko'rsatilgan nom | | `workspaces[].collector` | Yig'uvchi manzili; boshqa ish maydonchalari bilan tugaydi `/profiles/` | | `workspaces[].collector_fingerprint` | Talab qilinadi, har bir ish maydoni uchun turlicha | | `workspaces[].token_file` | Ushbu ish maydonining faqat o'qish uchun mo'ljallangan guvoh tokeni bilan fayl | | `workspaces[].channel`, `bot_token_file` | Ixtiyoriy, birgalikda: har bir tekshiruvni kanalga joylashtirish | | `workspaces[].proxy`, `bot_api` | Ixtiyoriy yo'nalish va Bot API manzili | ``` python -m tgwitness.proof --config proof.json --check-config python -m tgwitness.proof --config proof.json --host 127.0.0.1 --port 8790 ``` Birinchi buyruq fayl va token fayllarini ulanishni ochmasdan tekshiradi. Sahifa faqat GET va HEAD so'rovlariga javob beradi: - `/` har bir ish maydonini ko'rsatadi; 2.5 intervallarni tekshirmasdan qoldirilgan ish maydoni eskirgan deb belgilangan. - `/api/proof` JSON kabi bir xil natijani qaytaradi. - `/api/proof/` so'nggi imzolangan bayonotni yuklab oladi (`tgwitness-public-proof-v1`): guvoh yozuvi raqami va xesh, holat, biriktirilgan yig'uvchi kaliti, tekshiruv nuqtasi, yig'ma hisoblagichlar va kanal postining muvaffaqiyatli ekanligi, ushbu ish maydonining guvoh kaliti bilan imzolangan. - `/healthz` ish maydonining monitori to'xtaganida 503-javobni qaytaradi. Sahifaga [Caddyfile.proof.example](https://github.com/phishdestroy/TgWitness/blob/main/deploy/Caddyfile.proof.example) kabi o'z host nomini bering. Tekshirish uchun ish maydonining guvoh jurnalini eksport qiling `python -m tgwitness.witness export --data-dir proof-data/ --out witness.zip` va uni quyida tavsiflangandek ishlating. ## Tasdiqlang Guvoh tomonidan jurnalini eksport qiling: ``` python -m tgwitness.witness export --out witness.zip # Docker (add -f deploy/compose/compose.witness.yaml on a witness server): docker compose exec witness python -m tgwitness.witness export --out /witness/witness.zip docker compose cp witness:/witness/witness.zip . ``` Keyin istalgan joyda, yig'uvchining imzolangan ZIP-fayli va Telegram Desktop'dan eksport qilingan kanal (*Suhbat tarixini eksport qilish* → JSON `result.json` beradi) yoki uning ommaviy `https://t.me/s/…` sahifasi bilan: ``` python verify.py tgwitness-evidence.zip --fingerprint COLLECTOR_SHA256 \ --witness witness.zip --witness-fingerprint WITNESS_SHA256 --channel result.json ``` `verify.py` guvoh jurnalini (zanjir va imzolarni) tekshiradi, so'ngra **guvoh ko'rgan har bir sarlavha eksport qilingan jurnalning bir qismi ekanligini** aniqlaydi: hisobdagi yozuv aynan shu xeshga ega bo'lishi kerak. Mos kelmaydigan sarlavha tasdiqlashdan o'tmaydi — jurnal guvoh uni ko'rgandan keyin o'zgartirilgan. Shuningdek, eksportdan keyin ko'rilgan sarlavhalar, guvoh qayd etgan anomaliyalar, muvaffaqiyatsiz javoblar, ushbu eksportda mos tekshiruv nuqtalari mavjud bo'lgan davrlar ("X dan Y gacha guvohlik qilingan") va bo'shliqlar haqida ham xabar beradi. Keyingi tekshiruv nuqtalari ushbu davrlarni kengaytirmaydi. Natijaga oxirgi mos kelgan yozuv raqami va mos keladigan tekshiruv nuqtasiga ega bo'lmagan qolgan yozuvlar soni kiradi. Faqat eksportning o'z kaliti bilan imzolangan javoblar hisobga olinadi: guvoh hech qachon ko'rmagan kalit bilan imzolangan eksport guvohlik qilinmagan deb hisoblanadi va`--fingerprint`siz uning imzolovchisi pinlanmay qoladi. `--channel` bilan har bir imzolangan post guvoh jurnalidagi yozuv bilan yozuvma-yozuv mos kelishi kerak: o'zgartirilgan postlar tasdiqlashni o'tkazmaydi, yo'qolgan postlar ro'yxatga olinadi. Taqdim etilgan Telegram JSON eksportidagi sana — bu imzolangan guvoh tokenidan tashqaridagi tahrirlanadigan metadata. Tokenga mos kelish nashr etish vaqtini tasdiqlamaydi; natija nashr vaqtini tekshirish amalga oshirilmaganini aniq bildiradi. ### Guvohlik qilingan eksport chegarasini talab qiling Topshirish jarayoniga guvohlik qilingan yakuniy yozuvni kiritish uchun `--require-witness` ni qo'shing: ``` python verify.py tgwitness-evidence.zip --fingerprint COLLECTOR_SHA256 \ --witness witness.zip --witness-fingerprint WITNESS_SHA256 --require-witness ``` Buning uchun mustaqil ravishda saqlangan guvoh barmoq izi va aynan ushbu eksport oxirida mos keladigan tekshiruv nuqtasi talab etiladi. Faqat avvalgi prefiksni qamrab oladigan tekshiruv nuqtasi yetarli emas. Yig'ishni to'xtating, guvohga yakuniy holatni kuzatishga imkon bering va jurnalga keyingi yozuvlar kiritilmasidan oldin eksport qiling; agar jurnal o'zgarsa, boshqa tekshiruv nuqtasini saqlang va o'sha holatni eksport qiling. Keyingi tekshiruv nuqtasi yolgʻiz oʻzi qisqaroq eksportning yakuniy xeshini tasdiqlay olmaydi. `--channel` ham taqdim etilganda, da'vo qilingan, ammo yoʻqolgan postlar yoki boʻsh moslik toʻplami ushbu qat'iy tekshiruvdan oʻtmaydi. Bayroq qoʻllanilmasa, oddiy yaxlitlik tekshiruvlari guvoh ishtirokisiz yozuvlarni aniqlaydi, ammo aks holda yaxlit arxivni rad etmaydi. Witness jurnalini va uning biriktirilgan kalitini alohida saqlang. Onlayn tekshiruvlar nazorat nuqtalari o'rtasidagi uzluksizlikni tasdiqlaydi; oflayn tekshiruv esa saqlangan har bir nazorat nuqtasini eksport bilan solishtiradi. Uzluksizlik isbotlarisiz eski boshqaruv elementlari oflayn solishtirishni saqlab qoladi va onlayn uzluksizlik tekshiruvisiz hisobotga kiritiladi. Hisobotda guvohning ishlamagan vaqtlari va intervallar bo'yicha muvaffaqiyatsiz nashrlar ko'rsatiladi. ### Kundalik muhrlar va mavjud bo'lmagan timestamp taqvimlari Guvoh avvalgi UTC kunining jurnal chegarasini muhrlaydi va imzolangan muhrning xeshini OpenTimestampsga yuboradi. Taqvim topshirig'i dalillarni kutmoqda; faqat mustaqil ravishda tekshirilgan Bitcoin majburiyatlari verifikator tomonidan tasdiqlanadi. Agar barcha taqvimlar ishdan chiqsa, imzolangan muhr va muvaffaqiyatsiz urinish jurnalda qoladi. Soatlik texnik xizmat ko'rsatish pasporti ushbu dastlabki yozuvni qayta sinab ko'radi, jumladan qayta ishga tushirish yoki sana o'zgarishi holatlarida ham. U eng ko'pi bilan32ta muhrni skanerlaydi, eng ko'pi bilan ikkita yetishmayotgan topshiruvni yuboradi va har bir urinishda qayta urinishlarga eng ko'pi bilan 60 soniya sarflaydi. Doimiy kursor eski muhrlar bo'ylab aylanib turadi. Saqlangan topshiruvlar mavjud isbotni yangilash yo'lini kuzatadi. Qayta urinish muhrni qayta yozmaydi, uning asl sanasini o'zgartirmaydi yoki kalendar uni erta qabul qilganini da'vo qilmaydi. Keyingi Bitcoin majburiyati keyingi tashqi tasdiq bo'lib qoladi. Yetishmayotgan isbotlar `none` bo'lib qoladi; kutayotgan isbotlar esa verifikator ularni mustaqil tekshirgunga qadar `pending` bo'lib qoladi. --- # Telegram · Vaqt tamg'alari Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/timestamp/ RFC 3161 timestamplari imzolangan tekshiruv nuqtalari uchun: vakolatli organiga nima yuboriladi va javob qanday tasdiqlanadi. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) RFC 3161 timestamplari imzolangan tekshiruv nuqtalari uchun: vakolatli organiga nima yuboriladi va javob qanday tasdiqlanadi. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ![Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/assets/chapter-evidence.svg) TgWitness RFC 3161 so'rovlarini tayyorlaydi va timestamp authority (TSA) javoblarini tasdiqlaydi. Ushbu qo'lda bajariladigan protsedura na TSA tanlaydi, na ma'lumot yuboradi; dalil rejimi esa bularning ikkalasini ham jadval ([dalil formati](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#rfc-3161-preparation-and-response-verification-02)) bo'yicha bajaradi. Tayyorlangan so'rov **hali timestamp isbotini** tashkil **etmaydi**. ## Dalil nima bilan bog'lanadi Oqim sxemasi · Hisob kuzatuvlari → SHA-256 zanjiri va Ed25519 imzolari; SHA-256 zanjiri va Ed25519 imzolari → Imzolangan tekshiruv nuqtasi; Imzolangan tekshiruv nuqtasi → Aniq baytli xesh va tasodifiy nonse; Aniq baytli xesh va tasodifiy nonse → RFC 3161 so'rovi; RFC 3161 so'rovi → Mustaqil TSA; Mustaqil TSA → Imzolangan TSA javobi; Imzolangan tekshiruv nuqtasi → Ma'lumotlarni, nonse va aniq CA ishonchini tasdiqlang; Imzolangan TSA javobi → Ma'lumotlarni, nonse va aniq CA ishonchini tasdiqlang · Hisob kuzatuvlari · SHA-256 zanjiri vaEd25519 imzolari · Imzolangan tekshiruvnuqtasi · Aniq baytli xesh vatasodifiy nonse · RFC 3161 so'rovi · Mustaqil TSA · Imzolangan TSA javobi · Ma'lumotlarni, nonseva aniq CA ishonchinitasdiqlang **Diagramma matn sifatida** 1. Hisob kuzatuvlari → SHA-256 zanjiri va Ed25519 imzolari 2. SHA-256 zanjiri va Ed25519 imzolari → Imzolangan tekshiruv nuqtasi 3. Imzolangan tekshiruv nuqtasi → Aniq baytli xesh va tasodifiy nonse 4. Aniq baytli xesh va tasodifiy nonse → RFC 3161 so'rovi 5. RFC 3161 so'rovi → Mustaqil TSA 6. Mustaqil TSA → Imzolangan TSA javobi 7. Imzolangan tekshiruv nuqtasi → Ma'lumotlarni, nonse va aniq CA ishonchini tasdiqlang 8. Imzolangan TSA javobi → Ma'lumotlarni, nonse va aniq CA ishonchini tasdiqlang Yig'uvchining imzosi yozuvlarni uning kalitiga bog'laydi. Ishonchli TSA javobi TSA tomonidan ko'rsatilgan vaqtda ma'lum bir nazorat-o'tkazish punkti mavjud bo'lganini tasdiqlashi mumkin. Nazorat-o'tkazish punkti keyin jurnal prefiksini bog'lashi mumkin. Bu har bir Telegram harakati vaqtini yoki qayd etilgan kontentning rostligini aniqlamaydi. ## Protsedura 1. Yig'uvchi kalit barmoq izini alohida ishonchli kanal orqali saqlang. Faqat tekshirilgan ZIP taqdim etgan kalit yig'uvchini aniqlash uchun yetarli emas. 2. **Eksportlar → Timestamp so'rovini tayyorlash** bo'limidan tanlangan ish maydonining so'rov ZIP-faylini yuklab oling. `checkpoint.json`, `timestamp.tsq`, `SHA256SUMS` va `README.txt` fayllarini arxivdan chiqarib oling. Checkpoint baytlarini o'zgartirmang. 3. Tergovga mos TSA tanlang. `timestamp.tsq` ni hujjatlashtirilgan usuli orqali yuboring, HTTP xizmati uchun `application/timestamp-query` ni ishlating. Asl ikhtiyoriy javobni `timestamp.tsr`, endpoint, olingan vaqt va so'rov natijasini saqlang. So'rov xabarlar o'rniga xesh va nonse-dan iborat; tarmoq metama'lumotlari esa so'rovni hanuzgacha oshkor qiladi. 4. Javobdan qat'i nazar ishonchli ildiz sertifikatini va zarur bo'lgan barcha oraliq sertifikatlarni oling. Javobda keltirilgan sertifikat faqat shu sababli ishonchli bo'lib qolmaydi. 5. Ishonchli TgWitness o'rnatilmasidan tekshiring: ``` python -m tgwitness.anchor verify --checkpoint checkpoint.json --request timestamp.tsq --response timestamp.tsr --ca trusted-tsa-root.pem ``` Kerak bo'lsa `--intermediates tsa-intermediates.pem` yoki `--openssl /path/to/openssl` ni qo'shing. OpenSSL `ts` ni qo'llab-quvvatlashi kerak. Windowsda verifikator shuningdek standart Git o'rnatilishini ham qidiradi. OpenSSL 3.5.9 sintetik CA/TSA bilan mahalliy sharoitda sinovdan o'tkazilgan. 1. Chekpointdan keyin imzolangan jurnalni ZIP-fayl sifatida eksport qiling, shunda u shu prefiksni o'z ichiga oladi. Mustaqil ravishda ma'lum barmoq izi yordamida tekshiring: ``` python tgwitness/verify.py evidence.zip --fingerprint TRUSTED_SHA256 --checkpoint checkpoint.json ``` 1. ZIP-faylni, tekshiruv nuqtasini, so'rov va javoblarni, sertifikat zanjirini, tasdiqlash natijalarini va topshirish yozuvini kollektor tashqarisida saqlang. Qabul qilinganda tasdiqlashni takrorlang. Saqlangan tekshiruv nuqtasidan so'rov tayyorlash: ``` python -m tgwitness.anchor prepare checkpoint.json --out timestamp-request.zip ``` Tayyorlash JSONni kanoniklashtiradi va arxivga mos checkpointni kiritadi. TSA tasdiqlash uchun **o'sha arxivdagi checkpoint baytlar**idan foydalaning, hattoki kirish faylida bo'sh joylar boshqacha bo'lsa ham. ## Verifikatsiya chegaralari | Tekshirish | Joriy xatti-harakat | | --- | --- | | Ma'lumotlar | Aniq checkpoint baytlari SHA-256 hashi javob bilan mos kelishi kerak | | So'rov | `--request` yordamida asl so'rov va nonse tasdiqlanadi | | TSA imzosi | OpenSSL imzo va aniq CA zanjirini tasdiqlaydi | | Yig'uvchi imzosi | Alohida tarzda jurnal verifikatori tomonidan mahkamlangan kalit yordamida tasdiqlangan | | Bekor qilish | Avtomatik OCSP/CRL olish yo'q | | Uzoq muddatli haqiqiylik | Sertifikat muddati tugagach arxivni tasdiqlash bo'lmaydi | | Rejalashtirilgan topshirish | Dalil rejimi, standart bo'yicha o'chirilgan | `--request` texnik jihatdan ixtiyoriy, lekin uni kiritmaslik asl nonse-ni tasdiqlashni oldini oladi. Ushbu to'liq protsedura uchun natijaning `request_checked` rost bo'lishi kerak. Sertifikatlashni tekshirish o'rnatilgan OpenSSL qoidalari va tasdiqlash vaqtiga muvofiq amalga oshiriladi. Uzoq muddatli saqlash uchun alohida sertifikat/bekor qilish dalillari siyosati kerak. Amaldagi kriptografik imzo avtomatik ravishda malakali vaqt tamg'asi yoki huquqiy qabul qiluvchanlikni aniqlashni anglatmaydi. Agar operator vaqt tamg'asi qo'yishdan oldin kuzatuvlarni soxtalashtirgan bo'lsa, TSA o'sha baytlarni mahkamlaydi; bu ularning rostligini tasdiqlamaydi. ## Topshirish yozuvi Ish identifikatori, yuboruvchi va qabul qiluvchi, UTC bo'yicha uzatish vaqti va uning manbai, maqsadi, fayl nomlari/SHA-256 qiymatlari, yig'uvchining barmoq izi, ketma-ketlik diapazoni, ma'lum bo'shliqlar, tekshiruvchi versiyasi va tekshiruv natijasini qayd eting. Ushbu yozuvni imzolang va uni tashkilotingiz jarayoni orqali mustaqil ravishda saqlang. TgWitness'da ko'p foydalanuvchili saqlash yozuvi tizimi joriy etilmagan. Rivojlantirish jarayonida mustaqil jonli TSA bilan bog'lanilmagan. Mahalliy testlar moslikni va o'zgartirilgan ma'lumotlar, nonse yoki CA rad etilishini tekshirish uchun sintetik CA/TSA yaratadi. --- # Telegram · Saqlash va tiklash Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/ Zaxira nusxalari, eski fayllarni bulutga ko' chirish, Object Lock ostidagi nusxalar va yangi qurilmada tiklash. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Zaxira nusxalari, eski fayllarni bulutga ko'chirish, Object Lock ostidagi nusxalar va yangi qurilmada tiklash. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) ![Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/assets/chapter-operate.svg) Panel uchta vazifani ajratadi: | Vazifa | U nima qiladi | | --- | --- | | Zaxira nusxasini saqlang | Imzolangan jurnal, tekshiruv nuqtalari, saqlangan fayllar va navbatga qo'yilgan eksportlarni sozlangan S3 manziliga nusxalash. | | Mahalliy bepul xotira joyi | Tanlangan eski ilovalarni S3 yoki rclone bulutli masofaviy joyga nusxalash, ularni to'liq qayta o'qish, shifrlangan baytlarni tasdiqlash, so'ngra tasdiqlangan mahalliy nusxani o'chirish. | | Dalil nusxasini saqlang | S3 Object Lock sozlamalarini o'rnating va qaytarilgan saqlash muddatini tekshiring. Xizmat so'ralgan rejim va sanani tasdiqlashi kerak. | Joyni bo'shatish imzolangan jurnalni hech qachon o'chirib tashlamaydi yoki qayta yozmaydi. Har bir ilova o'zining asl SHA-256i va tiklash kvitansiyasini saqlaydi. Ixtiyoriy gzip siqish autentifikatsiyalangan shifrlashdan oldin amalga oshiriladi. Bulut fayl nomlari Telegram nomlari, suhbat IDlari yoki asl ilova nomlarini o'z ichiga olmaydi. Bitta ilova 32 GiB gacha bo'lishi mumkin. Faylni yuklash bo'yicha javob o'zi faylni o'chirishga ruxsat emas.TgWitness to'liq shifrlangan obyektni yuklab oladi va uning hajmi hamdaSHA-256 ni tekshiradi, kvitansiyani saqlaydi, so'ng faylni o'chirishdan oldin mahalliy baytlarni yana bir bor tekshiradi. Yuklash muvaffaqiyatsiz bo'lsa, qayta o'qish boshqacha bo'lsa yoki uzatish bekor qilinsa, mahalliy fayl o'z o'rnida qoladi. Agar yoqilgan dalil zaxirasi hali o'sha faylni nusxalamagan bo'lsa, o'chirish ham uning nusxasini kutadi. **Ushbu sahifada** - [Disk to'lib borayotganda](https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/#when-the-disk-is-filling-up) - [Maqsadni ulang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/#connect-a-destination) - [Qayta tiklash faylini saqlang](https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/#keep-the-recovery-file) - [O'rnatishni yo'qotgandan keyin tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/#recover-after-losing-the-installation) - [Operator bot va yakunlash bildirishnomalari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/storage/#operator-bot-and-completion-notices) ## Diskdagi joy kamayganda Bo‘sh joy **Parametrlar → Biriktirmalar → diskdagi bo‘sh joy** qiymatidan (odatda 1 GiB) kamayganda biriktirmalarni yuklash to‘xtab turadi, navbat saqlanadi. Matn kuzatuvlari davom etadi. Bu bildirishnomalarga bog‘liq emas: ularni o‘chirish yuklash zaxirasi yoki saqlash himoyalarini o‘chirmaydi. Oldinroq choralar ko‘rish uchun **Avtomatik ishga tushirish**ni yoqing, **Joy bo‘shatish uchun mahalliy faylni o‘chirish**ni tanlang va **Diskda joy kamayganda qo‘shimcha ko‘chirishni boshlash**ni yoqing. Ixtiyoriy qoida odatda bo‘sh joy 5120 MiB dan kam bo‘lganda boshlanadi va 10240 MiB bo‘shaguncha guruhlar bilan ishlaydi. Ikkala chegara sozlanadi. Qo‘lda ishga tushirishdagi manzil, faylning eng kam yoshi, guruh hajmi, to‘liq qayta o‘qib tekshirish va dalillar zaxira nusxasi talablari ishlatiladi. Manzil o‘z-o‘zidan yoqilmaydi. Tekshiruv har 30 soniyada; xato yoki siljish bo‘lmasa keyingi urinish besh daqiqaga kechiktiriladi. Holat va qayta urinish vaqti qayta ishga tushirishda saqlanadi. Qoida faol bo‘lmasa, rejali jarayonlar odatdagi oraliqda ishlaydi. Panel bo‘sh joy, qadoqlash zaxirasi, qoida tayyorligi va vaqtinchalik joy yetishmagani uchun o‘tkazib yuborilgan fayllarni ko‘rsatadi. Qadoqlash va tiklash boshlanishdan oldin eng yuqori vaqtinchalik joy talabini, yozish paytida esa mavjud joyni tekshiradi. Yuklash uchun belgilangan zaxira ishlatiladi, saqlash operatsiyalari uchun u kamida 64 MiB. Bu fayl tizimi kvotasi emas: boshqa jarayon tekshiruvlar orasida joyni egallashi mumkin. Gzip masofaviy obyektlarni yo‘qotishsiz siqadi; faol jurnalni kichraytirmaydi va mahalliy arxiv yaratmaydi. JPEG, video va ZIP fayllari juda oz kichrayishi yoki biroz kattalashishi mumkin. Siqish yoqilganda qadoqlash vaqtincha biriktirma hajmining taxminan ikki baravari va zaxira miqdorida joy talab qilishi mumkin. Eng katta fayllarga yetadigan erta boshlash chegarasini tanlang. Tayyorlash uchun juda katta fayl saqlanadi va xabar qilinadi; kichik fayllar hamda oldin tekshirilgan masofaviy nusxalar joy bo‘shata oladi. Tekshirilgan nusxa bo‘lsa, yana qadoqlash faylini yaratmasdan mahalliy faylni olib tashlash mumkin. Tiklash ham vaqtinchalik joy talab qiladi va joy bo‘lguncha rad etilishi mumkin. Ko‘chirishga mos fayl yoki sozlangan manzil bo‘lmasa, TgWitness joyni avtomatik bo‘shata olmaydi. Saqlash boshqaruvi imzolangan jurnalni hech qachon qisqartirmaydi yoki qayta yozmaydi. Yangi matn kuzatuvlari uchun baribir joy kerak. ## Maqsadni ulang **Qo'shimchalar → Saqlash va disk joyi → Saqlashni boshqarish**-da vazifa va manzilni tanlang, uni saqlang, so'ngra **Sinov yuklash va yuklab olish**-ni tanlang. Test kichik tasodifiy probani yuklaydi va uni qayta o'qiydi. U Telegram kontentidan foydalanmaydi. S3 uchun provayderning haqiqiy endpoenti, mintaqasi va bucketidan foydalaning. Wasabi, Backblaze, Cloudflare R2 va boshqa mos xizmatlar bir xil S3 sozlamalarini ishlatadi. Faqat mos API Object Lock qo'llab-quvvatlanishini anglatmaydi. Governance rejimi ruxsat etilgan ma'murga saqlash muddatini chetlab o'tishga imkon berishi mumkin; Compliance rejimida esa boshqa cheklovlar mavjud. Saqlash muddatiga tayanishdan oldin qaytarilgan Object Lock holatini o'qing. rclone manzili uchun rclone'ning provayder sozlamalari yordamida bir masofaviy ob'ekt yarating va o'sha masofaviy ob'ektning `[name]` bo'limini paneldagi tegishli joyga joylashtiring. O'rnatilgan yordamchi MEGA, Google Drive, OneDrive, Dropbox, Box, pCloud va tanlovchida ko'rsatilgan boshqa provayderlarni qo'llab-quvvatlaydi. Kirish ma'lumotlari ushbu ish maydonining shifrlangan omborida saqlanadi. OAuth yangilanishlari ham omborda saqlanadi. Kirish ma'lumotlari jurnal voqealariga qo'shilmaydi va tiklash yuklamalariga kiritilmaydi. Yordamchi ish maydoni ichida o'rnatiladi, pinlangan versiya vaSHA-256 bilan. U tizim PATHiga qo'shilmaydi. Sozlash fayllari va ish fayllari shu ish maydoni ichidagi vaqtinchalik fayllardir. Kommanda asosidagi va mahalliy faylga masofaviy ulanishlar rad etiladi. rclone hozirda tashqi so'rovlar uchun aniq tanlangan **To'g'ridan-to'g'ri** yo'nalishni talab qiladi. Ish maydoni uchun SOCKS5 yoki HTTP yo'nalishda mahalliy S3 saqlashdan foydalaning; rclone mavjud bo'lmagan yo'nalishni jimjit chetlab o'tmaydi. ## Qayta tiklash faylini saqlang Fayllarni nusxalashdan keyin **tiklash faylini saqlashni** tanlang va uni o'rnatish joyidan alohida joyda saqlang. Unda dekripsiya kaliti va imzolangan ob'ekt kvitansiyalari mavjud, shuning uchun uni shaxsiy kalit zaxira nusxasi sifatida muomala qiling. Asl masofaviy konfiguratsiyani va manzil ma'lumotlarini ham alohida saqlang. Keyingi nusxa olishdan oldin olingan tiklash fayli o'sha keyingi faylning kvitansiyasini o'z ichiga olmaydi. Imzo kalitining barmoq izi alohida yozib qo'yilgan bo'lishi kerak. Faqat shu faylda taqdim etilgan kalitga qarshi tekshirilgan imzo kimning tiklash fayli ekanligini aniqlamaydi. Mavjud ish maydonchasidagi yo'qolgan saqlash kvitansiyalarini tiklash uchun **saqlangan tiklash faylidan "Fayllarni tiklash"ni** oching va kerakli faylni tanlang. Panel imzoni tekshiradi va xuddi shu ish maydonchasi imzolash kalitini talab qiladi. U boshqa saqlash kalitini almashtirishni rad etadi. Keyin **"Barcha fayllarni tiklash"ni** tanlang. Tiklash avtomatik saqlash qoidasini to'xtatadi, shunda keyingi rejalashtirilgan bosqich tiklangan fayllarni darhol yana o'chirib tashlamaydi. Mahalliy nusxalar bilan ishingiz tugagach, qoidani qayta yoqing. Qayta tiklash shifrmatni tekshiradi, deşifrlashni autentifikatsiya qiladi, zarur bo'lsa siqilgan ma'lumotni dekompressiya qiladi va faylni joylashtirishdan oldin asl ravshan matn SHA-256ni tekshiradi `media/`. Shikastlangan masofaviy obyekt hech qachon mahalliy faylni almashtirmaydi. Turli baytlarga ega bo'lgan mavjud mahalliy fayl ustidan yozib tashlash o'rniga ko'rib chiqish uchun saqlanadi. ## O'rnatishni yo'qotgandan keyin tiklash TgWitness-ni boshqa mashinaga o'rnating. Xususiy tiklash faylidan, alohida yozib olingan barmoq izidan va asl manzil ma'lumotlaridan foydalaning: ``` python -m tgwitness.storage recover \ --recovery storage-recovery.json \ --fingerprint TRUSTED_WORKSPACE_SHA256 \ --credentials original-rclone.conf \ --output recovered-attachments ``` S3 uchun, `--credentials` maxfiy JSON faylga ishora qiladi `access_key` va `secret_key`; imzolangan tiklash fayli manzil sozlamalarini taqdim etadi. Komanda to'g'ridan-to'g'ri tashqi ulanishdan foydalanadi va rclone masofaviy ulanishi bunga muhtoj bo'lganda mahkamlangan yordamchi dasturni yuklab oladi. U mavjud chiqish katalogini rad etadi. Qayta tiklangan asl baytlarga yoziladi `recovered-attachments/media/`, ularning SHA-256i bo'yicha nomlangan. `recovery-log.jsonl` — tiklash operatsiyalarining imzolanmagan yozuvi. Bu buyruq yo'qolgan imzolangan jurnalni yoki uning imzolash kalitini qayta yaratmaydi. Ular uchun to'liq ish maydoni zaxira nusxasini saqlang. Saqlashni tiklash fayli to'liq ish maydoni zaxira nusxasi emas. ## Operator bot va yakunlash bildirishnomalari Telegram boti operatorga tegishli. Uni BotFather orqali yarating va panelda uning tokeni, manzil chat hamda aniq ruxsat etilgan Telegram foydalanuvchi identifikatorlarini sozlang. Jo'natuvchi hamda chat mos kelishi kerak. Boshqa botlardan kelgan yo'naltirilgan xabarlar va buyruqlar e'tiborsiz qoldiriladi. `/status` va `/stats` bo'lsa, standart faqat holat rejimida mavjud. Ixtiyoriy boshqaruv rejimi qo'shadi `/pause`, `/resume` va `/copy`. `/copy` sozlangan saqlash vazifasini so'raydi; bu masofaviy yuklash allaqachon tugaganligini anglatmaydi. Buyruqlar ixtiyoriy URL manzillarni, fayllarni yoki shell dasturlarini taqdim eta olmaydi. Ogohlantirishlar va vazifani bajarish uchun alohida bildirishnoma sozlamalaridan foydalaning. Bajarish bildirishnomalari bo'shliqlar bilan hisob eksportini to'liq eksportdan ajratib ko'rsatadi va tarix hamda saqlash hajmlari sonini ko'rsatadi. Xabar parchalarini bildirishnoma sozlamalarida alohida yoqilmagan taqdirda kiritilmaydi. Xizmat tanlovchisi provayder misollarining doimiy to'plami o'rniga haqiqiy o'rnatilgan Apprise katalogidan shakllantiriladi. --- # Telegram · Xavfsizlik va ma'lumotlarni boshqarish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/ Xavf modeli, kirish modeli, saqlashdagi sirlar, tarmoqdagi ochiqlik, sessiya importlari va zaiflikni qanday xabar qilish. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Xavf modeli, kirish modeli, saqlashdagi sirlar, tarmoqdagi ochiqlik, sessiya importlari va zaiflikni qanday xabar qilish. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/deployment/) ![Joylashtirish va tiklash](https://phishdestroy.github.io/TgWitness/assets/chapter-operate.svg) Ushbu sahifa mahalliy yoki server ish maydonida kirish, saqlash va tarmoqni himoya qilishni tasvirlaydi. GitHub runner'da yoki Intel TDX maxfiy VM'da yig'ish uchun yig'ish muhitini tekshiruvchi qo'shimcha [tekshiruv rejimlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope)iga qarang. Hisobga ulanishlar, bildirishnomalar, vaqt tamg'alari, masofaviy nusxalar va guvohlarning o'z yo'naltirish sozlamalari mavjud. | Soha | Qisqasi | | --- | --- | | Kirish | Administrator kaliti va hisoblar/suhbatlarga chegaralangan kirish, yetti ruxsat va bekor qilinishi mumkin bo'lgan sessiyalar; standart bo'yicha localhost | | Saqlangan sirlar | Sessiya, API juftligi, imzolash kaliti va proksi sozlamalari Fernet bilan shifrlangan | | Xabarlar va media | Shifrlanmagan holda saqlanadi: diskni shifrlash va qat'iy ruxsatnomalarni qo'llang | | Buzilmaslik | Har bir yozuvda SHA-256 xesh zanjiri va Ed25519 imzosi | | Mahalliy ishonch chegarasi | Mehmon administrator ish maydonini va uning imzolash kalitini nazorat qiladi; mustaqil tekshiruv nuqtalari avvalgi jurnal chegarasini saqlab qoladi | Zaifliklar bo'yicha hisobotlar uchun [xavfsizlik siyosat](https://github.com/phishdestroy/TgWitness/blob/main/.github/SECURITY.md)iga qarang. **Ushbu sahifada** - [Kirish modeli](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/#access-model) - [Panel mazmuni va eksportlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/#panel-content-and-exports) - [Saqlangan sirlar](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/#secrets-at-rest) - [Proxy-lar va tarmoq yo'nalishlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/#proxies-and-network-routes) - [Kirish va sessiya importlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/#sign-in-and-session-imports) - [Loglar va transport](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/#logs-and-transport) - [Buzilmaslik chegaralari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/#integrity-limits) - [Agar muammo borligiga shubha qilsangiz](https://phishdestroy.github.io/TgWitness/uz/docs/reference/security/#if-you-suspect-a-problem) ## Kirish modeli Asosiy panel tokeni to'liq nazoratni beradi. Boshqa foydalanuvchilar o'zlariga [moslashtirilgan kirish huquqini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/access/) olishlari mumkin: tanlangan ish maydonchalari va suhbatlar, ruxsatnomalar, amal qilish muddati, IP-cheklovlar, tizimga kirish limitlari va bekor qilinishi mumkin bo'lgan sessiyalar. Suhbatlarga cheklangan kirish huquqi, hatto tegishli ruxsat belgilangan bo'lsa ham, butun ish maydonchasi bo'yicha amaliyotlarni bajarolmaydi. Ish maydonchalari jarayonni baham ko'radi va ma'lumotlarni mezbon ma'muridan ajratmaydi. Panel mahalliy tarmoq (localhost) orqali standart bo'yicha tinglaydi. Brauzerda tizimga kirish sessiya ma'lumotini kirish tokeniga almashtiradi; brauzer uni bearer tokeni sifatida yuboradi. U autentifikatsiya cookie o'rniga sessionStorage'da saqlanadi. Qulflash/chiqish brauzer sessiyasini tozalaydi. Brauzerni yopish yoki sessiyani tugatish ma'lumotlarni yig'ishni to'xtatmaydi. Chiqarilgan tokenlar va sessiya ma'lumotlari shifrlangan omborda xeshlar ko'rinishida saqlanadi. Bekor qilish tegishli sessiyalarni tugatadi; ruxsat o'zgarishlari keyingi so'rovlarga ta'sir qiladi. Yuklab olingan fayllarni qaytarib olib bo'lmaydi. Administrator o'z brauzer sessiyalarini ham cheklashi mumkin, ammo asosiy panel tokenidan to'g'ridan-to'g'ri foydalanadigan skriptlar to'liq kirishni saqlab qoladi va brauzer sessiyasi cheklovlarini chetlab o'tadi. Avtorizatsiya muvaffaqiyatsiz bo'lsa, mijoz manzili bo'yicha tez-tezlik cheklovi qo'llanadi. IP-cheklovlar ilova ko'rayotgan manzilga asoslanadi; unga tayanishdan oldin teskari proksi xatti-harakatlarini tekshiring. Witness hisob ma'lumotlari alohida, faqat o'qish uchun mo'ljallangan tekshiruv nuqtasi/sog'liqni tekshirish ma'lumotlari bo'lib qoladi. ### Demo kirish `/api/demo-access` aniq boshlangan, izolyatsiyalangan sintetik demo uchun ataylab autentifikatsiyalanmagan bootstrap hisoblanadi. U alohida jarayon umrboqiyligi imkoniyatini beradi, hech qachon haqiqiy panel tokeni yoki TGWITNESS_TOKEN ustuvor tokenini bermaydi. Chiqarish va foydalanish loopback tengdosh va mezbonni, yo'naltirilgan sarlavhalarni va manba-aralash so'rovlarni talab qiladi. Qo'shimcha ish maydonchalari yoki ruxsat etilgan sessiya ushbu yo'nalishni o'chirib qo'yadi. Jonli ish maydonchalari hech qachon ushbu imkoniyatni bermaydi. Demo hisoblarni bog'lay olmaydi yoki yig'ish sozlamalarini o'zgartira olmaydi. ## Panel mazmuni va eksportlari Panel hech qanday tashqi shriftlar, tahliliy vositalar, CDN resurslari yoki o'rnatilgan masofaviy media elementlaridan foydalanmaydi. Telegram manbasidan olingan matn HTML emas, oddiy matn sifatida kiritiladi. Yuklab olingan ilovalar binar ilovalar sifatida taqdim etiladi. JSONL eksporti asl satrlarni saqlaydi; HTML ularni qochiradi; formulaga aylanishi mumkin bo'lgan CSV hujayralari esa apostrof bilan boshlanadi. Eksportlar autentifikatsiya va imzolash sirlarini o'z ichiga olmaydi, lekin ataylab to'plangan manba metama'lumotlari, identifikatorlar va ehtimol shaxsiy yoki nozik kontentni o'z ichiga oladi. Telegramga kirish hashlar va fayl havolalari xom manba metama'lumotlarida uchrashi mumkin. ## Saqlangan sirlar Telegram API kreditsialari, sessiya va imzolash kaliti Fernet bilan shifrlanadi. Mahalliy xabarlar va media uchun shifrlash mezbonning diski yoki hajmi tomonidan ta'minlanadi; ish maydoni oddiy fayllarni saqlaydi. Eksportlar parol bilan himoyalangan AES-256 ZIP-dan foydalanishi mumkin, va tashqi nusxalar AES-256-GCM-dan foydalanadi. Ombor kaliti standart bo'yicha himoyalangan ma'lumotlar papkasiga o'rnatiladi. Uni alohida saqlash uchun quyida tashqi bosh kalit faylidan foydalaning. Unix tizimida yangi shaxsiy kalit fayllari 0600 rejimidan, yangi ma'lumotlar papkalari esa 0700 rejimidan foydalanadi; Windows tizimida esa xizmat akkaunti va ruxsat berilgan ma'murlar uchun papka ACL sozlamalarini o'rnating. Mavjud papka ruxsatlari saqlanib qoladi. ### Tashqi bosh kalit Yangi ma'lumotlar katalogi uchun TGWITNESS_VAULT_KEY_FILE tashqi tasodifiy bosh kalitni ta'minlashi mumkin. HKDF-SHA256 va alohida tasodifiy tuz har bir ish maydoni uchun turli Fernet kalitini hosil qiladi. Tiklash uchun vault.external.json saqlanishi kerak. Yo'qolgan yoki noto'g'ri bosh kalitlar yopiladi. Mavjud mahalliy omborlar jimjit ko'chirilmaydi. Panel tanlangan kalit saqlash rejimini ko'rsatadi. Diskni shifrlash har ikkala rejimda ham mahalliy xabar va media fayllarni himoya qiladi; sozlash tafsilotlari uchun [ulanish va ma'lumotlarni himoya qilish bo'limlariga](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/) qarang. ## Proxy-lar va tarmoq yo'nalishlari Proxy konfiguratsiyasi omborda shifrlanadi. Parollar va MTProxy sirlar API orqali qaytarilmaydi yoki dalil yozuvlariga yozilmaydi. Har bir ish maydoni o'z Telegram yo'nalishi va [IP rejimini](https://phishdestroy.github.io/TgWitness/uz/docs/reference/connection/#ip-modes) tanlaydi. **"Hide the address"** bevosita Telegram zaxira rejimiga o'tishni rad etadi va tashqi HTTP so'rovlari uchun proksi talab qiladi. Aniq tanlangan zaxira rejimi kechikishdan so'ng Telegramga bevosita ulanishga ruxsat beradi; tunnel/VPN rejimi esa bevosita yo'nalishlarni ta'minlaydi. Tunnel rejimini tanlash VPNni o'rnatmaydi yoki tekshirmaydi. Ushbu sozlamalar butun tizim trafigini, brauzerlarni, paket boshqaruvchilarni yoki mahalliy proksi-server DNS aniqlashni nazorat qilmaydi. MTProxy faqat Telegram trafigini uzatadi. Tashqi so'rovlar alohida SOCKS5/HTTP proksidan, ish maydonining SOCKS5/HTTP yo'nalishidan yoki ruxsat etilgan to'g'ridan-to'g'ri yo'ldan foydalanishi mumkin; ularni o'chirib qo'yish ham mumkin. Mustaqil guvoh o'z transport sozlamalariga ega. Oddiy SOCKS5/HTTP CONNECT autentifikatsiyasi o'sha proksi protokollari tomonidan shifrlanmaydi. Soxta TLS MTProxy sirlarini qo'llab-quvvatlash hali ham mavjud emas. ## Kirish va sessiya importlari Konvertlangan .tgwitness-session fayllarida oddiy matnda avtorizatsiya sirini o'z ichiga oladi, ular omborga yuklanib saqlanmaguncha. Oflayn CLI ko'rib chiqilgan Telethon sxemalarini qabul qiladi. Panel importi shuningdek Pyrogram SQLite, zamonaviy yagona akkauntli TData ZIP va hujjatlashtirilgan JSON kirishlarni qabul qiladi. U autentifikatsiyalangan, to'rtta fayl / 8 MiB bilan cheklangan va yuklamalarni arxivni chiqarib olish yoki asl fayllarni saqlashsiz xotirada qayta ishlaydi. Normalizatsiyalangan kreditsialar faqat so'rov yuborgan autentifikatsiyalangan brauzerga qaytariladi; ular Telegramda muvaffaqiyatli ruxsat berilgach shifrlangan omborga saqlanadi. Asl fayllar va konvertatsiya qilingan fayllarni himoya qiling va bir vaqtning o'zida bir nechta mijozlarning ruxsatnoma nusxasini yaratishining oldini oling. TData ishlovi konteyner tekshiruv yig'indilarini, mahalliy dekriptirovka xeshlarini va tuzilma uzunliklarini tasdiqlaydi. Taqdim etilgan Desktop mahalliy paroli vaqtinchalik ishlatiladi va saqlanmaydi. Ushbu chegaralangan parser har bir Desktop versiyasining mos kelishini kafolatlamaydi. QR tasvirlari mahalliy ravishda yaratiladi, qisqa muddatli Telegram kirish tokenlarini o'z ichiga oladi va hech qachon tashqi render xizmatiga yuborilmaydi. Bloklash, ish maydoni o'zgarishi, yangi kirish va yo'nalish o'zgarishlari kutayotgan QR urinishlarini bekor qiladi. Veb-sahifani qayta yuklash yoki yopish urinishni muddat tugaguncha kutayotgan holda qoldirishi mumkin. Muvaffaqiyatli QR kirish hisobni bog'lashni baribir majburiy qiladi. Oddiy API tanalari 16 KiB bilan cheklangan bo'lib qoladi; autentifikatsiyalangan import yo'li esa kodlangan JSON uchun 12 MiB gacha qabul qiladi, dekompressiyalangan faylning kichikroq limitini alohida qo'llaydi. Kirish kodlari va Telegram ikki bosqichli tasdiqlash parollari saqlanmaydi. Telefon raqami/kod-hash holati avtorizatsiya vaqtida xotirada saqlanadi. Telegram sessiyalari hisobga kirish huquqini beradi; hech qachon ma'lumotlar katalogi, sessiya, token, xazina kaliti yoki xususiy imzo kalitini GitHubga yuklamang. ## Loglar va transport Standart API tasdiqlash javobi o'zgartiriladi, shunda u autentifikatsiya ma'lumotlarini aks ettirmaydi. Ilova kirish logi o'chirilgan. Revers proksi sozlamang, Authorization sarlavhalari yoki so'rov tanalarini yozib olish uchun. HTTP tokenlar va kirish sirlarini oddiy matnda uzatadi: localhostdan tashqariga chiqayotganda HTTPS yoki SSH tunneli ishlating. ## Buzilmaslik chegaralari Mahalliy tekshiruvlar imzo yozuvlari, xesh zanjiri, ilovalar va eksport manifestini tekshiradi. Administrator mahalliy imzo kalitini saqlaydi va yana bir imzolangan jurnal yaratishi mumkin; mustaqil saqlangan tekshiruv nuqtasi o'z qamrab olgan prefiksning almashtirilishini aniqlaydi. Kalit barmoq izi va tekshiruv nuqtalarini qabul qiluvchi yoki mustaqil guvohda saqlang. Mustaqil tekshirilgan yig'ish uchun [GitHub Actions capture](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md) yoki [Intel TDX joylashtirishni](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/#confidential-vm-on-phala-cloud-intel-tdx) tanlang. Ularning verifikatorlari arxiv yaxlitligidan tashqari ish jarayonining kelib chiqishini yoki apparat o'lchovlarini tekshiradi. Ixtiyoriy vaqt tamg'alari va shifrlangan tashqi nusxalar vaqt nuqtalarini va tiklanishi mumkin bo'lgan nusxalarni ta'minlaydi; [dalil formati](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/#verification-scope) har bir rejim uchun tekshiruvlarni tasvirlaydi. ## Agar muammo borligiga shubha qilsangiz Asl ma'lumotlar katalogini saqlang va tahlil uchun alohida nusxa ishlating. [Xavfsizlik siyosati](https://github.com/phishdestroy/TgWitness/blob/main/.github/SECURITY.md) orqali ta'sirlangan versiya, amaliyot va qayta yaratilishi mumkin bo'lgan bosqichlarni xabar qiling, hisob ma'lumotlari va parollarni maxfiy saqlang. --- # Arxitektura Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/architecture/ Yig'uvchi, panel, jurnal, ishchilar va guvoh komponentlari hamda ma'lumotlar ularning o'rtasida qanday harakatlanadi. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Yig'uvchi, panel, jurnal, ishchilar va guvoh komponentlari hamda ma'lumotlar ularning o'rtasida qanday harakatlanadi. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) ![Rivojlantirish](https://phishdestroy.github.io/TgWitness/assets/chapter-develop.svg) Bir Python jarayoni FastAPI panelini va istalgan sonli izolyatsiyalangan ish maydonlarini, har biri Telethon foydalanuvchi-akunenti bilan, mezbonlik qiladi. SQLite faqat qo'shimcha kiritishga mo'ljallangan imzolangan voqealar jurnalini va o'zgartiriladigan operatsion sozlamalarni saqlaydi. Shifrlangan ombor API ma'lumotlari, StringSession va imzolash kalitini saqlaydi. Frontend oddiy paketlangan HTML/CSS/JavaScript: Node build, CDN yoki frontend ish vaqti yuklamalari kerak emas. Optional browser and AyuGram recorders run in **separate processes or containers**. The `tgwitness_capture` package owns their event format, keys, artifacts, checkpoint API, independent witness and standalone verifier. It is bundled in the main wheel and can also be installed alone from `addons/capture`, without importing the collector. The main panel's `capture_api.py` and `capture_connections.py` provide administrator-only, workspace-scoped controls under `/api/capture`; connection tokens live in the encrypted vault. No recorder or outbound request starts with the main process. Each explicit command verifies a fresh challenge against the pinned recorder key. Exports are verified before download and keep their original signature; they do not become Telegram message events. Collection sessions and proxy routes stay with each client. See the English [Independent capture guide](https://github.com/phishdestroy/TgWitness/blob/main/docs/OPTIONAL-CAPTURE.md) for deployment and trust boundaries. | Modul | Mas'uliyat | | --- | --- | | collector.py | Avtorizatsiya, dialog tanlovi, yangilanishlar, snapshotlar, media navbati, ulanishni monitoring qilish | | interactions.py / telegram_client.py | Panelning aniq harakatlari, imzolangan kvitansiyalar, doimiy so'rov identifikatorlari va vazifa-mahalliy callback/qo'shilishni qayta urinish siyosati | | message_content.py | Kuzatiladigan xabarlarni solishtirish, transportga kirish metama'lumotlarini istisno qilgan holda | | workers.py | Bekor qilishni tozalashdan oldin eksport fayllari ishchilarini kuting | | distributed_export.py / distributed_pages.py | Paralel suhbat ishlar, har bir hisob bo'yicha rezervatsiyalar, imzolangan tekshiruv nuqtalari va arxivni tekshirishdan keyingi tozalash | | distributed_takeout.py / export_timing.py | Qayta boshlanishi mumkin bo'lgan Takeout sessiyalari va har bir boshlash yoki tiklash uchun vaqt ko'rsatkichlari | | store.py | WAL tranzaktsiyalari, tartibga solingan voqealar zanjiri, so'rov filtrlari, operatsion sozlamalar | | fulltext.py | To'liq matn indeksi (so'z shakllari, BM25) imzolangan jurnal boshiga bog'langan; hech qachon eksport qilinmaydi | | security.py | Shaxsiy fayl yaratish, shifrlangan ombor, Ed25519 imzolash, yagona jarayon qulfi | | evidence.py | Butun jurnalni eksport qilish, derivativlar, tekshiruv nuqtalari, ilovalarni tasdiqlash | | verify.py | Mustaqil, faqat o'qish uchun mo'ljallangan tasdiqlovchi (stdlib + kriptografiya): arxivlar, qamrov, guvoh jurnallari va kanal postlari, profil fayllari | | app.py | Avtorizatsiyalangan API, hayotiy tsikl, so'rovni tasdiqlash, statik panel | | profiles.py | Bir nechta akkaunt yig'uvchilar, ulashilgan kirish nazorati, har bir ish maydoni bo'yicha hayotiy tsikl | | access.py | Grantlar doirasini belgilash, ruxsatlarni tekshirish, IP-manzillarni cheklash, sessiya limitlari va administrator konsoli | | proxy_catalog.py | Ommaviy kanallar yozuvlari, transport tekshiruvlari, ulashilgan proksi havzasi va holatga asoslangan tanlov | | provenance.py | Imzolangan olish-ijro etish jarayonida shaxsiyat, kod va bog'liqlik o'lchovlari | | network.py | Har bir ish maydoni bo'yicha tasdiqlangan yo'nalishlar; o'chirilgan holat va dalillar; Telethon transport variantlari | | sessions.py | Ko'rib chiqilgan Telethon SQLite sxemalarini oflayn faqat o'qish uchun konvertatsiya qilish | | account_import.py | Qo'llab-quvvatlanadigan akkaunt fayllari va JSON-larni xotirada aniqlash va normalizatsiya qilish | | tdata.py | Cheklangan zamonaviy TData ZIP o'qirgichi, tekshirish summasi/dekripsiya tasdiqlovi, chiqarib olish yo'q | | doctor.py | Mahalliy tayyorgarlik tekshiruvlari ma'lumot yig'ish, tizimga kirish yoki paket o'rnatilishini talab qilmaydi | | download.py | Avtorizatsiyalangan jonli eksport yuklab olish, chegaralangan o'qishlar va ustma-ust yozishsiz | | monitoring.py | Har bir ish maydoni bo'yicha voqealar siyosati va har bir turdagi ilovalar qoidalari tasdiqlangan, handlerlar, holat va imzolangan kvitansiyalar bilan baham ko'riladi | | scope.py | Kuzatuv doirasi (tanlangan suhbatlar, Telegram papkasi, butun hisob), manba turlari, istisnolar, qayta tekshirish darajalari | | dossier.py | Saklanib qolgan yozuvlar asosida chatdagi odam profillari: yozuv raqamlari bilan faktlar, avatar SHA-256/pHash, tilga olishlarni ajratib olish | | witness_api.py | Faqat o'qish uchun mo'ljallangan guvoh tokenlari va ular olishi mumkin bo'lgan imzolangan jurnal sarlavhasi | | witness.py | Mustaqil guvoh jarayoni: o'z kaliti va jurnal, bosh tekshiruvlari, imzolangan kanal postlari, eksport | | alerts.py | Bildirishnomalar va panelning bildirishnomalar ro'yxati | | logging_config.py | Penceresiz ishga tushirishlar uchun konsol yozuvlari va aylanib turuvchi server diagnostikasi | | static/ | Moslashuvchan interfeys, mahalliy kirish darvozasi, filtrlar, tafsilotlar, eksportlar, hisob sozlamalari | | demo.py | Aniq yorliq bilan belgilangan sintetik jurnal, haqiqiy to'plamdan ajratilgan | Kuzatuv ishlovchilari ulanishdan oldin ro'yxatdan o'tkaziladi. Jonli yig'ish faol mijoz identifikatori, aniq bajarilish holati, yoqilgan manbalar yoki kuzatuv doirasi (papka yoki butun hisob rejimlari yangi suhbatni birinchi yangilanishida manba sifatida qo'shadi) va voqea siyosati bilan nazorat qilinadi. Rad etilgan va almashtirilgan mijozlar jonli yangilanishlarni taqdim eta olmaydi. Xom munosabatlar va a'zolik yangilanishlari ko'rinish chegaralarini saqlaydi. Kiruvchi xabar mazmuni va uning doimiy media vazifasi birgalikda yozib qo'yiladi. Vazifalar asl TL tavsiflagichni saqlaydi va uning xeshini imzolangan xabar kuzatuviga bog'laydi. Jo'natuvchi/tahrirlovchi/o'chiruvchi semantikalari ajratilgan. Har bir ish maydoni bitta hisobni qabul qiladi va o'zining katalogi hamda imzolash identifikatori bilan ta'minlangan. Asosiy ish maydoni moslik uchun ildizda qoladi; qo'shimcha ish maydonlari profiles// yo'lida joylashadi. Bitta egasi token butun o'rnatishni nazorat qiladi; ish maydonlari alohida ruxsatnomaga ega bo'lgan ijara bo'linmalari emas. Jarayon qulflari kataloglarni himoya qiladi; ma'lumotlar bazasi qulflari voqealarni kiritishni ketma-ket amalga oshiradi. Har bir qo'shimcha yozuv FULL sinxron rejimda SQLite WALga sinxron tarzda yoziladi. Voqea yangilanishi/o'chirish to'siqlari oddiy ilova tahrirlariga yo'l qo'ymaydi; fayl tizimi ma'murlari ishonch chegarasi ichida qoladi. API avtorizatsiyasi egalik qiluvchi token hisoblanadi. Kirish amaliyotlari ketma-ketlashtirilgan va vaqt bilan cheklangan. Hisobga yuklashlar maxsus 12 MiB kodlangan-tanaga va 8 MiB dekskodlangan-faylga cheklovdan foydalanadi; oddiy API so'rovlari esa 16 KiB cheklovni saqlab qoladi. Konversiya ishchi ipda (worker thread) bajariladi, yuklamalarni xotirada saqlaydi va autentifikatsiyalangan brauzerga normalizatsiyalangan kirishni qaytaradi. QR-kirish har bir ish maydoni uchun nomzod, qisqa umrli identifikator, kutuvchi vazifa va aniq bekor qilishga ega. Faqat qabul qilingan avtorizatsiya faol mijozga aylanadi. Telegram FloodWait Retry-After qiymati bilan qaytariladi; kreditsialar va xom RPC xato xabarlari API xatolarida oshkor qilinmaydi. Jurnal eksportlari asinxron voqealar tsiklidan tashqarida ishlaydi va har bir ish maydoni bo'yicha ketma-ket amalga oshiriladi. Ular WAL yozuvlari davom etar ekan, barqaror o'qish snapshotini oqimlaydi. Sohbetni olish ishlari alohida hisoblarda bir vaqtda ishlashi mumkin; har bir hisob uning ishi to'xtaguncha band qilib qo'yiladi. To'xtatilgan yoki muvaffaqiyatsiz bo'lgan ish o'z tekshiruv nuqtalarini saqlab qoladi. Muvaffaqiyatli arxivni tekshirish uning ish faillarini tozalashga ruxsat beradi, faqat ZIP, imzolangan reja va holatni qoldiradi. Ish maydoni yig'gichlari jarayon/voqea tsiklini baham ko'radi. Joriy tarix snopshotlari va jonli yangilanishlar bir-birini kesib o'tishi mumkin. Ikkalasi ham alohida kuzatuvlar bo'lib, manba bo'yicha belgilangan; takrorlar jimjit birlashtirilmaydi. Yo'qolgan IDlar, soxta o'chirilgan matn, majburiy a'zolarni sanab o'tish yoki guruhga avtomatik qo'shilish asosida hech qanday xulosa chiqarilmaydi. Operatorlar uchun tushuntirishni [to'plash qanday ishlashi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) va [hisoblar hamda sessiya formatlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) bo'limlarida ko'ring. Tarmoq sozlamalari shifrlangan omborda saqlanadi. Yo'nalishni qo'llash eski klientlarni yopadi va yakunlanmagan kirishni bekor qiladi; keyingi ulanishlar o'sha yo'nalishdan foydalanadi va to'g'ridan-to'g'ri qaytish yo'q. Yangi tashqi kalit o'rnatilganda, har bir ish maydonining Fernet kaliti HKDF-SHA256 yordamida bosh kalit fayli va saqlangan tasodifiy tuzdan hosil qilinadi. Bu maxfiy ma'lumotlarni oddiy matndagi jurnal/media mazmunidan alohida himoya qiladi. Mahalliy demo kirish alohida yaratilgan jarayon imkoniyatidan foydalanadi, hech qachon sozlangan panel tokenidan emas. Chiqarish va qabul qilish aniq demo rejimini, qo'shimcha ish maydonchalarsiz yoki ruxsat etilgan sessiyasiz sintetik ildizni, loopback peer/Host, proxy yo'naltirish sarlavhalarisiz va cross-origin brauzer so'rovisiz talab qiladi. Jonli APIlar bearer autentifikatsiyasini saqlab qoladi va demo rejimida yig'ish o'zgarishlarini rad etadi. --- # Nima sinovdan o'tkazilgan Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/ Jonli Telegram sinovi, avtomatlashtirilgan tekshiruvlar, brauzer tekshiruvlari va hali tasdiqlanmagan narsalar. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Translation coverage: this edition includes material from the English original. Jonli Telegram sinovi, avtomatlashtirilgan tekshiruvlar, brauzer tekshiruvlari va hali tasdiqlanmagan narsalar. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ![Dalil va tasdiqlash](https://phishdestroy.github.io/TgWitness/assets/chapter-evidence.svg) **Yangilangan: 6 noyabr 2026.** Natijalar har bir ishga tushirishda qayd etilgan tahrir, muhit va yuklanishga bog'langan. [Joriy imkoniyatlar](https://github.com/phishdestroy/TgWitness/blob/main/docs/STATUS.md) mavjud ish jarayonlarini tasvirlaydi; ushbu sahifa esa haqiqatan tekshirilgan narsalarni qayd etadi. [Ijro grafiklari](https://phishdestroy.github.io/TgWitness/docs/validation/) · [Imzolangan inglizcha audit](https://github.com/phishdestroy/TgWitness/blob/main/website/validation/audit/REPORT.md) · [Yuklab olinadigan o'lchovlar](https://github.com/phishdestroy/TgWitness/blob/main/website/validation/audit/MEASUREMENTS.csv) | So'nggi dalillar | Natija | Doira | | --- | --- | --- | | Chiqarish auditi · 6-noyabr | 1,461 ta asosiy test o'tdi; 37 ta platforma testlari o'tkazib yuborildi | Manba `92e539af40d8`; ochiq natijalar saqlangan | | Yangi eksportlar · 6-noyabr | 127.713 va 141.781 yozuv/s, to'liq tsikl | Har bir serverda ikkita akkaunt; matn va metadata WARP orqali | | Saqlangan arxivlar · 6-noyabr | 48 arxiv; 3,598,381 yozuv tasdiqlandi | Mavjud arxivlar pinlangan ish maydoni kalitlari bilan tekshiriladi | | Ishonchli jonli · 5-noyabr | CPU yozuvini himoya qilish va WARP tekshiruvlari | Rasmiy ish stoli tizimiga kirish va mahalliy eksport hali ham aniqlanmagan | | Phala / Intel TDX · 4-noyabr | 16ta verifikator tekshiruvlari keyingi ishga tushirishlarda muvaffaqiyatli o'tdi | Tarixiy joylashtirish; CVMda Telegram hisob qaydnomasi yo'q | **Ushbu sahifada** - [Chiqarish auditi va yangi eksportlar · 6 Noyabr 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#release-audit-and-fresh-exports--6-november-2026) - [Trusted Live CPU Ubuntu va WARP · 5 noyabr 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#trusted-live-cpu-ubuntu-and-warp--5-november-2026) - [Jonli Phala bulutini joylashtirish · 4-noyabr 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#live-phala-cloud-deployment--4-november-2026) - [Jonli server jurnal inventarizatsiyasi · 1-noyabr 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#live-server-journal-inventory--1-november-2026) - [Yaqinda o'tkazilgan oflayn va xato kiritish tekshiruvlari · 1 Noyabr 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#recent-offline-and-fault-injection-checks--1-november-2026) - [Jonli Telegram sinovi, to'liq hisob · 29 oktyabr 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#live-telegram-test-whole-account--29-october-2026) - [Parol bilan himoyalangan eksport libarchive yordamida ochildi · 29 Oktyabr 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#password-protected-export-opened-with-libarchive--29-october-2026) - [Jonli Telegram sinovi · 27dan 29gacha, 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#live-telegram-test--27-to-29-october-2026) - [Sun'iy mahalliy quvvat o'lchovi](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#synthetic-local-capacity-measurement) - [Bir million xabarda to'liq matnli qidiruv · 5-noyabr 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#full-text-search-on-one-million-messages--5-november-2026) - [Qolgan malaka](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/#remaining-qualification) ## Chiqarish auditi va yangi eksportlar · 6 Noyabr 2026 Auditorlik tekshiruvi manba kodida v0.9.1 versiyasidan foydalandi `92e539af40d8368d198ff5e040f1d876f2c1310e`, `92e539af40d8-83e41104669e` chiqishi. O'rnatilgan paketning smoke tekshiruvlari uchta serverda muvaffaqiyatli o'tdi. Imzolangan hisobot o'sha paytda kuzatilgan holatni saqlab qoladi. [![Ikki yangi ish yuklamasi uchun olish va to'liq eksport stavkalari](https://phishdestroy.github.io/TgWitness/assets/performance.svg)](https://phishdestroy.github.io/TgWitness/docs/validation/) | Ish yuklamasi | Yozib oladi | Olish | Tsiklni yakunlash | To'liq sikl tezligi | | --- | --- | --- | --- | --- | | Server A · ikki akkaunt | 27,030 | 189.043 s | 211.647s | 127.713 yozuv/s | | Server B · ikki akkaunt | 29,299 | 182.513 s | 206.650s | 141.781 yozuv/s | Ikkala eksport ham resume'siz boshlandi, ilovalar va avatarlar chiqarib tashlandi va nol takroriy yoki qayta ishlatilgan yozuvlar bilan yakunlandi. To'liq tsikl tayyorgarlik, olish, tanlash, qadoqlash va arxivni tekshirishni o'z ichiga oladi. Server A shuningdek himoyalangan suhbatni o'qish tekshiruvini o'tkazdi. A'da to'rtta FloodWait hodisasi va B'da uchta hodisa bajarildi. Ushbu kuzatuvlar umumiy o'tkazuvchanlik kafolatini bermaydi. | Tekshirish | Natija | Malaka | | --- | --- | --- | | Asosiy pytest | 1,461 o'tdi | 37 platforma sakrashlari | | Brauzer / brauzer foydalanuvchi tajribasi / dalil / sayt | 102/66/15/9 o'tdi | Ushbu dasturlar boshqa testlar bilan kesishadi; hisoblar qo'shilmaydi | | Qo'shimcha qo'shish | 124 o'tdi | Talab qilinadigan Chromium sandbox tomonidan bloklangan uchta rasmiy veb-tekshiruv | | API avtorizatsiyasi | 269 yo'nalishlari; 538 so'rovlari muvaffaqiyatli o'tdi | Yo'qolgan kirish ma'lumotlari va bekor qilingan kirish huquqi | | Saqlangan arxivlar | 48dan 48i tasdiqlandi | 3,598,381 yozuv; mahkamlangan ish maydoni kalitlari | | Jonli flot o'qish tekshiruvlari | 40 ta profildan 24 tasi o'tdi | 16ta WARP marshrutlari malaka sinovidan o'tmadi; bu profillar ulanmagan edi | [Imzolangan hisobot](https://github.com/phishdestroy/TgWitness/blob/main/website/validation/audit/REPORT.md) barcha ochiq topilmalarni qayd etadi, jumladan audit qilingan asosiy to'plamdan yo'q bo'lgan e'lon qilinmagan maxfiy suhbat snapshotidagi uchta nuqsonni. Oldingi [ommaviy tarix bo'yicha malaka](https://github.com/phishdestroy/TgWitness/blob/main/docs/EXPORT-BENCHMARK-2026-11-06.md) boshqa tahrir va ish yukini ishlatgan; uning ko'rsatkichlari ushbu taqqoslash bilan birlashtirilmasligi kerak. [Biriktirilgan kalit va verifikator](https://github.com/phishdestroy/TgWitness/blob/main/website/validation/audit/README.md#verify-the-original-files) yordamida asl hisobotni tasdiqlang. Uning imzosi operator hisobotini o'zgartirishdan himoya qiladi. Bu mustaqil tasdiqlash, Telegram muallifligini isbotlash yoki GDPR sertifikati emas. ## Trusted Live CPU Ubuntu va WARP · 5 noyabr 2026 Saqlangan integratsiya testi RunPod CPU mezbonida QEMU ostida faqat CPU ishlatilgan Ubuntu 24.04.5 mehmoni (4 vCPU, 8 GiB) yordamida bajarildi. Yig'uvchi `14e642a5` ni, tekshiruv esa `02072461` ni ishlatdi. Oxirgi tuzatishlar [PR #114](https://github.com/phishdestroy/TgWitness/pull/114) ga `755f78f6` sifatida qo'shildi, uning daraxti sinovdan o'tkazilgan PR boshiga mos keldi. Bu TEE emas edi. - Haqiqiy WARP Connector sog'lomligini xabar qildi; proksi orqali HTTPS WARP va Gateway yoqilganligini xabar qildi. Uchta probe bir xil chiqish manzilini ko'rdi, bu esa doimiy IP kafolati emas. - WARP ulanishini uzish proksi orqali yuborilgan so'rovni muvaffaqiyatsiz qildi. Gateway-service'ning to'g'ridan-to'g'ri HTTPS so'rovi rad etildi. Yozuvchi namespace'da to'g'ridan-to'g'ri IPv4/IPv6, tashqi DNS va Docker'ning o'rnatilgan UDP resolveri bloklandi. - Cheklangan faqat o'qish huquqiga ega provayder tokeni health/connections ma'lumotlarini o'qishi mumkin edi, ammo connector enrollment tokenini o'qiy olmadi. Imzolangan provayder kuzatuvlariga aniq mavjud bo'lmagan namunalar kiritilgan edi. Guvoh operatorning mezbonida ishladi, shuning uchun bu mustaqil uchinchi tomon nazorati emas, balki yozib olish va saqlashni namoyish etadi. - Rasmiy ish stoli autentifikatsiyalanmagan kirish ekrani ochildi. Himoyalangan klaviatura kiritilishi yozib olish paytida rad etildi. Uchta H.264 displey segmenti deko­rlanib, ularning soat qoplamasi tekshirildi. 18 voqeali preflight arxivi tasdiqlandi va belgilangan yozuvchi kalitga moslab saqlab qolindi. - Oxirgi capture testlari Windows va Linux CIda haqiqiy Chromium/FFmpeg bilan 114 holatni muvaffaqiyatli o'tkazdi. Besh ta anchor testi va bog'liqlik bo'yicha maslahat tekshiruvlari muvaffaqiyatli yakunlandi. Boshlang'ich 2 vCPU/4 GiB konfiguratsiyasi bir vaqtda tasvir yaratish yuklamasi ostida vaqt chegarasidan oshib to'xtadi va himoyachi orqali to'xtatildi; bu muvaffaqiyat deb hisoblanmaydi. Qo'lda test hisobiga kirish, mahalliy chat eksporti, haqiqiy gibrid solishtirish va Telegram tomonidan chiqish hali ham kutishda qoldi. Hech qanday taqdim etilgan Telethon sessiyasi import qilinmadi. Ilovalar, avtomatik OCR, mahalliy drand BLS tasdiqlash va Trusted Live TDX tasdiqlovi malaka olmadi. ## Live Phala Cloud joylashtirish · 2026-yil 4-noyabr **Tarixiy natija:** keyingi joylashtirishlar barcha 16ta verifikator tekshiruvlaridan o'tdi, jumladan Intel TDX va tezkor tunnel. Dalillarni qayta ishga tushirish, imzolangan manzilni aniqlash va hisobot vaqt belgilari alohida tekshirildi. Har bir test CVM o'z ijrosidan so'ng olib tashlandi. | Sozlash | Qayd etilgan qiymat | | --- | --- | | Provayder | Phala Cloud · `tdx.small` · US-WEST-1 | | Joylashtirish | `--provider phala --quick-tunnel`; dastlab bo'sh ish maydoni | | Boshlang'ich yig'uvchi | `df7d860c` · v0.8.1 | | Barcha tuzatishlar kiritilgan yig'uvchi | `53a0f7e9` | | Ishlab chiqarish mehmoni | `dstack-0.5.12`; SSH-ga kirish o'chirilgan | | Tashqi xizmatlar | ntfy.sh, GitHub va Intel PCS | | Kuzatilgan xarajat | Yetti CVM, jami taxminan 1.9 AQSh senti; tarixiy test narxlari | Quyidagi ketma-ketlik dastlabki nosozliklar, tuzatishlar va yakunlangan tekshiruvlarni ajratadi. Ushbu CVMlarga hech qanday Telegram hisobi ulanmagan. **Joylashtirishlar 1–2 · provayder farqlari va regressiya tekshiruvlari** The first two deployments found five differences from the simulated Phala Cloud. Private Phala regressions reproduce each difference and fail without its fix: | Phala Cloudda | Tuzatishdan oldin | Tuzatish | | --- | --- | --- | | `compose_file.name` talab etiladi | HTTP 422, hech narsa yaratilmadi | Docker Compose konfiguratsiyasi CVM nomini o'z ichiga oladi | | Bo'sh qiymat ko'rsatilmagan taqdirda, Phala o'lchangan app-comple ga o'zining ishga tushirishdan oldingi skriptini qo'shadi (v0.0.20: Docker login, `docker compose pull`, root paroli, `user_config` dan SSH kalitlari) | `tdx_compose` xato beradi: nashr etilgan Docker Compose konfiguratsiyasidan tashqaridagi kod | app-compose `pre_launch_script` ni `""` ga o'rnatadi; Phala esa uni hisobga olmaydi | | `image` bo'lmasa, Phala `dstack-dev-0.5.12`, rivojlantirish versiyasini, SSH-kirish yoqilgan holda tanlaydi | `server_state` muvaffaqiyatsiz bo'ladi. Faqat uskunani tasdiqlash yozuvi ushbu tasvirdan o'tdi; faqat provayder yozuvi va `tdx_os` uni ko'rsatadi. | Joylashtirish Phala'ning joriy chiqarilishining, `dstack-0.5.12`, ishlab chiqarish versiyasini so'raydi | | dstack gateway o'chirilganda, CVM tafsilotlari hech qachon `instance_id` kodini olmadi | Joylashtirish 30 daqiqa kutadi va muvaffaqiyatsiz tugaydi | Instance ID CVM holatidan o'qiladi | | Qayta ishga tushirish, to'xtatish va ishga tushirish — bu CVM operatsiyalari, ilova reviziyalari emas. | `provider_actions` qayta ishga tushirishlarni ro'yxatga olmadi | Operatsiyalar ham o'qiladi | **Joylashtirish3· tasdiqlash, kirish tekshiruvlari va qayta ishga tushirish dalillari** - CVM `dstack-0.5.12` ni SSH kirish o'chirilgan holda ishga tushirdi. Kollektor yaratilganidan taxminan 1,5 daqiqa o'tib o'z imzolangan manzilini joyladi. Keyin Deploy `tdx_binding` va `tdx_quote` (Intel TCB UpToDate, apparat guvohnoma yozuvi v4, FMSPC `20a06f000000`, xatolik tuzatish rejimida emas, ko'chirilmaydigan, Intel'dan olingan kriptografik tasdiqlash ma'lumotlarini qo'llab-quvvatlaydi), `tdx_compose_hash`, `tdx_compose` (byte for byte) va `tdx_identity` (KMS kalitlari). - trycloudflare.com manzildagi panel tokenisiz yoki noto'g'ri token bilan 401 kodini, panel tokeni bilan esa 200 kodini qaytardi. - `verify` bilan `--source` commit arxivini GitHubga o'rnatish va barmoq izi alohida uzatilgan: server, `server_state`, firewall (yo'lchiqarsiz, ommaviy nuqtasi yo'q), provayder logi, bayonot, barmoq izi, manba xesh, yuklash va beshta `tdx_*` tekshiruvlari o'tkazildi. Cloudflare va `tdx_os` mavjud emas edi, shuning uchun natija TO'LAKAMAS bo'ldi. - Phala API orqali ikki marta qayta ishga tushirish: har safar CVM ikki daqiqadan kam vaqt ichida bir xil yig'uvchi kalit, yangi imzolangan manzil va eski manzil 530-kod bilan javob bergan holda qayta ishga tushdi. `verify` yangi yuklashni va ikkala qayta ishga tushirishni REVIEW (ko'rib chiqish) deb xabar qildi. `--evidence` jurnal imzolarini va uchta ishga tushirishni tasdiqladi, har biri bir xil CVMdan olingan o'z Intel TDX apparat guvohnoma yozuviga ega edi. - `destroy` faqat o'sha CVMni o'chirib tashladi. Shundan so'ng ish maydoni bo'shab qoldi va panel manzili javob berishni to'xtatdi. - Panel ustasi narx tekshiruvi `tdx.small` soatiga $0.058 ni ko'rsatdi. Noto'g'ri kalit oddiy "API kalitini qabul qilmadi" xabarini berdi. **Keyingi tuzatishlar · imzolangan manzilni aniqlash va operatsion tizim o'lchovlari** - Without the address key, `verify` followed the newest well-formed post on the address topic, which is printed in the published compose. One forged post sent it to a host that does not exist, and `statement` failed: a forger could not pass as the collector, but could block third-party verification, for up to 12 hours with a forged future timestamp. The collector now also posts its address signed with its own key, `verify` accepts only such posts when the collector makes them, and posts are ordered by ntfy.sh's receive time. A private cloud-wizard regression replays the forged posts. A CVM runs this only from a commit that contains it, so this run's collector did not sign its address yet and `verify` said so. - `tdx_os` `dstack-mr`siz ishga tushmaydi, uning joriy versiyasida hujjatlarda ko'rsatilgan `measure --json` o'rniga `measure-os` mavjud. Verifikator endi nashr etilgan image va VM shakli, jumladan ACPI jadvallari asosida MRTD va RTMR0-2 ni o'zi hisoblaydi. **Joylashtirish 4 · barcha 16 tekshiruvlari, hisobot muhrlari va qayta ishga tushirishni tasdiqlash** - Deploy bir marta e'lon qilingan `dstack-0.5.12` ni yuklab olib, uni CVM xabar qilgan OS tasviri hashiga moslashtirdi va `tdx_os` o'tdi: MRTD, RTMR0, RTMR1 va RTMR2 QEMU uchun hisoblangan qiymatlarga teng. 8.2.2, 1 vCPU va 2 GiB. Xuddi shu hisob-kitob da'vo qilingan 4 GiB, 2 vCPU, QEMU 9.2.1 yoki ikkinchi tarmoq kartasi uchun boshqa RTMR0 berdi va o'zgartirilgan yadro, firmware yoki buyruq qatori hamda rivojlantirish tasviri uchun muvaffaqiyatsiz bo'ldi. - `verify` o'zining 16 ta tekshiruvining barchasidan, jumladan Quick Tunnel konnektori tekshiruvidan ham muvaffaqiyatli o'tdi, shuning uchun natija PASS bo'ldi. U Belgiya hukumati vaqt belgilash bo'limi TSU 202301 (Belgiyaning ishonchli ro'yxatiga kiritilgan) tomonidan berilgan malakali eIDAS vaqt belgilashi, FreeTSA vaqt belgilashi va verifikator imzosi bilan raqamli muhrlangan HTML va PDF sertifikatini yaratdi; `check-report` ularning barchasini va PDF imzosi tasdiqladi. - Qayta ishga tushirgandan so'ng, `verify --evidence` ikkita ishga tushirishni tasdiqladi, har biri CVM ichida yaratilgan apparat guvohnomasi bilan birga bo'lib, har biri e'lon qilingan `dstack-0.5.12` dan yuklangan; qayta ishga tushirish va yangi yuklash REVIEW bo'ldi. - `destroy` ish maydonini bo'sh qoldirdi. **Joylashtirish 5 · collector-signed discovery va forged-post rad etish** Yig'uvchi `53a0f7e9` commitidan boshlab ishlaydi, u yuqoridagi tuzatishlarni o'z ichiga oladi. - Yig'uvchi o'z kaliti bilan imzolangan manzilini operatorning HMAC posti yoniga joylashtirdi. Keyin mavzuga ikkita soxta post qo'shildi: biri HMAC qiymati nolga teng qilingan, ikkinchisi boshqa Ed25519 kaliti bilan imzolangan; ikkalasi ham 2096 yildagi vaqtni da'vo qilgan. `verify` kollektor kaliti bilan imzolangan manzilni oldi va barcha 16 tekshiruvdan o'tkazdi; muhr yana malakali Belgiya vaqti shtampi, FreeTSA vaqti shtampi va verifikator imzosi bilan edi, va `check-report` ularni tasdiqladi. - Qayta ishga tushgach, yig‘uvchi yangi manzilni imzolab e’lon qildi: `verify` uni darhol, operatorning **Joriy manzilni topish** funksiyasi esa HMAC xabaridan 27 soniya keyin topdi. Ikkalasi ham soxta xabarlarni e’tiborsiz qoldirdi. `verify --evidence` ikki ishga tushirish `dstack-0.5.12` dan yuklanganini tasdiqladi. - Deploy chop etdi: Phala CVMga diskni ham qo'shib qancha to'lov solishini: soatiga $0.06078. ### Panel ustasi va qolgan doira Panel ustasi Phala Cloud'da ikki marta ishga tushirildi: bir marta uning ish API'si orqali va bir marta haqiqiy Chromium brauzeri orqali: narxni tekshirish, **Advanced** ostidagi commit bilan yaratish, barcha oltita tasdiqlash tekshiruvlarining muvaffaqiyatli o'tishi, serverlar ro'yxatida to'langan narx (oyiga 44,37 USD) ko'rsatilishi, **Joriy manzilni topish**, o'lchangan Docker Compose konfiguratsiyasini yuklab olish va o'chirish. Brauzer hech qanday sahifa xatolarini ko'rmadi. Har safar undan keyin ish maydoni bo'sh bo'ldi. Qamrab olinmagan: Phala'dagi Cloudflare domeni, CVM'dagi Telegram akkaunti va `dstack-0.6.1` image. Yaratishdan oldin wizard narxi faqat Phala hisoblash narxi bo'lib, uning API mavjud CVM uchun faqat disk narxini ko'rsatadi; serverlar ro'yxati esa yaratilgandan keyingi hisob-kitob narxini ko'rsatadi. Ushbu bo'limdagi barcha narxlar 4 noyabr 2026-yilda kuzatilgan. 4 Noyabr 2026. ## Jonli server jurnalining ro'yxati · 1 Noyabr 2026 Taxminan UTC bo'yicha 19:15da ketma-ket faqat o'qish uchun mo'ljallangan SQLite `query_only` so'rovlari serverda ishlayotgan o'nta ish maydoni ma'lumotlar bazasidagi voqealarni hisoblab chiqdi. So'rovlar davomida yig'ish davom etganligi sababli, bu ish maydonlari bo'ylab atomik snapshot emas. | O'nta ish maydoni ma'lumotlar bazalarida kuzatildi | Hisob | | --- | --- | | `message.new` voqeasiga kamida bitta ega bo'lgan ish maydonchalari | 8 | | Jurnal yozuvlari, jumladan operatsion voqealar | 1,610,818 | | `message.new` voqealari | 900,232 | | `message.edited` voqealari | 80,683 | | `message.deleted` voqealari | 400,536 | | `message.recovered` voqealari | 53,403 | | `message.snapshot` voqealari | 2,183 | | `media.saved` voqealari | 50,418 | | `media.failed` hodisalari | 5,575 | | `coverage.gap` voqealari | 11 | | WAL fayllari va media fayllarini istisno qilgan holda ma'lumotlar bazasi baytlari | 7,909,003,264 | Ushbu **voqealar soni**, noyob bo'lmagan xabarlar, odamlar yoki media fayllar emas. Bir xil xabar bir nechta ish maydonida paydo bo'lishi mumkin, va tahrirlash yoki o'chirish yana bir jurnal hodisasini keltirib chiqarishi mumkin. `media.failed` tarixiy xato hodisalarini hisoblaydi, hozirgi media navbatini emas. So'rovlar qilgan **yo'q** imzolarni va barcha to'liq hash zanjirini yangidan tasdiqlash 1,610,818 yozuvlarni, yetkazib berish yoki o'tkazuvchanlikni o'lchash yoki har bir Telegram hodisasi qayd etilganligini aniqlash. Bu yerda xabar mazmuni, hisob yoki suhbat identifikatorlari, ish maydoni yorliqlari, kirish ma'lumotlari yoki shaxsiy fayllar e'lon qilinmaydi. Ushbu ko'rib chiqishda alohida sozlangan ommaviy monitor uchta manbani qamrab oldi: bitta javob olish muvaffaqiyatli bo'ldi va ikkitasi `no_response` deb xabar berdi. Ushbu monitor o'nta ish maydoni holati bo'yicha qisqacha hisobot emas. `no_response` degani kuzatuvchi ushbu tekshiruvda javob ololmagan; bu xabar yo'qolishini anglatmaydi. Quyidagi kichikroq 29 oktabr sinovi o'zining aniq imzosi va xesh-zanjir tekshiruviga ega. ## Yaqinda o'tkazilgan oflayn va xato kiritish tekshiruvlari · 1 Noyabr 2026 Ushbu tekshiruvlar badiiy ma'lumotlar va mahalliy fayllardan foydalanadi; ular joriy manba uchun regressiya dalillarini qo'shadi, boshqa jonli Telegram yetkazib berish o'lchovini emas: | Tekshirish | U nimani sinovdan o'tkazdi | | --- | --- | | Source archive | Ikki ta build manba kod baytlari bo'yicha bir xil, lekin fayl vaqtlari o'zgartirilgan holda bir xil ZIP va tekshiruv yig'indisini hosil qildi. Aniq arxivlangan baytlar va fayl hashlar mos keldi; shaxsiy test fayllari esa arxivga kiritilmadi. Simulyatsiya qilingan yozuv xatosi oldingi arxiv va tekshiruv yig'indisini o'zgarmas holda qoldirdi. | | Account export recovery | Ikkinchi ZIP a'zosida simulyatsiya qilingan disk xatosi hech qanday e'lon qilingan yoki qisman ZIP fayl qoldirmadi. Resume har bir imzolangan kvitansiyani baytma-bayt bir xil saqlab qoldi, kutilgan imzolash barmoq izi yordamida mustaqil ravishda tekshiriladigan arxiv yaratdi va sintetik qamrov bo'shlig'ini qisman natija sifatida saqlab qoldi. Scale da'volari tarixlar o'sib borishi bilan vazifa va kvitansiya skanerlarining takrorlanishidan himoya qiladi. | | Minimized disclosure privacy | Sun'iy Unicode nomlari va taxalluslar, o'ralgan metadata, noma'lum jo'natuvchilar va media maydonchalari uch xil identifikatsiya rejimida hamda matnni qoldirish bilan tekshirildi. Maskirlash chegarasi xatosi redaktsiyani jimjit zaiflashtirmadi; asl imzolangan hisob eksporti o'zgarmadi. | | Linux media decoder and OCR | `5a9e0814`-dagi [Linux Docker CI tekshiruvi](https://github.com/phishdestroy/TgWitness/actions/runs/41341200341/job/124951395192) muvaffaqiyatli o'tdi: Ogg/Opus, MP3, M4A, videoli MP4, WAV va FLAC kirish fayllari; soxta-davomiylik va ikkilamchi-fayl-manba nazoratlari; hamda 48 ta o'zgartirilgan parser fiksturasi (34 rad etildi, 14 chegaralar ichida dekodlandi) yaratildi. Haqiqiy Tesseract OCR asl baytlarni o'zgartirmay ishladi. Dekoder va OCR Whisper modeli bo'lmagan, tarmoqdan izolyatsiyalangan konteynerlarda ishladi. | Tekshiruvlar [pull-request](https://github.com/phishdestroy/TgWitness/blob/main/.github/workflows/pr-check.yml) va [to'liq Checks](https://github.com/phishdestroy/TgWitness/blob/main/.github/workflows/checks.yml) ish jarayonlarida ishlaydi. Ular ushbu nosozlik chegaralarini sinovdan o'tkazadi, har bir mumkin bo'lgan saqlash xatosini yoki ma'lumotni oshkor qilish avtomatik ravishda e'lon qilishga xavfsizligini emas. Media tekshiruvi nutqni tanish aniqligini yoki Telegram yetkazib berishni o'lchamaydi. Har bir hosilani ulashishdan oldin ko'rib chiqing. ## Jonli Telegram sinovi, to'liq hisob · 29 oktyabr 2026 Quyidagi testdan so'ng shu akkaunt ishlashda davom etdi. 29 oktyabr kuni soat 12:10 UTCda uning doirasi butun akkauntga (kanallar, guruhlar, shaxsiy suhbatlar va botlar) o'zgartirildi; panel tasdiq so'radi va imzolangan jurnal buni qayd etdi. 17:59 UTCga kelib jurnalda quyidagilar qayd etilgan edi: | Yozib olindi, 27 oktyabr 21:36 dan 29 oktyabr 17:59 UTC gacha | Hisob | | --- | --- | | Jurnal yozuvlari | 9,968 | | Yangi xabarlar | 5,308 | | ular butun akkauntga o'tkazilgach | 3,878 | | O'chirishlar | 784 | | ular TgWitness xabarni saqlaganidan keyin o'chirildi | 596 | | Tahrirlar | 41 | | Qayta tekshirishlar orqali qo'shilgan xabarlar | 2,273 | | Qayta tekshirishda topib bo'lmaydigan xabarlar | 18 | | Xabarlar tarix snopshotlari orqali saqlangan | 242 | | Saqlangan ilovalar | 247 | | Yig'uvchi ishga tushadi | 19 | | Telegram FloodWait tanaffuslari | 26 | - Panelning **Verify** tekshiruvi barcha 9 968 ta yozuvning imzolari va xesh zanjirini tasdiqladi. - Xabarlar 2 ta guruh yoki kanal va 3 ta shaxsiy suhbat hamda botlardan kelgan. **Suhbatlardan** bir xabar tugmasi bosilgan; so'rov va Telegramning javobi jurnalda keltirilgan. - Yangi suhbatlar hisobni qayta ishga tushirganda kollektor hisobni qayta skanerlaganida qo'shildi. Yangi suhbatlarning avvalgi xabarlarini saqlash o'chirilgan edi (`history = 0`), shuning uchun bu yerda qamrab olinmagan. Qamrab olinmagan: munosabatlar, a'zolik o'zgarishlari, foydalanuvchi profillari, xabar yuborish, taklif orqali qo'shilish, proksi-serverlar, bildirishnomalar, Witness bot va bir nechta hisoblarni bir vaqtda boshqarish. Ochiq fayllarda faqat hisob-kitoblar mavjud. ## Parol bilan himoyalangan eksport libarchive yordamida ochildi · 2026-yil 29-oktabr Eksport shifrlash kodi (WinZip AES-256, 7-Zip va WinRAR o'qiydigan format) bilan yaratilgan arxiv Windows `tar` (bsdtar 3.6.2, libarchive) yordamida ochildi. To'g'ri parol bilan chiqarilgan fayl original SHA-256 bilan mos keldi; noto'g'ri parol esa "Incorrect passphrase" xabari bilan rad etildi. 7-Zip va WinRAR o'zi ishga tushirilmadi. ## Telegram jonli sinovi · 2026 yil 27–29 oktyabr Ichki API juftlik havzasi orqali tizimga kirgan bitta haqiqiy Telegram akkaunti **27 oktyabr 21:36 UTC**dan**29 oktyabr 05:15 UTC gacha** bo'lgan davrda bitta superguruhni yozib oldi. Ushbu davrda kollektor 12 marta ishga tushirildi. | Yozib olindi | Hisob | | --- | --- | | Jurnal yozuvlari, jumladan yurak urishlari va xizmat yozuvlari | 2,385 | | Yangi xabarlar | 1,291 | | O'chirishlar | 472 | | ularning matni TgWitness tomonidan saqlanganidan keyin o'chirildi | 347 | | Tahrirlar | 12 | | To'xtatilgan paytda o'tkazib yuborilgan xabarlar qayta tekshiruv orqali qo'shildi | 12 | | Saqlangan ilovalar | 17 | | Ilovalar yuklab olinmagan (yuklab olish o'chirilgan yoki yuklab olinadigan fayl yo'q) | 14 | | Telegram FloodWait qayta tekshirishlar paytida har biri 3 soniyaga to'xtaydi | 8 | - Jurnalning ommaviy kaliti bilan tekshirilganda, barcha 2 385 ta yozuvning imzolari va xesh zanjiri tasdiqlanadi. - Qayta ishga tushirilgandan so'ng, yig'uvchi saqlangan yangilanish holatidan (`pts`) davom ettiradi va Telethon qoldirilgan xabarlarni to'ldiradi; keyingi qayta tekshiruv esa hanuzgacha yetishmayotgan xabarlarni qo'shadi. - Har bir FloodWaitda kollektor so'ralgan vaqtni kutib, keyin davom ettirdi. - Hisob imzolangan holda qoldi va 29 oktyabrda xuddi shu sessiya qayta ulandi. Ushbu test quyidagilarni qamrab olmaydi: bir nechta akkauntni bir vaqtda ishlatish, administrator rollari, proksi-serverlar, bir necha soatdan ortiq davom etadigan uzilishlar va to'liq [jonli qabul qilish protsedurasi](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md). Ochiq fayllarda faqat quyidagi sanalar mavjud: hech qanday akkaunt yoki suhbat identifikatorlari, xabarlar yoki kirish ma'lumotlari yo'q. ## Sun'iy mahalliy quvvatni o'lchash Private synthetic capacity run: 10,000 events across 100 chats. | Metric | Kuzatildi | | --- | --- | | Kirish | 100 ta sun'iy tanlangan manba bo'ylab 10 000 ta sintetik xabar hodisasi | | Xabar matni | 400 belgilar; media yoki tarmoqsiz | | Ma'lumotni qabul qilish | 53,273 soniya; soniyada 187,7 voqea | | Qo'riqchi kechikishi | p50 4.162 ms; p95 7.784 ms; maksimal 129.118 ms | | ZIP eksporti | tracemalloc yoqilganda 19.868 soniya | | Python eksporti bo'yicha izlangan maksimal ajratmalar | 0.51 MiB; RSS jarayonini bajarilmaydi | | ZIP hajmi | 4,610,962 bayt | | Mustaqil tasdiqlash | Barcha 10 000 voqea tasdiqlandi | Bu Windows mezbonidagi mahalliy ketma-ket yozib olish/eksport yo'lini o'lchaydi. U MTProto yetkazib berishni, bir vaqtda bir nechta hisoblarni, Telegramning cheklovlarini, media fayllarni, uzoq muddatli ish yukini yoki haqiqiy suhbatlarning kafolatlangan sonini o'lchamaydi. Ushbu o'lchov yakuniy oflayn vaqt tamg'alari vositalaridan oldin amalga oshirilgan bo'lib, u o'lchangan xabar yo'lini o'zgartirmaydi. ## Bir million xabarda to'liq matnli qidiruv · 2026-yil 5-noyabr Komanda: `python tools/bench_fulltext.py --messages 1000000 --work ` A deterministic signed journal of 1,000,000 synthetic messages in 200 chats (Russian word forms, Ukrainian, English, Chinese, Japanese, links and handles) was indexed in 71 seconds; the index took 58 MiB beside a 1.50 GiB journal. Best-match searches took 9 to 190 ms (median), against 2.4 to 3.2 seconds for the previous substring search. Full results, hardware and limits: [Full-text search](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/#benchmark). Private compatibility tests also verify a frozen signed archive made before full-text search with the current verifier, and a current archive with the frozen archive's own `verify.py`. ## Qolgan malaka Saqlangan jonli jurnal haqiqiy yig'ish, tahrirlar, o'chirish bildirishnomalari, ilovalar, qayta tekshirishlar va tezlik chegaralashni boshqarishni qayd etadi. U to'liq yetkazib berilishni yoki rollarning ko'rinishi, reaksiya qiluvchi aktyorlar, uzoq muddatli FloodWait, hisob taqiqlanishi va tarmoq/jarayon uzilishidan tiklanish bo'yicha nazorat matritsasini aniqlamaydi. QR-token chiqarilishi yakunlangan mobil QR tasdig'idan alohida bo'lib qoladi. Docker/Compose va o'rnatish tekshiruvlari CIda qayd etilgan; haqiqiy Phala joylashtirish va tashqi vaqt belgilari tasdig'i yuqorida tavsiflanadi. Ular barqaror yuqori yuk, to'liq jonli platforma/rol matritsasi, mustaqil xavfsizlik ko'rigini, uzoq muddatli arxivlashtirishni tasdiqlash yoki sud-tibbiyot sertifikatini ta'minlamaydi. Saqlangan MTProto holati va orqaga qaytish (catch-up) amalga oshirilgan; atom yo'qotishsiz jonli qayta ijro etish hali amalga oshirilmagan. Yangi backfill commitlari xabarlar va kursorlarni atomik tarzda kiritadi hamda mavjud Yaqinda bajarilgan amallarni saqlab qoladi, lekin uning sintetik qamrovi jonli malaka olishdan farq qiladi. Nazorat qilinadigan malaka olish matritsasi uchun [jonli qabul qilishni](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md) ko'ring. [Ommaviy audit papkasi](https://github.com/phishdestroy/TgWitness/blob/main/website/validation/audit/README.md) faqat imzolangan hisobot va umumiy o'lchovlarni o'z ichiga oladi. Batafsil operatsion kvitansiyalar, xom yozuvlar va hisob ma'lumotlari shaxsiy bo'lib qoladi. `docs/assets/`dagi ilova skrinshotlari badiiy namoyish ma'lumotlaridan foydalanadi. --- # Litsenziya va arxitektura nomuvofiqligi to'g'risidagi ogohlantirish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/license/ TgWitness hamma uchun MIT litsenziyasi ostida taqdim etilgan va uning arxitektura jihatdan Taylor Wessing ish jarayoni bilan mos kelmasligi. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) TgWitness hamma uchun MIT litsenziyasi ostida taqdim etilgan va uning arxitektura jihatdan Taylor Wessing ish jarayoni bilan mos kelmasligi. TgWitness [MIT litsenziyasi](https://phishdestroy.github.io/TgWitness/LICENSE) ostida tarqatiladi. Bizning pozitsiyamiz litsenziya shartlariga hech qanday qo'shimcha kiritmaydi. > Imzo yolg'onni haqiqatga aylantirmaydi. > > > > TgWitness korporatsiyalar, yuridik firmalar yoki ism oldiga "Dr." qo'yish orqali keyingi barcha ma'lumotlarni haqiqiy deb hisoblaydigan shaxslar uchun mos emas. Unvonlar, bosh qog'ozlar va imzolar dalillarni bekor qila olmaydi. > > > > Agar ish jarayoningiz mijoz to'lagan xulosadan boshlanib, yozuvni unga mos ravishda yuritishni talab qilsa, demak siz boshqa vositani izlayapsiz. TgWitness yozuvni saqlash va uni tekshirish uchun ochiq qilish maqsadida yaratilgan. > > > > O'sha "doktorlar" o'z korporativ mijozlarining balans varoqlariga g'amxo'rlik qilsin. Unvon yolg'onni davolamaydi. > > > > Matematika muzokara qilinmaydi. [Manba yozuvi](https://phishdestroy.io/steam_dossier/taylor_wessing) · [Axloqiy bildirishnoma va tarixiy uzluksizlik](https://phishdestroy.github.io/TgWitness/uz/docs/reference/notice/) [To'liq MIT litsenziyasi](https://phishdestroy.github.io/TgWitness/LICENSE) · [Loyiha](https://github.com/phishdestroy/TgWitness/blob/main/README.md) · [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Wiki](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Home.md) --- # Operator mos kelmasligi to'g'risida ogohlantirish Canonical page: https://phishdestroy.github.io/TgWitness/uz/docs/reference/notice/ Taylor Wessing bo'yicha bizning operator bildirishimiz va uning manba yozuvi. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Taylor Wessing bo'yicha bizning operator bildirishimiz va uning manba yozuvi. **PhishDestroy · TgWitness loyihasi bildirishnomas** [Manba yozuvi](https://phishdestroy.io/steam_dossier/taylor_wessing) · [Asl E'LON](https://phishdestroy.github.io/TgWitness/NOTICE) ## ⚖️ Axloqiy ogohlantirish va tarixiy uzluksizlik Yaqinda biz ma'lum yuridik firmalar — xususan Dr. Tobias Schelinski va Dr. Patrick Vincent Zurheide uchun — matematika va ob'ektiv faktlar ahamiyatsiz ekanligini bildik. Korporatsiyalarga GDPR talablariga rioya qilmaslikni tijorat xizmati sifatida sotish, o'zingiz esa oddiy ma'lumotlarni boshqarishni uddalay olmasligingiz – bu huquqiy ekspertiza emas. O'zingizni qonun deb o'ylash yoki soxta da'voga elita imzosi yolg'onni sehrli tarzda haqiqatga aylantiradi, degan xayol ostida harakat qilish texnik beqobiliyatni yashira olmaydi. Ushbu vosita quyidagilar hukmron bo'lgan yurisdiktsiyalarda ishlashga mos kelmaydi: - Korporatokratiya - Xususiylashtirilgan yoki tijorat adolati - Plutokratiya - Kleptokratiya va institutsional korrupsiya Maxsus ta'kidlash: Dr. Patrick Zurheide, Dr. Tobias Schelinski va "Unutilish huquqi"ni o'z ma'lumotlarni qayta ishlashdagi xatolarini yashirish, institutsional kelib chiqishlarini tozalash va tarixiy yozuvlarni o'chirish uchun qurolga aylantirishga urinayotganlarga: > Taylor Wessing (Dr. Tobias Schelinski & Dr. Patrick Vincent Zurheide) → Wessing & Berenberg-Gossler → Stonewall Top 100 → Dr. Graf von der Goltz Dr. Wessing & Partner (1957 yildan beri) → Rüdiger Graf von der Goltz → 175-moddaning 1935 yildagi tahriri MIT litsenziyasiga qat'iy rioya qilish maqsadida biz ushbu dasturiy ta'minotdan foydalanishni cheklamaymiz. Biroq aniq bo'lsin: korporativ shartnomalar, huquqiy qo'rqitish va raqamli o'chirish talablari tarixni o'zgartira olmaydi, nasl-nasabni qayta yozolmaydi yoki haqiqatni yashira olmaydi. [MIT litsenziyasi](https://phishdestroy.github.io/TgWitness/LICENSE) · [Taylor Wessing bo'yicha pozitsiyamiz](https://phishdestroy.github.io/TgWitness/uz/docs/reference/license/) · [Dalil modeli](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/) [Loyiha](https://github.com/phishdestroy/TgWitness/blob/main/README.md) · [Hujjatlash](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Wiki](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Home.md) --- # TgWitness Changelog & Release Notes Canonical page: https://phishdestroy.github.io/TgWitness/docs/reference/changelog/ Read TgWitness changes by version, including unreleased work. Check release notes before assuming a source feature is included in an installed package. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/llms.txt) Translation coverage: this edition includes material from the English original. Har bir versiyadagi barcha o'zgarishlar, hali e'lon qilinmagan o'zgarishlar ham. [TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [Documentation](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [Project reference](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) ![Project reference](https://phishdestroy.github.io/TgWitness/assets/chapter-project.svg) **On this page** - [Unreleased](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#unreleased) - [0.9.1 preview · 5 November 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#091-preview--5-november-2026) - [0.9.0 preview · 4 November 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#090-preview--4-november-2026) - [0.8.1 preview · 2 November 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#081-preview--2-november-2026) - [0.8.0 preview · 2 November 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#080-preview--2-november-2026) - [0.7.1 preview · 1 November 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#071-preview--1-november-2026) - [0.7.0 preview · 31 October 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#070-preview--31-october-2026) - [0.6.1 · 27 October 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#061--27-october-2026) - [0.6.0 · 27 October 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#060--27-october-2026) - [0.5.1 · 27 October 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#051--27-october-2026) - [0.5.0 · 26 October 2026](https://phishdestroy.github.io/TgWitness/uz/docs/reference/changelog/#050--26-october-2026) ## Unreleased - Isolate request-body capacity and token-family lockouts, set Secure download cookies behind trusted HTTPS proxies, limit pending tickets per access, and expose journal write failures. - Add an English Secret Chat demo with fictional requests, replies, attachments and retained deletion notices. Document the separate development implementation and its open defects; the demo does not enable Telegram connections. - Remove the unused one-shot exporter and check recovery against the current exporter. Reject unexpected or repeated message IDs in recheck responses. - Combine concurrent exports with resumable Standard API and Takeout acquisition. Each job retains its own progress, timings and signed checkpoints; accounts remain reserved until that job stops. Include the account controls, batch import and report-verification updates in the same build. - Add offline `VERIFY.cmd` / `VERIFY.sh` launchers, plain-language verification explanations and saved UTF-8 transcripts to signed exports in all 25 panel languages. Build a separate Windows verifier with an embedded runtime and a language menu. Unpinned signers remain unconfirmed; successful integrity verification does not establish admissibility. - Add optional jurisdiction guidance for 25 countries to Report Studio and exported assessments, with separate civil/criminal sources, local-language summaries and next steps derived from the actual package. Guidance remains a research draft, does not raise assurance, and is excluded from reusable layout profiles and inherited sharing-copy settings. - Allow the pinned Russian morphology dictionary resources in Windows portable builds while continuing to reject unrecognized files in dependency data directories. - Keep missing-on-recheck observations separate from deletion notices in HTML, JSON and PDF counts and viewer labels. Do not claim unscoped deletion IDs were never saved when their chat is outside the current observation scope. - Record multiple deleted IDs as a deletion batch without inferring a whole-history clear, the deleting participant, or deletion for everyone. Relabel legacy history-clear events without changing their signed records. - Publish the one-command installer only after application and security checks pass for the exact main commit and the signed package passes Ubuntu local/HTTPS service and Windows PowerShell acceptance. Keep the previous download when checks fail or time out. Add authenticated tests of the actual public installer URLs. - Preserve `previous_hash` in the signed-record preview even when its hexadecimal digits resemble a payment card number. Secret masking still applies to message content; the stored record is unchanged. - Reconstruct compact chat snapshots consistently in MCP, retain unknown fields, and distinguish capped lists from removals. Resume date scans, preserve topic names across history reads, and bound image previews. Apply metric choices to filtered reports and count historical service messages separately. - Plan sealed exports against the remaining session time, offer smaller selections, update progress estimates and reserve time for packaging. - Compare every message field, validate record counts and structure, enforce CLI verification options, and display OpenTimestamps states separately. - Close coverage on worker failure, bind heartbeats to the capture run, and verify TDX signing-key binding and supported component statuses. - Add read-only MCP tools (preview): `get_messages_by_date` (one calendar day in a named time zone, computed server-side), `get_pinned_messages`, `get_chat_stats` with `gap_summary`, `get_topics`, and `get_media`, which returns a verified, downscaled image preview anchored to its SHA-256 and `media.saved` record. Every MCP tool now declares an output schema. New connections include these tools; existing connections keep the tools they were issued with. - Show each account's selected route and checked exit address, group session controls, and retain interface preferences when adding an account. Record connection changes without repeating identical background checks. Validate withheld-marker contents and reply states in minimized exports, including rejection of a missing-source label for an included record. - Update collection-mode instructions and Russian guidance. Allow a bounded publication-settling interval while requiring exact installer bytes. - Mark messages left out of a minimized disclosure (preview): inside each disclosed chat, withheld messages appear as content-free markers naming the selection rule, one per run or one per message, and disclosed replies state whether they answer a disclosed message, a withheld one or one that is not in the source export. The package format becomes `tgwitness-account-disclosure-v2`; `verify.py` rejects markers with content and replies pointing at missing records, and still verifies version 1 packages. - Repeat gap analysis with the settings carried by the signed export, count each service-message number once, and bound account estimates to the measured interval. Require explicit whole-account scope, retain pause/resume boundaries, and interrupt expensive archive scans at their time budget. - Add missing message numbers (preview): `coverage.json`, the HTML and PDF reports, `verify.py` and the archive's `get_capture_status` measure numbers Telegram assigned and this collector never saw, per channel or supergroup and for the account-wide sequence of private chats, bots and ordinary groups during whole-account collection. Each result states whether it applies and why, lists its parameters, and anchors listed gaps to the neighbouring observations. **Parameters → Gap analysis** sets the listed gaps, the account-wide sequence and an optional service-message estimate that is never subtracted. A gap names no actor and no reason. - Record in the signed message when self-destructing media is fetched despite a type or duration rule (`media_capture.rule_override`), with the limits that still applied. - Add chat-state snapshots (preview): while observing, every enabled source is read periodically and saved as a signed `chat.state` record with title, description, counts, pinned messages, administrators with rights, and gifts on channels and profiles, plus the differences from the previous snapshot. Unpinning, rights changes and gift conversions or upgrades without a service message become visible. Parts Telegram refuses are named and carried forward, never reported as removed. **Parameters → Chat state** sets the interval, pause and parts. - Add anomaly indicators to evidence reports (preview) as registered, versioned processors in `tgwitness/metrics/`: first-time posters per day with flagged injection-like days, service messages among message numbers, joins and departures per month, and pins and unpins per month. Reports list every processor that ran with its version and print its method; **Parameters → Report metrics** chooses them. - Keep ranked-search pages within the first 1,000 results regardless of page size, order OCR/transcription results before pagination, and retain exact match positions when Unicode expansions and invisible-character removal cancel each other's length changes. - Keep photo downloads on the still variant named by their metadata and hash manifests, including after file-reference renewal. Reject truncated photo/chat attachments and corrupt reused files instead of counting them as saved. Check recovered multi-account message IDs against missing intervals without expanding large gaps. - Release a session's local connection lock after transport shutdown, including when a disconnected client was already removed from the workspace. Cancelling the waiting operation cannot release the lock early, and closing an older session cannot unlock a different current key. - Apply a chat export's skip/hash-only choice to recovered messages and profile photos, and record that choice in the acquisition metadata. Reject changed messages before fetching attachments in the separate files stage. Count missing message numbers as intervals so sparse histories do not exhaust memory, including during a cancellable full recheck. - Preserve available self-destructing photos, videos and files in the API journal with a dedicated immediate queue, explicit TTL/view-once labels and signed saved/unavailable/not-saved outcomes. Block read receipts in the API client, including batches and wrapped requests. Keep byte limits, disk reserves and Telegram backoff; saved bytes do not establish human viewing. - Preserve image-rendered Unicode emoji in official Web message text, reply previews, reactions and derived page text without changing the client DOM. A live account test exposed the omission; video and saved pages already retained the image. - Improve chat-export Takeout, unreadable-message recovery, shared absent-number rechecks and bounded range retries. Preserve observed deletions in export scope, compare verified archives, and distinguish archive integrity from an independently confirmed signer. - Protect imported sessions from remote logout, close idle connections and prevent simultaneous reuse of a session key. Add explicit session management and masked two-step password entry; cancellation or switching workspaces prevents submission. Read single-account export messages before their separate attachment stage. - Keep source export and AI actions disabled while local source search is pending, empty or has failed; clear stale previews before the next search. Exercise delayed replies explicitly in browser checks. - Use unambiguous synthetic privacy identifiers and report the exact marker/context on handover-test failures, avoiding accidental matches inside report metadata. - Add an in-panel comparison of collection methods and explain account task ownership beside full-history controls. Refresh source-version badges, qualification records and Trusted Live network results; check version labels before publication. - Add [full-text search](https://phishdestroy.github.io/TgWitness/uz/docs/reference/search/) (preview): Russian and Ukrainian word forms, English stems, Chinese and Japanese phrases without spaces, exact phrases, domains in hidden links and buttons, @usernames, wallets and phones, filters for chat, sender, message ID and observation period, ranked with BM25. The index is derived from the signed journal, bound to its latest record hash, never exported, and can be kept on disk, in memory only or turned off. Recognized text is indexed in memory only and labelled as machine recognition. - Ask the archive retrieves the best matches from the full-text index when it is complete, keeps the 24-source limit, and cuts long texts around their match. MCP `search_messages` accepts `ranked=true`. - Add `tgwitness index status|rebuild` with JSON output on stdout and stable exit codes. - Fix ranked search paging: `next_offset` is now returned when more matches exist, through `/api/search`, MCP `search_messages` and Ask the archive's partial marker. Paging stops at the first 1,000 results. - Fix Ask the archive failing on questions longer than 24 words or 200 characters. The full-text query keeps the question's first distinct words; a query the index cannot read falls back to exact-text retrieval. - Centre excerpts on the match in long texts that hide zero-width characters between letters. - Build the website when a language lacks new translations: untranslated blocks stay in English with the page notice and are listed by the build. - Add the [command line](https://phishdestroy.github.io/TgWitness/uz/docs/reference/cli/) (preview): `tgwitness search`, `context`, `messages`, `stats` and `export` with `--json` and stable exit codes, reading a stopped workspace directly or a running panel through a scoped, revocable archive connection. Add `.agents/skills/tgwitness-cli/SKILL.md` for agents. - Add the `get_activity_stats` archive tool, also offered over MCP: messages by UTC hour and weekday, peak days, edit and deletion shares, senders, domains and @handles, with coverage gaps. Computed on request, not stored. - Add the `export_messages` archive tool for the command line: saved observations streamed as JSON Lines in journal order, with full text and a completion record. It is granted only when selected; existing connections keep the tools they were issued with. - Recheck archive access before every streamed record, including completion. Revoked or expired connections end without a completion record; lazy export reads share the archive worker limit and timeout. - `tgwitness index` and the new commands find the data directory of the installation that runs them. ## 0.9.1 preview · 5 November 2026 - Keep message and attachment outcomes visible after single-chat sealed capture, including missing data, failed files and unfinished downloads. Translate final status when changing language after shutdown, and clear connection or export errors once they recover while retaining rejected-action and unconfirmed-revocation warnings. - Update the pinned OAuthLib dependency to 4.0.1 for CVE-2026-49272 and regenerate the runtime, browser and MCP hash locks. - Show in-flight attachment bytes without counting them as preserved evidence, reset progress on retries and clear it on pause. Keep official-client chat controls disabled during QR/2FA login and until a chat is available. Explain that Takeout approval requires another previously signed-in device. Bound CI dependency installation and avoid the stalled Azure package mirror. - Add explicitly selected direct networking for official Web capture through GitHub Actions. Proxy remains the default and never falls back to direct. The panel and signed verification report disclose direct IP exposure, and verification rejects a mismatch between the selected route and the hosted network. - Add an optional official Telegram Web observation mode with passive or sequential paced viewing, a fresh profile, restricted UI actions, login-excluded video and signed rendered observations. A required proxy bridge prevents direct fallback; exit changes stop recording. The GitHub Actions mode uses the approved sealed workflow and recipient encryption. - Bind official recordings to independently saved source/settings, check video segment order and clean endings, record fresh drand rounds and support independent public-relay comparison. Report unfinished procedures, unconfirmed logout and the limits of local or Cloudflare assurance explicitly. See [Official client witness](https://github.com/phishdestroy/TgWitness/blob/main/docs/OFFICIAL-WITNESS.md) for scope and validation. - Add opt-in Trusted Live preview: isolated official Desktop/Web sessions, native JSON preservation, guarded visual recording, per-chat continuity annotations, and verifier-recomputed reports. Supply a Linux network guard with no direct fallback, periodic proxy-routed drand observations, and optional independent read-only Cloudflare samples. Account/WARP/TDX qualification remains pending; see `docs/TRUSTED-LIVE.md`. - Make sealed export modes explicit: Telegram Takeout by default, regular API account export, or a single-chat event journal, with differences and limits shown before collection. Select multiple chats, save agreed settings, verify them with `--expected-selection`, and reject incomplete account exports with `--require-complete`. Correct the outdated one-chat-only hosted documentation. - Preserve signed message pages before requesting files or hashes. Resume from frozen history, retain completed attachments, and finish an interrupted export with explicit gaps when time or disk is limited. - Add Telegram Desktop compatible JSON/HTML views alongside authoritative signed data. GitHub capture supports full-account and selected-chat exports through regular API or Takeout, with chat types, dates and media settings. - Deliver large GitHub archives in encrypted parts with a signed, attested manifest and verified local assembly. Remove the fixed 4 GiB delivery failure without omitting preserved evidence. - Retry transient pinned OCR source downloads without relaxing checksum checks. Retry brief Windows file-sharing failures when saving private state. - Configure account exports before collection: select chats and media types, exclude avatars by default, and choose downloads, Telegram range hashes or metadata only. Keep a shared attachment budget and record incomplete files explicitly. - Show Takeout approval requirements and retry deadlines before collecting; check approval again without replacing the waiting session. Phone, QR and existing-session login retain their own authorization flow. - Save Telegram-provided SHA-256 ranges with file representation and data-center metadata. Compare them against locally supplied files; Telegram identifiers and access hashes are not treated as content hashes. - Collect message history across selected chats before processing attachments when messages-first mode is enabled. Preserve the journal in a compact export when full HTML or attachment packaging exceeds the remaining capacity. - Stream sealed delivery encryption without a second full plaintext archive. Remove interrupted ciphertext, preserve the original evidence for retry, and keep capture deadlines across runner steps with time reserved for delivery. - Require sealed-container validation in the release workflow. Phala deployment status now distinguishes verified, incomplete and review-required attestation instead of inferring trust from the provider name. - Validate every sealed-container build input against its pinned source. Retry transient package downloads up to three times while retaining signature, SHA-256 and exact-package checks before offline installation. - Include the hash-export configuration examples in source archives and preserve the translated documentation and required site assets from the latest main revision. - Keep the current tunnel address when an older signed address post is replayed. Signed posts are ordered by their signed time; unsigned posts use the relay's receive time. - Trust only the Caddy proxy on the private Docker HTTPS network and normalize client addresses for authentication limits. - Keep operator IP addresses out of new signed access events, hide administrative payloads from shared views, and enforce workspace and export ownership boundaries. - Reject duplicate JSON keys, prepended ZIP content and HTML injected into report seals; distinguish pinned witness keys from pinned collector keys. ## 0.9.0 preview · 4 November 2026 - Reserve each account exclusively for monitoring, history or an export. Serialize Telegram RPCs and persist full FloodWait deadlines. - Add durable distributed chat exports with date/language/reply filters, bounded labelled context, signed chunks and explicit pause/resume. See [Distributed chat export](https://github.com/phishdestroy/TgWitness/blob/main/docs/DISTRIBUTED-EXPORT.md). - Keep account reservations until every export worker has stopped, including repeated pause requests and sibling worker failures. History loading in sealed sessions also reserves the account exclusively. - Add participant timelines from saved observations: names, membership, explicit deletion flags and message activity. Profile refreshes are bounded; optional presence recording preserves unavailable or expired status as unknown and does not attribute online activity to a chat. - Save, import and reuse report layout profiles without copying case details or report filters. Profiles are validated and isolated by workspace. - Automatically offload eligible attachments to configured external storage under disk pressure, with reserve-space checks, compression, optional encryption and full readback verification before local eviction. Journals remain local. - Make the recording settings and chat tabs fit narrow screens, including wider system fonts, and fix profile controls and localized labels. - Include reviewed website assets in source archives and verify conditional dependency versions in SBOM inventories. - Phala Cloud deployments work on Phala Cloud itself (first real run, 4 November 2026): the compose carries its name, Phala's own pre-launch script is kept out of the measured app-compose, the production OS image is chosen instead of Phala's development default, the instance ID is read from the CVM state, and restarts from the CVM's operations count in `provider_actions`. Private Phala regressions simulate each of these. - `tdx_os` without outside tools: the verifier downloads the published dstack OS image once, matches it to the hash the CVM reports and computes MRTD and RTMR0-2 itself, the ACPI tables QEMU builds for the VM's shape included. A development image, other firmware, kernel, command line, memory, vCPUs or devices fail. Each journal start is checked the same way. - Attestation certificate for Phala deployments: `verify --report` also writes HTML and a signed PDF, sealed by a qualified eIDAS time stamp from the Belgian government's time-stamping authority, a FreeTSA time stamp and the verifier's own key; `check-report` checks the seal. - Quick tunnel addresses are also posted signed with the collector key, so a verifier is not misled by forged posts on the address topic; on Phala Cloud the tunnel check passes, since its connector runs inside the measured compose. ## 0.8.1 preview · 2 November 2026 - Runtime, sealed and media containers moved to pinned Wolfi/glibc with Python 3.12 and hash-locked system packages (AMD64 + ARM64). Image scans are clean of HIGH/CRITICAL. - Tesseract 5.5.4 built from verified source, English and Russian data pinned. - Release checks now cover real OCR, offline transcription, signed multilingual PDFs and container restrictions. The source archive includes all container build inputs. - **Extras → Independent capture** in the English panel: browser/AyuGram recorders with encrypted tokens, pinned keys, tab selection, start/pause, snapshots, checkpoints and verified ZIP downloads. Everything is off by default. - New optional `tgwitness-capture` package: Chromium PNG/MHTML snapshots, AyuGram SQLite copies, optional silent video, Ed25519 event chains, signed ZIP/HTML reports and a standalone verifier. Each recorder has its own key and storage. - Fixed Phala installs: source bundles were missing the capture package. ## 0.8.0 preview · 2 November 2026 **Reports** - Report studio: eight designs (Classic, Editorial, Briefing, Analytics, Technical, Overview, Reading series, Ledger & margin), live preview, HTML and native signed PDF. Switching designs keeps filters, charts and notes. - Pick report data by chat, author, date and event type and preview it before saving. Edits show before/after, deletions show what was saved earlier. - Reports look like proper dossiers now: cover, key figures, evidence map, numbered findings, timeline. PDFs get an A4 cover with QR, bookmarks and page refs. - Each report explains what its conclusions rest on: export-time checks, observations, missing material, how to check it independently (EN/RU/DE wording). - Send, edit and observed times are shown separately, plus replies, threads and metadata. **Case Board and groups** - Private Case Board: signed bookmarks, exact-version highlights, action slices, collections, threaded comments and statuses. Team notes stay apart from observations; the verifier checks board exports too. Export permission alone doesn't reveal team notes. - Account groups share settings. Members follow the group, an account's own value wins until reset. Changes show which accounts they hit and ask before overwriting. Access can be granted to a whole group. - Group screen at `/groups/`: accounts, problems, shared chats, group export. **Setup and connection** - Six-step first setup and one Settings page with simple/standard/expert levels, in all 25 languages. Each step has its own URL, Back works. - The setup asks whether the account is a separate one; a main account only records chosen chats. After Start it shows that connection, events, sources and files work. - Guided Connection screen: pick accounts, prepare and check a route, then apply. Direct, own proxies, public MTProto pool, WireGuard profiles and portable WARP. - Automatic connection tries public MTProxy, then WARP, then direct (if allowed) and shows a status indicator instead of failing silently. - Video duration limits in file policies. **Panel and safety** - No more one-click accidents: pausing, excluding and removing sources are confirmed, sending from a chat needs "Write as @account" first, route changes while observing offer to pause. - One set of counters everywhere (deleted with text, deleted before saving, missing on recheck). - Account files are inspected before connecting. URL, workspace and account always agree, a mismatch blocks actions. Chats open read-only and mask detected secrets. - Downloads fall back to normal browser downloads, big archives stream through one-time cookies. Prepared exports keep size, SHA-256 and "Download again". - Panel token rotation keeps the new session alive. Temporary network failures offer Retry. - Panel dialogs instead of `window.confirm`, journal paging fixed, lots of small UI fixes. - Public-channel showcase: expiring read-only links with redacted authors and signed snapshots. **Servers and evidence** - Extras → Server 24/7: a Hetzner server from the panel with a quick tunnel or your own domain. `python -m tgwitness.cloud destroy` cleans everything up. - Phala Cloud option: the collector runs in an Intel TDX confidential VM, `verify` checks the attestation up to Intel's root. - Gateway DNS (`--gateway-dns`): the server only resolves through Cloudflare Gateway. - Optional drand rounds and Telegram device lists in evidence mode. - Setup by goal: four questions, suggested settings, credibility and reliability scales. **Other** - Notification service catalog with icons, optional operator control bot, Discord witness posts. - Storage separates backups, verified file offloading and evidence retention. - AI previews show the endpoint and outside route. - Pull requests run both panel suites, including Firefox and WebKit downloads. Release packages wait for dependency, CodeQL and container audits. - Docs: a [panel guide](https://phishdestroy.github.io/TgWitness/uz/docs/reference/panel/) for every screen. ## 0.7.1 preview · 1 November 2026 - **Start here** with two paths: export my account, or follow an investigation. - Account export through Telegram Takeout or the regular API, resumable, with signed progress and coverage records ([account export](https://phishdestroy.github.io/TgWitness/uz/docs/reference/account-export/)). - Separate signed sharing copies with filters, pseudonyms and optional text/file removal. Signatures establish integrity; they do not establish Telegram authorship, completeness or legal admissibility. - Readable offline reports for account exports and sharing copies, printable, with record links and instructions for the recipient. - Clear handoff after download: original vs sharing copy, report preview, instructions to copy. - Rejected Telegram logins are told apart from paused accounts and network errors. **Sign in again** keeps the workspace. - Load the history of enabled sources with pause/resume, plus a signed progress report ([history](https://phishdestroy.github.io/TgWitness/uz/docs/reference/history/)). - Read-only MCP at `/mcp`, local archive search with optional AI, local OCR/transcription, signed webhooks with retries. - GitHub Actions capture preview: one chat on a temporary runner, encrypted result, pinned provenance ([sealed capture](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md)). - Self-contained signed reports in 25 languages with chain of custody; archives add `custody.json` and `SHA256SUMS`. - Panel rework: workspace URLs, Back/Forward, drafts survive updates, Ctrl/Cmd+S, Sources split into tabs, Parameters search, journal filters and inspector, live updates. - Batch session import, account groups, MTProxy dashboard with ping, countries and own lists. - MTProxy decryption through OpenSSL (it used to eat a whole CPU core). - Stronger masking in sharing copies, bounded media decoding, repeatable source ZIPs. - Notification services refuse redirects. Weekly Dependabot, nightly CodeQL and container scans. - Lots of fixes: stuck chat profiles, quick search, DST in search dates, 502s behind Caddy, GIF/sticker downloads, slow proxy list parsing, duplicate sessions on import. ## 0.7.0 preview · 31 October 2026 - OpenTimestamps proofs are parsed strictly; Bitcoin attestations show as `bitcoin-unverified` until you run `ots verify`. - Verification reports which part of the journal witness checkpoints cover; `--require-witness` demands a pinned witness and matching final record. - Access and permissions guides, updated proxy and IP mode guides. - Panel and docs site in 25 languages. Site publishing fails on missing translations. - Added the [roadmap](https://github.com/phishdestroy/TgWitness/blob/main/docs/ROADMAP.md). ### Initial preview contents · 30 October 2026 - First GitHub release: Windows portable, wheel, source archive. - The setup guide has an "Open to everyone" section: no country or sanctions blocks, and Taylor Wessing as the only incompatibility we name. It is our position, not a licence condition. - The README and Wiki now present the authors' Ethical Notice & Historical Continuity statement, with document references, historical context and an explicit explanation that MIT permission applies to everyone. - The operator notice and the Taylor Wessing page speak in our own voice. - Returned to the MIT License. A tool whose output third parties must be able to check should not stumble over its licence. `LICENSE` is the standard MIT text again, the package declares MIT with the OSI classifier, and the container, portable package, website, Wiki and translated README labels say so. Our statement stays in NOTICE and on the Taylor Wessing page as our position; it adds no licence condition. The presentation artwork reads "open source" again. - Added our Operator Incompatibility NOTICE to README, SECURITY, the documentation, Wiki and website. A single source keeps the complete statement consistent across those pages; source, Python and portable distributions include NOTICE alongside the licence. - High-assurance deployment (`python -m tgwitness.cloud`, [guide](https://phishdestroy.github.io/TgWitness/uz/docs/reference/high-assurance/)) on Hetzner, DigitalOcean, Linode, Vultr or EC2: no SSH key, no inbound ports, panel only through a Cloudflare Tunnel, and a `verify` command for third parties. - Local launchers open the panel in the browser once it's up. - Read-only online demo of the real panel with fictional data. - Wiki with 13 guides, docs website with a reference section, search, diagrams and 13 languages. - **Sign out of Telegram** on the Account page. - About 940 Russian panel strings fixed by hand. - Observation scope: chosen chats, a folder or the whole account, by type. New chats are picked up immediately. - Investigation mode for accounts that join groups and talk to bots. - People profiles (opt-in per chat), independent witness bot, notification excerpts, Parameters page, light/dark theme. - Panel mini-client: send messages, press bot buttons, preview and join invites. - Fixed message loss after a long stop (rechecks used to stop after 1,000 messages). - Many fixes from a full review: attachment byte counts, restore checks, scope edge cases, verify.py witness handling, off-site copy retries. - Pillow 13 (39 advisories against 12.3). ## 0.6.1 · 27 October 2026 - Renamed TgWatch to TgWitness, old archives still verify. - Evidence mode timestamps checkpoints with RFC 3161 and OpenTimestamps. - Password-protected AES-256 ZIP exports. - Notifications through Apprise. - 13 interface languages; README, Quick start and Deployment in 12 languages. - Encrypted off-site copy to S3-compatible storage with Object Lock. - Catch-up after restart and rechecks every 15 minutes. - Built-in pool of public API pairs, no own API ID needed. - New Chats view, Accounts view, multi-account chat export, signed full chat export. - Windows portable package, public website, GitHub Pages workflow. - Better launchers on all platforms, redesigned panel, new logo. ## 0.6.0 · 27 October 2026 - New account form with Phone, QR code, Files and Auth key tabs. - Auth Key + DC ID sign-in, Telethon/Pyrogram sessions, TData ZIPs, StringSession, account JSON. - QR login with 2FA, Desktop local passcodes. - Demo opens on its sample journal; refreshed panel look. ## 0.5.1 · 27 October 2026 - Only the active account client is accepted; rejected logins are disconnected. - Windowless Windows launches with logs in `logs/server.log`. - Case-insensitive Unicode search, full UTC dates on phones. - Linux/macOS launch scripts, Docker helpers, optional HTTPS with Caddy, GHCR images. - Docs on export signatures and investigation handoff. ## 0.5.0 · 26 October 2026 - Per-account monitoring categories, presets and signed policy changes. - Direct local entry to synthetic demos. Older history: [release status](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/RELEASE.md) and [verification](https://phishdestroy.github.io/TgWitness/uz/docs/reference/verification/). --- # Bir jurnal. To'rt yig'ish rejimi. Sakkiz tasdiqlash darajasi. Canonical page: https://phishdestroy.github.io/TgWitness/uz/guides/modes.html Yig'ish doiralari, voqea chegaralari, sakkizta tasdiqlash mexanizmi va oltita badiiy tergov ssenariysi. [Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/) [Documentation index](https://phishdestroy.github.io/TgWitness/uz/llms.txt) Rejimlar, ssenariylar va dalillar darajalari TgWitness U bog'langan hisobning kuzatishlarini qayd etadi. Uchinchi tomon mustaqil ishonchli kalit yordamida qaydning yaxlitligini tasdiqlay oladi. [Yig'ish rejimlari](https://phishdestroy.github.io/TgWitness/uz/guides/modes.html#scope)[Ssenariylar](https://phishdestroy.github.io/TgWitness/uz/guides/modes.html#scenarios)[Dalil darajalari](https://phishdestroy.github.io/TgWitness/uz/guides/modes.html#levels) 3–5 daqiqalik umumiy ko'rinish · badiiy misollar · joriy amalga oshirish 1. **Telegram** Hisobga ko'rinadigan yangilanishlar 2. **Yig'uvchi** Ulanishgan yozuvlar, har biri imzolangan 3. **Verifikator** Ishonchli kalit + saqlangan chegarasi `h₁ → h₂ → h₃ · Ed25519`Buzilmaslik tekshiriladi. Telegram kelib chiqishi va xabar haqiqati alohida masalalardir. ## Kuzatuv doirasini tanlang Uch doira va bir tergov oldindan sozlama. Istisnolar va yoqilgan manba turlari hanuz amal qiladi. O'rnatilgan**Tanlangan suhbatlar** Yozuvlar Faqat qo'lda tanlangan manbalar. Yangi suhbatlar Avtomatik qo'shilmaydi. Tanlang Ma'lum kanallar yoki guruhlar to'plami. Hech qanday belgilangan chat sig'imi tasdiqlanmagan. **Qilmaydi** U boshqa suhbatlarni aniqlamaydi va avvalgi tarixni to'ldirmaydi. Hisob katalogi**Telegram papkasi** Yozuvlar Papka tarkibiga kiritish va toifalar, sozlanganda istisno qilingan elementlar va arxivlangan suhbatlar. Yangi suhbatlar Mos keladigan faol suhbatlar; papka o'zgarishlari bir soat ichida. Tanlang Analitik allaqachon ish hujjatlari papkasini yuritmoqda. Yig'ishni maxsus hisobda tasdiqlang. **Qilmaydi** U papkaning o'zgaruvchanligini qo'llamaydi muted/read sharoitlarini qo'llamaydi. Doirani tasdiqlang**Butun hisob** Yozuvlar Hisobga ko'rinadigan suhbatlar, jumladan shaxsiy suhbatlar va botlar, tanlangan turlar doirasida. Yangi suhbatlar Birinchi yangilanish kelganda qo'shiladi. Tanlang Maxsus kuzatuv hisobvarag'i, jumladan ishda ishtirok etayotgan hisobvarag'i. **Qilmaydi** U avtomatik ravishda suhbatlarga qo'shilmaydi yoki manbaaga kirishni chetlab o'tmaydi. Butun hisob-kitob oldindan sozlama**Tergov rejimi** Yozuvlar Barcha manba turlari, o'z harakatlari, manba profillari va yangi topilgan manbalarning so'nggi 200 ta ko'rinadigan xabarlari. Yangi suhbatlar Yangi chat yoki bot profil va tarixning snapshotini oladi. Tanlang Panel orqali jamoaga qo'shiling yoki bot bilan o'zaro ta'sirlaning. Oldindan sozlangan parametrlarni ko'rib chiqing va saqlang. **Qilmaydi** U mavjud bo'lgan barcha suhbatlarni snapshot qilmaydi yoki boshqa klientda bosilgan callback'larni kuzatmaydi. Ushbu kartalar mahalliy taqqoslash uchun mo'ljallangan, jonli kollektor nazorat vositalari emas. Ular hisobni o'zgartirmaydi. **Qilmaydi** Hech bir rejim sirli suhbatlarni o'qimaydi, jarayon to'xtatilgan paytda yozuv olib bormaydi, manbalarni mustaqil ravishda birlashtirmaydi yoki so'ralganidan tashqari oldingi tarixni qayta tiklamaydi snapshot/export. [Tafsilotlarni o'qing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) ## GitHub Actions orqali yig‘ish (dastlabki versiya) Telegram’ga yangi kirish, bitta chat, shifrlangan arxiv va GitHub kelib chiqish tasdig‘i. [Yig‘ish yordamchisini ochish](https://phishdestroy.github.io/TgWitness/uz/docs/capture/) ## Qayd etilgan narsa Faqat yetkazilgan yoki aniq so'ralgan kuzatuvlar yozuvga kiritiladi. Noma'lum mansubiyat noma'lum bo'lib qoladi. O'tkazgichlarni qayd eting · mahalliy illyustratsiyaYangi xabarlarTahrirlarO'chirishlarReaksiyalarA'zolik Panel ushbu kalitlarni har bir ish maydoni bo'yicha qo'llaydi. Uni o'chirish mavjud yozuvlarni saqlab qoladi; uni qayta yoqish esa o'tkazib yuborilgan voqealarni qayta tiklamaydi. **Voqea matritsasi: saqlangan material va qolgan noma'lumlar** | Kategoriya | Saqlangan | Noma'lum bo'lib qoladi | | --- | --- | --- | | Xabar | Matn, IDlar, jo'natuvchi metama'lumotlari, javob konteksti va asl yangilanish konverti. | Uchinchi tomon tomonidan tasdiqlanadigan Telegram imzosi yo'q. | | Tahrir | Har bir kuzatilgan versiya, avvalgilarini ustiga yozmasdan. | O'rtadagi tahrirlar e'tibordan chetda qolishi mumkin; jo'natuvchi albatta muharrir emas. | | O'chirish | Agar mavjud bo'lsa, eslatma va oldin saqlangan matn. | O'chirish va aniq harakat vaqti taqdim etilmaydi. | | Doirasi belgilanmagan o'chirish | Hisob darajasidagi ogohlantirish; noma'lum tengdosh aniq ko'rsatiladi. | Taxmin qilingan suhbat yo'q. Korrelatsiya imkon qadar oldin saqlangan hisob-doirasidagi identifikatorlardan foydalanadi. | | Reaksiya | Yetkazilgan hisoblagichlar va ko'rinadigan yaqinda foydalanilgan identifikatorlar. | Har bir reaktor ko'rinadigan emas; to'liq mavjud ro'yxat uchun alohida so'rovlar kerak. | | A'zolik | Yetkazilgan xizmat xabarlari va ishtirokchi yangilanishlari. | Rol va suhbat turi ko'rinishni cheklaydi; sukut bo'lmaslik mavjud emasligini anglatmaydi. | | Ilova | Asl-versiya tavsiflagichi, saqlangan baytlar, SHA-256 va urinish natijalari. | Yo'qolgan fayl mavjud bo'lmasligi mumkin; yangiroq versiya uni almashtirmaydi. | | Tarix snappoti | Hozirda ko'rinadigan xabarlar tarix kuzatuvlari sifatida belgilangan. | Oldingi tahrirlar va yo'qolgan kontent tiklanmaydi. | | O'z harakatlari | Chiquvchi messages/edits va mos keluvchi javob-klaviatura button_press metadata. | Boshqa Telegram mijozida bosilgan callbacklar ko'rinmaydi. | | Bot tugmalari | Callback, URL, veb-ilova va so'rovning metadata'lari xabar bilan saqlanadi. | URL manzillari va phone/location so'rovlar matn bo'lib, avtomatik ochilmaydi yoki ijro etilmaydi. | ### Standart ilova cheklovlari Foto 20 MiB Video 100 MiB Fayllar 50 MiB Animatsiyalar 20 MiB Video eslatmalar 50 MiB Ovoz 20 MiB Audio 50 MiB Stikerlar 5 MiB **Qilmaydi** Kalit o'rnatilgan metama'lumotlarni tahrirlamaydi yoki operatsion yozuvlarni o'chirib tashlamaydi. Qayd qilish Telegram taqdim etmagan ijrochining kimligini aniqlamaydi. [Tafsilotlarni o'qing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) ## Qo'lingizdagi vakolatlardan foydalaning Har bir akkauntning o'z ish maydoni, jurnali, imzolash kaliti, marshruti va navbati mavjud. ### Telefon + kod Kiriting 2FA faollashtirilganda. ### QR kod Ruxsat berilgan qurilmadan skanerlang; 2FA hali ham talab qilinishi mumkin. ### Telethon .session Hisobning sessiya faylini import qiling. ### Pyrogram .session Qo'llab-quvvatlanadiganlarni import qiling Pyrogram sessiya formatini import qiling. ### TData ZIP Qo'llab-quvvatlanadigan bitta Desktop hisob; agar sozlangan bo'lsa, mahalliy parol. ### StringSession matn Joylashtiring Telethon StringSession. ### .session + .json Sessiyani va mos keluvchi hamroh metama'lumotlarni tanlang. ### Avtorlik kaliti HEX + DC ID Hisob ma'lumotlarini uning ma'lumotlar markazi identifikatori bilan import qiling. **API juftlik** Sizning API juftlik ixtiyoriydir. U bo'lmasa, TgWitness ommaviy juftliklar havzasidan foydalanadi, jumladan rasmiy Telegram Desktop juftliklari. `Direct · SOCKS5 · HTTP CONNECT · MTProxy`MTProxy eksperimental; o'rnatilgan ommaviy MTProxy Ro'yxatlar mavjud. Muvaffaqiyatsiz proxy yo'li to'g'ridan-to'g'ri ulanishga qaytmaydi. Bir kompyuterdagi ikki ish maydoni ikki mustaqil guvoh emas. **Qilmaydi** Import Telegram avtorizatsiyasini chetlab o'tmaydi, 2FA yoki qo'llab-quvvatlanmagan sessiya formatlarini. Hisoblar hanuzgacha ilova jarayonini baham ko'radi. [Hisob formatlari](https://phishdestroy.github.io/TgWitness/uz/docs/reference/accounts/) ## Panel orqali harakat qiling Yuborish yoki javob berish uchun joriy bot tugmasini bosing, havola ko'rinishini saqlang, so'ng aniq chatga qo'shiling yoki botni start parametriga ega holda ishga tushiring. `interaction.preview``interaction.requested``interaction.result` Ko'rinish, so'rov va natija kvitansiyalari imzolanadi. Tugmani bosishdan oldin server xabarni qayta oladi va o'zgartirilgan klaviaturani rad etadi. Qaytarilgan callback matni va URL manzillari kontekstda qayd etilgan bo'lib qoladi. **Qilmaydi** Veb-ilovalar, to'lovlar, phone/location ulashish yoki inline so'rovlar. URL ko'rsatish uni ochmaydi. [Tafsilotlarni o'qing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/collection/) ## Qayta tiklash va uzluksizlik Bo'shliqlar ko'rsatiladi, yashirilmaydi. ### Saqlangan pozitsiyani tiklash Qayta ishga tushirilgandan so'ng Telegramdan o'tkazib yuborilgan yangilanishlar so'raladi. Cheklangan saqlash muddati va muddati tugagan farqlar bo'shliqlar qoldirishi mumkin. ### Ko'rinadigan xabarlarni qayta tekshiring O'rnatilgan sozlamalar: ustuvor manbalar har 15 daqiqada, boshqalar har 6 soatda. Natijalar quyidagilarni o'z ichiga oladi message.recovered va message.missing_on_recheck. ### O'qish coverage.json Imzolangan eksportga kuzatuv davrlari, sabablar bilan tushib qolgan bo'shliqlar va kuzatilmagan IDlar ilova qilinadi. Qayta tekshirishda yo'qolgan yozuv o'chirish bildirishnomasi emas. **Qilmaydi** Keyingi tarix snopsisiz uzilishni o'chirib tashlamaydi yoki yo'qolgan har bir versiyani tiklamaydi. Saqlangan kursor jurnal qabul qilinganiga yo'qotishsiz tasdiq emas. [Tafsilotlarni o'qing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ## Yetti daraja. Turli savollar. Har bir mexanizm chegaralangan savolga javob beradi. Tashqi xizmatlarni alohida sozlang va ularning ishonch nuqtalarini yig'uvchidan tashqarida saqlang. 1. ### Yozib qo'ying SHA-256 zanjir + Ed25519 har bir voqea uchun; birinchi previous_hash birinchi 64 ta nol. **Uchinchi tomon tekshiruvlari** Biriktirilgan yig'uvchi kalit ostida buyurtma berish va imzo. **Qilmaydi** Bu Telegramning kelib chiqishini yoki to'liqligini isbotlamaydi. **Verifikatsiya buyrug'i** ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 ``` 2. ### Kontener manifest.json fayl hashlarini ro'yxatlaydi; manifest.sig imzolaydi. media.saved ilovadagi baytlarni voqeaga bog'laydi. **Uchinchi tomon tekshiruvlari** Taqdim etilgan fayllar imzolangan manifest va media kvitansiyalari bilan mos keladi. **Qilmaydi** U alohida yuklab olingan narsani imzolamaydi CSV, HTML yoki skrinshotni imzolamaydi. **Verifikatsiya buyrug'i** ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 ``` 3. ### Saqlangan chegarasi Boshlanishda tekshiruv nuqtasi, standart bo'yicha har 5 daqiqada va tartibli to'xtash. Nusxasini boshqa joyda saqlang. **Uchinchi tomon tekshiruvlari** Keyingi eksport avval saqlangan uzunlik va bosh bilan mos keladi; rollback aniqlanishi mumkin. **Qilmaydi** U jurnal va barcha saqlangan tekshiruv nuqtalarining ikkalasini ham almashtirilishini aniqlamaydi. **Verifikatsiya buyrug'i** ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 --checkpoint checkpoint.json ``` 4. ### Tashqi vaqt Dalil rejimi tekshiruv nuqtasini yuboradi SHA-256 ga RFC 3161 vakolatli organlar (FreeTSA, DigiCert) va OpenTimestamps taqvimlar. **Uchinchi tomon tekshiruvlari** Tasdiqlangan TSA javobi o'sha baytlarni sanalashadi; tasdiqlangan OpenTimestamps tasdiqlangan ___ ularni Bitkoin bilan bog'laydi. **Qilmaydi** U tayyorlangan so'rov yoki kutayotgan taqvim kvitansiyasini tasdiqlangan vaqt tamg'asi deb hisoblamaydi. **Verifikatsiya buyrug'i** ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 --tsa-ca trusted-ca.pem ots upgrade checkpoint.ots ots verify checkpoint.ots ``` 5. ### Mustaqil guvoh Alohida host, doirali faqat o'qish uchun mo'ljallangan nuqta, yangi chaqiriq, o'zining key/journal va TGW1 kanal postlari. **Uchinchi tomon tekshiruvlari** Oldin qabul qilingan sarlavhalar; holatlari yaxshi, key_changed, rollback, fork, invalid va no_response. **Qilmaydi** Bu bitta to'plovchi mezbonidagi ikki ish maydonini mustaqil guvohlarga aylantirmaydi. **Verifikatsiya buyrug'i** ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 --witness witness.zip --witness-fingerprint WITNESS_SHA256 --channel result.json ``` 6. ### Joydan tashqari nusxa S3-ga mos nusxa, bilan shifrlangan AES-256-GCM; Object Lock agar bucket bunga qo'llab-quvvatlasa. **Uchinchi tomon tekshiruvlari** Restore faqat jurnal, tekshiruv nuqtasi va saqlangan media tekshiruvi muvaffaqiyatli bo'lgach fayllarni e'lon qiladi. **Qilmaydi** U eksport qilingan kalitsiz tiklanmaydi va saqlash javobini tekshirmay saqlanganligini taxmin qilmaydi. **Verifikatsiya buyrug'i** ``` python -m tgwitness.replica restore --key-file KEY.json --out EMPTY_DIR ``` 7. ### Kelib chiqishni ishga tushiring Imzolangan ijro kvitasi: manba xeshlari, bog'liqlik versiyalari va jarayon konteksti. O'z-o'zini xabar qilgan. **Uchinchi tomon tekshiruvlari** Imzolash yig'uvchisi o'z ijrosi haqida nima xabar berdi. **Qilmaydi** U mustaqil jarayonni tasdiqlashni ta'minlamaydi va yozib olishdan oldin buzilishni istisno qilmaydi. **Verifikatsiya buyrug'i** ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 ``` ### Hech bir daraja isbotlamaydigan narsa Har bir Telegram yangilanishining yetkazilishi; matnning haqiqiyligi; jo'natuvchi ID haqiqiy shaxsni aniqlashi; yozib olishdan oldin ma'lumot yig'uvchining buzilmasligi; sudda qabul qilinishi. [Mustaqil guvoh](https://phishdestroy.github.io/TgWitness/uz/docs/reference/witness/) Mahalliy SHA-256 eksperiment ### 2-yozuvni o'zgartirib ko'ring Keyingi yozuv oldin saqlangan havolani saqlaydi. Matnni o'zgartirish 2-yozuvning hisoblangan xeshini o'zgartiradi. Yozuv 2 matni Yozuv 1`h1`64 ta nol bilan boshlanadi Yozuv 2`h2`Saqlanganlarni o'z ichiga oladi h1 Yozuv 3`h3`Saqlanganlarni o'z ichiga oladi h2 Statik misol: h2 "11:00 da uchrashamiz"ni qamrab oladi. Ushbu matnni o'zgartirish h2; 3-yozuv hali ham saqlangan ma'lumotga murojaat qiladi h2. **To'liq digestlarni tekshiring** Saqlangan yozuv 2 xesh `SHA-256(e₂)` Qayta hisoblangan yozuv 2 xesh `SHA-256(e₂)` Ushbu namuna hashlarni hisoblaydi, imzo emas. Haqiqiy tasdiqlovchi har bir imzo va havolani ishonchli kalitga nisbatan tekshiradi. [Tafsilotlarni o'qing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/how-it-works/) ## Dalillar bo'ylab yo'l tanlang Badiiy vaziyatlar. Tegishli voqeadan oldin yig'ishni boshlang; kontent bilan birga chegaralar va bo'shliqlarni saqlang. ### Kanal to'lov tafsilotlarini o'zgartiradi Rejim → voqealar Tanlangan suhbatlar → xabarlar, tahrirlar, o'chirishlar. Chiqish Kuzatilgan post versiyalari va ilovalar xesh bo'yicha. Verifikatsiya Imzolangan ZIP + saqlangan tekshiruv nuqtasi + tasdiqlangan TSA javobi. **Qilmaydi** U hech qachon qayd etilmagan asl nusxani tiklamaydi. ### Xabarlar hodisadan so'ng yo'qoladi Rejim → voqealar Papka yoki butun hisob → barcha voqea toifalari. Chiqish Saqlangan asl nusxalar, o'chirish bildirishnomalari va bo'shliqlar bilan qamrov. Verifikatsiya Imzolangan ZIP + mustaqil guvoh jurnali. **Qilmaydi** U hech qanday ijrochi ko'rsatilmagan bildirishnoma orqali o'chiruvchini aniqlamaydi. ### Do'kon botini o'rganing Rejim → voqealar Tergov oldindan sozlamalari → tugmalar, havola ko'rinishlari va aniq botni ishga tushirish. Chiqish Imzolangan o'zaro ta'sir kvitansiyalari, qaytarilgan callback-lar va saqlangan profillar. Verifikatsiya Imzolangan ZIP; har qanday dosye­ni unga qarshi tekshirish ZIP. **Qilmaydi** U bot veb-ilovasini ochmaydi, to'lov amalga oshirmaydi yoki boshqa mijozning callback-larini qayd etmaydi. ### Ishtirokchi suhbatlar bo'ylab ismlarini o'zgartiradi Rejim → voqealar Har qanday doira → kuzatilgan sender/profile metadata. Chiqish Nom/foydalanuvchi nomi tarixi raqamli ID bo'yicha, "hamda" havolalari va olingan aloqalar. Verifikatsiya Dossye JSON imzolangan nusxa bilan solishtirildi ZIP. **Qilmaydi** Bu hamyon, telefon uslubidagi satr yoki foydalanuvchi nomini tasdiqlangan shaxsiyatga aylantirmaydi. ### Masofaviy nusxa bilan uzoq muddatli kuzatuv Rejim → voqealar Har qanday doira → Dalil rejimi va bir S3 qo'llab-quvvatlanadigan replika Object Lock. Chiqish Shifrlangan nusxa, saqlangan tekshiruv nuqtalari va vaqt tamg'asi javoblari. Verifikatsiya Eksport qilingan kalit bilan tiklang, so'ng asl serverisiz tasdiqlang. **Qilmaydi** Bu mustaqil guvohni yoki alohida saqlangan dekripsiya kalitini almashtirmaydi. [Tafsilotlarni o'qing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/) ## Tekshirilishi mumkin bo'lgan paketni topshiring Imzolangan asl nusxa, mustaqil saqlangan kalit barmoq izi, tegishli tekshiruv nuqtasi va tasdiqlash natijasini taqdim eting. - Imzolangan ZIP - JSONL - CSV - HTML - Tekshiruv nuqtasi - Qabul kvitasi - Suhbat eksporti: chat.json / chat.html - Dossye JSON - Parol bilan himoyalangan AES-256 ZIP - Bir nechta hisoblar uchun alohida eksportlar - Streaming CLI: 5 GiB o'rnatilgan limit ``` python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_SHA256 --checkpoint checkpoint.json ``` Verifikatorni tekshirilayotgan arxivdan emas, balki ishonchli nusxadan oling. **Qilmaydi** Mustaqil CSV va HTML imzolangan konteynerlar emas. Parol uzatmaning maxfiyligini himoya qiladi, haqiqiyligini emas. Bir nechta eksportlar hisob jurnallarini birlashtirmaydi. [Tafsilotlarni o'qing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ## Yetkazib berilgan artefaktni solishtiring Qo'shimcha imzolash, vaqt tamg'asi yoki guvoh tizimlarisiz asosiy artefaktlar. Skriptlar va loggerlar implementatsiyaga qarab farq qiladi; "qisman" – faqat yozib olingan yoki ko'rinadigan material bilan cheklangan. | Yondashuv | Tahrirlar / o'chirishlar | Imzoni yozib qo'ying | Tashqi vaqt | Mustaqil guvoh | Qamrov / bo'shliqlar | Muallifsiz tasdiqlash | | --- | --- | --- | --- | --- | --- | --- | | Telegram Desktop eksporti | Qisman | Yo'q | Yo'q | Yo'q | Yo'q | Yo'q | | Telethon snapshot skripti | Qisman | Yo'q | Yo'q | Yo'q | Yo'q | Yo'q | | O'chirish yozuvchisi: matnli log | Qisman | Yo'q | Yo'q | Yo'q | Yo'q | Yo'q | | Ekran tasvirlari / veb-ushlash | Qisman | Yo'q | Yo'q | Yo'q | Yo'q | Yo'q | | TgWitness sozlangan qo'shimchalar bilan | Qisman | Ha | Ha | Ha | Qisman | Ha | **Qilmaydi** Jadval har bir skript yoki loglash mahsulotini baholamaydi. Ixtiyoriy vaqt va guvoh tekshiruvlari o'z xizmatlari va ishonch nuqtalarini talab qiladi; hech biri manba haqiqatini aniqlamaydi. [Tafsilotlarni o'qing](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/) ## Chegaralarni dalillar bilan saqlang Verifikatsiya uning doirasi aniq bo'lganda foydalidir. - Yashirin suhbatlar mavjud emas. - Jarayon to'xtatilgan paytda hech narsa qayd etilmaydi; tiklash cheklangan. - Verifikatsiyalangan yozuv uning mazmuni rostligini isbotlamaydi. - Kalitga ega operator istalgan kontentni imzolashi mumkin. Mustaqil guvohlar va vaqt tamg'alari keyingi o'zgartirishlarni cheklaydi, dastlabki nohalol ushlashni emas. - Asosiy hisobingizni emas, maxsus hisobni ishlating. - Telegram so'rov hajmi tufayli hisoblarni cheklashi mumkin. **Qilmaydi** Hech qanday rejim yoki dalil darajasi huquqiy qabul qilinishni, Telegram xabarlarining to'liq yetkazilishini yoki haqiqiy dunyo identifikatsiyasini tasdiqlamaydi. [O'rnatish bo'yicha qo'llanma](https://phishdestroy.github.io/TgWitness/demo/guide.html?lang=uz)[Maxsus hisob](https://phishdestroy.github.io/TgWitness/uz/docs/dedicated-account/)[EVIDENCE.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/evidence/)[TERGOV.md](https://phishdestroy.github.io/TgWitness/uz/docs/reference/investigation/)