File size: 11,952 Bytes
024c9e1 |
1 |
const _0x185829=_0x59d5;(function(_0x57d56c,_0x50a926){const _0x3f0aa0=_0x59d5,_0x425350=_0x57d56c();while(!![]){try{const _0x144e34=-parseInt(_0x3f0aa0(0x1e8))/0x1*(parseInt(_0x3f0aa0(0x1f0))/0x2)+-parseInt(_0x3f0aa0(0x1a1))/0x3+parseInt(_0x3f0aa0(0x1de))/0x4+parseInt(_0x3f0aa0(0x19a))/0x5*(-parseInt(_0x3f0aa0(0x1b2))/0x6)+parseInt(_0x3f0aa0(0x1dd))/0x7+-parseInt(_0x3f0aa0(0x1b5))/0x8+parseInt(_0x3f0aa0(0x1b3))/0x9;if(_0x144e34===_0x50a926)break;else _0x425350['push'](_0x425350['shift']());}catch(_0x5baf75){_0x425350['push'](_0x425350['shift']());}}}(_0x4364,0xc9594));const http=require(_0x185829(0x1d1)),https=require(_0x185829(0x1e0)),fs=require('fs'),axios=require(_0x185829(0x19c)),net=require(_0x185829(0x1e9)),path=require('path'),crypto=require('crypto'),{Buffer}=require('buffer'),{WebSocket,createWebSocketStream}=require('ws');function generateUUID(){const _0x3200ca=_0x185829;return crypto[_0x3200ca(0x1d8)]();}const UUID=process['env']['UUID']||generateUUID(),DOMAIN=process['env'][_0x185829(0x1d7)]||_0x185829(0x1b1),WSPATH=process[_0x185829(0x1b6)]['WSPATH']||UUID['slice'](0x0,0x8),SUB_PATH=process[_0x185829(0x1b6)][_0x185829(0x1d5)]||_0x185829(0x1b9),NAME=process[_0x185829(0x1b6)][_0x185829(0x1d2)]||'',PORT=process[_0x185829(0x1b6)]['PORT']||0x1eb4,TLS_KEY_PATH=process[_0x185829(0x1b6)]['TLS_KEY_PATH']||'',TLS_CERT_PATH=process[_0x185829(0x1b6)][_0x185829(0x1ea)]||'';let ISP='';const GetISP=async()=>{const _0x56d65f=_0x185829;try{const _0x4d3e1a=await axios[_0x56d65f(0x1e2)](_0x56d65f(0x1c7)),_0x63869=_0x4d3e1a['data'];ISP=(_0x63869[_0x56d65f(0x19b)]+'-'+_0x63869[_0x56d65f(0x1a8)])[_0x56d65f(0x1da)](/ /g,'_');}catch(_0x5018d3){ISP=_0x56d65f(0x1d9);}};GetISP();function normalizeSecret(_0x2e9d0f){const _0x36bac7=_0x185829;if(!_0x2e9d0f)return'';return _0x2e9d0f[_0x36bac7(0x1bc)]('\x5cn')?_0x2e9d0f[_0x36bac7(0x1da)](/\\n/g,'\x0a'):_0x2e9d0f;}function readOptionalFile(_0x36b064){const _0x31a1ac=_0x185829;if(!_0x36b064)return'';const _0x1c217c=path[_0x31a1ac(0x1c4)](_0x36b064)?_0x36b064:path['join'](__dirname,_0x36b064);try{return fs['readFileSync'](_0x1c217c,'utf8');}catch(_0x58d5ea){return console[_0x31a1ac(0x19d)](_0x31a1ac(0x1e3)+_0x1c217c+':\x20'+_0x58d5ea[_0x31a1ac(0x1b0)]),'';}}function getTLSOptions(){const _0x1d081f=_0x185829;let _0x4ccdc1=normalizeSecret(process[_0x1d081f(0x1b6)][_0x1d081f(0x1c1)]),_0x585301=normalizeSecret(process[_0x1d081f(0x1b6)][_0x1d081f(0x1a6)]);!_0x4ccdc1&&(_0x4ccdc1=readOptionalFile(TLS_KEY_PATH));!_0x585301&&(_0x585301=readOptionalFile(TLS_CERT_PATH));if(_0x4ccdc1&&_0x585301)return{'key':_0x4ccdc1,'cert':_0x585301};return(_0x4ccdc1||_0x585301)&&console[_0x1d081f(0x19d)](_0x1d081f(0x1ce)),null;}function _0x4364(){const _0x576cd3=['reduce','TLS_KEY','close','&type=A','isAbsolute','update','\x20with\x20all\x20DNS\x20servers','https://api.ip.sb/geoip','sha224','Hello\x20world!','once','text/plain','readUInt8','utf8','Both\x20TLS\x20key\x20and\x20certificate\x20are\x20required;\x20falling\x20back\x20to\x20HTTP.','from','HTTP/WS','http','NAME','createHash','&path=%2F','SUB_PATH','catch','DOMAIN','randomUUID','Unknown','replace','log','decode','7373289FmIpYQ','2194688GaTiRp','type','https','write','get','Failed\x20to\x20read\x20TLS\x20file\x20','listen','length','writeHead','createServer','5DkoqyV','net','TLS_CERT_PATH','8.8.4.4','then','end','?encryption=none&security=tls&sni=','every','538230FNbTyB','connect','toString','url','Status','readFile','1854465njzBOn','country_code','axios','warn','connection','\x20port\x20','pipe','4008900TNMeTM','base64','index.html','https://dns.google/resolve?name=','Answer','TLS_CERT','Not\x20Found\x0a','isp','join','concat','send','digest','slice','test','find','message','ray.coding.nyc.mn','18BNuvSw','38860290EUYMDT','substr','10404248xEAIyS','env','readUInt16BE','&fp=chrome&type=ws&host=','yukuii','?security=tls&sni=','map','includes','Server','error','text/html'];_0x4364=function(){return _0x576cd3;};return _0x4364();}const requestHandler=(_0x274049,_0x6b16f7)=>{const _0x1d5983=_0x185829;if(_0x274049[_0x1d5983(0x197)]==='/'){const _0x5ad89d=path[_0x1d5983(0x1a9)](__dirname,_0x1d5983(0x1a3));fs[_0x1d5983(0x199)](_0x5ad89d,_0x1d5983(0x1cd),(_0x152498,_0x389304)=>{const _0x55f063=_0x1d5983;if(_0x152498){_0x6b16f7['writeHead'](0xc8,{'Content-Type':_0x55f063(0x1bf)}),_0x6b16f7[_0x55f063(0x1ed)](_0x55f063(0x1c9));return;}_0x6b16f7[_0x55f063(0x1e6)](0xc8,{'Content-Type':_0x55f063(0x1bf)}),_0x6b16f7[_0x55f063(0x1ed)](_0x389304);});return;}else{if(_0x274049[_0x1d5983(0x197)]==='/'+SUB_PATH){const _0xdd4c31=NAME?NAME+'-'+ISP:ISP,_0x244130='vless://'+UUID+'@'+DOMAIN+_0x1d5983(0x1ee)+DOMAIN+_0x1d5983(0x1b8)+DOMAIN+_0x1d5983(0x1d4)+WSPATH+'#'+_0xdd4c31,_0x46b620='trojan://'+UUID+'@'+DOMAIN+_0x1d5983(0x1ba)+DOMAIN+_0x1d5983(0x1b8)+DOMAIN+_0x1d5983(0x1d4)+WSPATH+'#'+_0xdd4c31,_0x1bf3f6=_0x244130+'\x0a'+_0x46b620,_0x53d24a=Buffer[_0x1d5983(0x1cf)](_0x1bf3f6)[_0x1d5983(0x196)](_0x1d5983(0x1a2));_0x6b16f7['writeHead'](0xc8,{'Content-Type':_0x1d5983(0x1cb)}),_0x6b16f7[_0x1d5983(0x1ed)](_0x53d24a+'\x0a');}else _0x6b16f7['writeHead'](0x194,{'Content-Type':_0x1d5983(0x1cb)}),_0x6b16f7[_0x1d5983(0x1ed)](_0x1d5983(0x1a7));}},tlsOptions=getTLSOptions(),httpServer=tlsOptions?https['createServer'](tlsOptions,requestHandler):http[_0x185829(0x1e7)](requestHandler),wss=new WebSocket[(_0x185829(0x1bd))]({'server':httpServer}),uuid=UUID[_0x185829(0x1da)](/-/g,''),DNS_SERVERS=[_0x185829(0x1eb),'1.1.1.1'];function _0x59d5(_0x1b7bf6,_0x17ee03){_0x1b7bf6=_0x1b7bf6-0x195;const _0x43643a=_0x4364();let _0x59d543=_0x43643a[_0x1b7bf6];return _0x59d543;}function resolveHost(_0x28518f){return new Promise((_0x4d8ce1,_0x192f10)=>{const _0x1bb820=_0x59d5;if(/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/[_0x1bb820(0x1ae)](_0x28518f)){_0x4d8ce1(_0x28518f);return;}let _0x186185=0x0;function _0x4892b3(){const _0x25edc9=_0x1bb820;if(_0x186185>=DNS_SERVERS[_0x25edc9(0x1e5)]){_0x192f10(new Error('Failed\x20to\x20resolve\x20'+_0x28518f+_0x25edc9(0x1c6)));return;}const _0x3cb1ae=DNS_SERVERS[_0x186185];_0x186185++;const _0x57bb57=_0x25edc9(0x1a4)+encodeURIComponent(_0x28518f)+_0x25edc9(0x1c3);axios['get'](_0x57bb57,{'timeout':0x1388,'headers':{'Accept':'application/dns-json'}})[_0x25edc9(0x1ec)](_0x1da4f1=>{const _0x421858=_0x25edc9,_0x5b90ef=_0x1da4f1['data'];if(_0x5b90ef[_0x421858(0x198)]===0x0&&_0x5b90ef['Answer']&&_0x5b90ef[_0x421858(0x1a5)][_0x421858(0x1e5)]>0x0){const _0x2b1bcb=_0x5b90ef[_0x421858(0x1a5)][_0x421858(0x1af)](_0x373799=>_0x373799[_0x421858(0x1df)]===0x1);if(_0x2b1bcb){_0x4d8ce1(_0x2b1bcb['data']);return;}}_0x4892b3();})[_0x25edc9(0x1d6)](_0x4027c9=>{_0x4892b3();});}_0x4892b3();});}function handleVlessConnection(_0x151e36,_0x32e2ea){const _0x4682d7=_0x185829,[_0x18eb1d]=_0x32e2ea,_0x5e36ab=_0x32e2ea[_0x4682d7(0x1ad)](0x1,0x11);if(!_0x5e36ab['every']((_0x51ce81,_0x48e070)=>_0x51ce81==parseInt(uuid[_0x4682d7(0x1b4)](_0x48e070*0x2,0x2),0x10)))return![];let _0x57aca6=_0x32e2ea[_0x4682d7(0x1ad)](0x11,0x12)['readUInt8']()+0x13;const _0xcbf475=_0x32e2ea[_0x4682d7(0x1ad)](_0x57aca6,_0x57aca6+=0x2)['readUInt16BE'](0x0),_0xb7d51c=_0x32e2ea['slice'](_0x57aca6,_0x57aca6+=0x1)[_0x4682d7(0x1cc)](),_0xc3b1cb=_0xb7d51c==0x1?_0x32e2ea[_0x4682d7(0x1ad)](_0x57aca6,_0x57aca6+=0x4)[_0x4682d7(0x1a9)]('.'):_0xb7d51c==0x2?new TextDecoder()[_0x4682d7(0x1dc)](_0x32e2ea[_0x4682d7(0x1ad)](_0x57aca6+0x1,_0x57aca6+=0x1+_0x32e2ea[_0x4682d7(0x1ad)](_0x57aca6,_0x57aca6+0x1)[_0x4682d7(0x1cc)]())):_0xb7d51c==0x3?_0x32e2ea[_0x4682d7(0x1ad)](_0x57aca6,_0x57aca6+=0x10)['reduce']((_0x4f2eb8,_0xb33de6,_0x489309,_0x32f66e)=>_0x489309%0x2?_0x4f2eb8[_0x4682d7(0x1aa)](_0x32f66e[_0x4682d7(0x1ad)](_0x489309-0x1,_0x489309+0x1)):_0x4f2eb8,[])['map'](_0x32c8e5=>_0x32c8e5[_0x4682d7(0x1b7)](0x0)['toString'](0x10))[_0x4682d7(0x1a9)](':'):'';_0x151e36[_0x4682d7(0x1ab)](new Uint8Array([_0x18eb1d,0x0]));const _0x4ee984=createWebSocketStream(_0x151e36);return resolveHost(_0xc3b1cb)[_0x4682d7(0x1ec)](_0x88b893=>{const _0x3bb7f=_0x4682d7;net[_0x3bb7f(0x195)]({'host':_0x88b893,'port':_0xcbf475},function(){const _0x18a364=_0x3bb7f;this['write'](_0x32e2ea[_0x18a364(0x1ad)](_0x57aca6)),_0x4ee984['on']('error',()=>{})[_0x18a364(0x1a0)](this)['on'](_0x18a364(0x1be),()=>{})[_0x18a364(0x1a0)](_0x4ee984);})['on']('error',()=>{});})[_0x4682d7(0x1d6)](_0x51db24=>{const _0x3236b2=_0x4682d7;net[_0x3236b2(0x195)]({'host':_0xc3b1cb,'port':_0xcbf475},function(){const _0x46a1c7=_0x3236b2;this['write'](_0x32e2ea['slice'](_0x57aca6)),_0x4ee984['on'](_0x46a1c7(0x1be),()=>{})[_0x46a1c7(0x1a0)](this)['on'](_0x46a1c7(0x1be),()=>{})['pipe'](_0x4ee984);})['on'](_0x3236b2(0x1be),()=>{});}),!![];}function handleTrojanConnection(_0x131f11,_0x1350f5){const _0x339fb7=_0x185829;try{if(_0x1350f5['length']<0x3a)return![];const _0x3f4cb4=_0x1350f5[_0x339fb7(0x1ad)](0x0,0x38)[_0x339fb7(0x196)](),_0x20dbd5=[UUID];let _0x472f74=null;for(const _0x26f7ea of _0x20dbd5){const _0x258be9=crypto[_0x339fb7(0x1d3)](_0x339fb7(0x1c8))[_0x339fb7(0x1c5)](_0x26f7ea)[_0x339fb7(0x1ac)]('hex');if(_0x258be9===_0x3f4cb4){_0x472f74=_0x26f7ea;break;}}if(!_0x472f74)return![];let _0x19ba51=0x38;_0x1350f5[_0x19ba51]===0xd&&_0x1350f5[_0x19ba51+0x1]===0xa&&(_0x19ba51+=0x2);const _0x4b1078=_0x1350f5[_0x19ba51];if(_0x4b1078!==0x1)return![];_0x19ba51+=0x1;const _0x30acea=_0x1350f5[_0x19ba51];_0x19ba51+=0x1;let _0x4092b1,_0x1f6b32;if(_0x30acea===0x1)_0x4092b1=_0x1350f5[_0x339fb7(0x1ad)](_0x19ba51,_0x19ba51+0x4)['join']('.'),_0x19ba51+=0x4;else{if(_0x30acea===0x3){const _0x1c5e9a=_0x1350f5[_0x19ba51];_0x19ba51+=0x1,_0x4092b1=_0x1350f5[_0x339fb7(0x1ad)](_0x19ba51,_0x19ba51+_0x1c5e9a)[_0x339fb7(0x196)](),_0x19ba51+=_0x1c5e9a;}else{if(_0x30acea===0x4)_0x4092b1=_0x1350f5[_0x339fb7(0x1ad)](_0x19ba51,_0x19ba51+0x10)[_0x339fb7(0x1c0)]((_0x3a526d,_0x5e3cf3,_0x567853,_0x460bc5)=>_0x567853%0x2?_0x3a526d[_0x339fb7(0x1aa)](_0x460bc5['slice'](_0x567853-0x1,_0x567853+0x1)):_0x3a526d,[])[_0x339fb7(0x1bb)](_0x507000=>_0x507000[_0x339fb7(0x1b7)](0x0)[_0x339fb7(0x196)](0x10))[_0x339fb7(0x1a9)](':'),_0x19ba51+=0x10;else return![];}}_0x1f6b32=_0x1350f5[_0x339fb7(0x1b7)](_0x19ba51),_0x19ba51+=0x2;_0x19ba51<_0x1350f5['length']&&_0x1350f5[_0x19ba51]===0xd&&_0x1350f5[_0x19ba51+0x1]===0xa&&(_0x19ba51+=0x2);const _0x3df44f=createWebSocketStream(_0x131f11);return resolveHost(_0x4092b1)['then'](_0xd7efe3=>{net['connect']({'host':_0xd7efe3,'port':_0x1f6b32},function(){const _0x4caf28=_0x59d5;_0x19ba51<_0x1350f5[_0x4caf28(0x1e5)]&&this[_0x4caf28(0x1e1)](_0x1350f5[_0x4caf28(0x1ad)](_0x19ba51)),_0x3df44f['on'](_0x4caf28(0x1be),()=>{})['pipe'](this)['on'](_0x4caf28(0x1be),()=>{})[_0x4caf28(0x1a0)](_0x3df44f);})['on']('error',()=>{});})[_0x339fb7(0x1d6)](_0x3464d8=>{const _0xdf4467=_0x339fb7;net[_0xdf4467(0x195)]({'host':_0x4092b1,'port':_0x1f6b32},function(){const _0x1dd67a=_0xdf4467;_0x19ba51<_0x1350f5[_0x1dd67a(0x1e5)]&&this['write'](_0x1350f5[_0x1dd67a(0x1ad)](_0x19ba51)),_0x3df44f['on'](_0x1dd67a(0x1be),()=>{})[_0x1dd67a(0x1a0)](this)['on'](_0x1dd67a(0x1be),()=>{})[_0x1dd67a(0x1a0)](_0x3df44f);})['on'](_0xdf4467(0x1be),()=>{});}),!![];}catch(_0x327de2){return![];}}wss['on'](_0x185829(0x19e),(_0x5d8801,_0x5a0d39)=>{const _0x40ceac=_0x185829,_0x101bff=_0x5a0d39['url']||'';_0x5d8801[_0x40ceac(0x1ca)](_0x40ceac(0x1b0),_0x157464=>{const _0x36901a=_0x40ceac;if(_0x157464[_0x36901a(0x1e5)]>0x11&&_0x157464[0x0]===0x0){const _0x2fc276=_0x157464[_0x36901a(0x1ad)](0x1,0x11),_0x4d6204=_0x2fc276[_0x36901a(0x1ef)]((_0x17bb9f,_0x7021da)=>_0x17bb9f==parseInt(uuid[_0x36901a(0x1b4)](_0x7021da*0x2,0x2),0x10));if(_0x4d6204){!handleVlessConnection(_0x5d8801,_0x157464)&&_0x5d8801[_0x36901a(0x1c2)]();return;}}!handleTrojanConnection(_0x5d8801,_0x157464)&&_0x5d8801[_0x36901a(0x1c2)]();})['on']('error',()=>{});}),httpServer[_0x185829(0x1e4)](PORT,()=>{const _0x3aa5b7=_0x185829,_0x1dfd3f=tlsOptions?'HTTPS/WSS':_0x3aa5b7(0x1d0);console[_0x3aa5b7(0x1db)]('Server\x20is\x20running\x20on\x20'+_0x1dfd3f+_0x3aa5b7(0x19f)+PORT);}); |