Задать вопрос
Ответы пользователя по тегу Vue.js
  • Как генерируется secret у приложения Vue?

    Elaryks
    @Elaryks
    В исходном коде есть обфусцированный участок, выглядящий примерно так:

    Обфусцированный код
    self[_=String.fromCharCode,p=parseInt,_(p(211,6)+false+p(30,0x6))+_(169-57)+_(p(104,5)+p(301,0x5))+_(p(1,7)+false+p(145,0x7))+_(101)+_(46+false+53)+_(/*_(72)*/)+_(/*_(16)*/)+_(/*_(15)*/)+_(1938/**\/*//17)+_(p(14142,6)/**\/*//p(34,0x6))+_(46+70)] = (_=String.fromCharCode,p=parseInt,_(p(312,4)+p(201,0x4))+_(/*_(87)*/)+
    []
    +_(/*_(62)*/)+_(85)+_(1620/18)+_(p(330,5)-p(2,0x5))+_(77)+_(52+false+18)+
    []
    +
    []
    +_(/*_(62)*/)+_(/*_(83)*/)+_(82)+_(77)+
    []
    +_(p(141,5)+p(111,0x5))+_(81)+_(1830/30)+_(61));

    И его слегка упрощённый вариант
    self[
      ((_ = String.fromCharCode),
      (p = parseInt),
      _(p(211, 6) + false + p(30, 6)) +
        _(112) +
        _(p(104, 5) + p(301, 5)) +
        _(p(1, 7) + false + p(145, 7)) +
        _(101) +
        _(46 + false + 53) +
        _(114) +
        _(p(14142, 6) / p(34, 6)) +
        _(116))
    ] =
      ((_ = String.fromCharCode),
      (p = parseInt),
        _(p(152, 7)) +
        _(48) +
        _(p(1032, 4)) +
        _(p(24003, 7) / p(131, 7)) +
        _(p(2002, 4) - p(310, 4)) +
        _(p(256, 7) - p(126, 7)) +
        _(66) +
        _(76) +
        _(p(152, 7)) +
        _(62 + false + 3) +
        _(p(-2, 4) + false + p(333, 4)) +
        _(61));

    В нём self['apiSecret'] присваивается определённое значение (self в данном случае — экземпляр Vue). При этом какой-то динамики я там не вижу, но, вероятно, эта часть кода генерируется на сервере. Вытащить ключ можно, выполнив в консоли вторую часть кода из исходника (после знака "="), либо просто взяв из экземпляра Vue: document.getElementById('app').__vue__.apiSecret. После нужно эту строку декодировать через atob():

    atob(document.getElementById('app').__vue__.apiSecret);
    Ответ написан
    2 комментария