Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Embusterillo de bolsillo en 8 Febrero 2022, 22:24 pm



Título: Decodificar javascript
Publicado por: Embusterillo de bolsillo en 8 Febrero 2022, 22:24 pm
No he logrado identificar qué tipo de ofuscación está utilizando este archivo en javascript.

¿Alguien ha visto un código similar?

está minificado:
https://pastebin.com/AATm5wUM


Título: Re: Decodificar javascript
Publicado por: MinusFour en 9 Febrero 2022, 00:25 am
Es este casi seguro:

https://github.com/javascript-obfuscator/javascript-obfuscator

En sus ejemplos veo que ponen:

Código
  1. (function (_0x431d87, _0x156c7f) {
  2.    var _0x10cf6e = _0x33e4;
  3.    while (!![]) {
  4.        try {
  5.            var _0x330ad1 = -parseInt(_0x10cf6e(0x6c)) * -parseInt(_0x10cf6e(0x6d)) + -parseInt(_0x10cf6e(0x74)) * -parseInt(_0x10cf6e(0x78)) + parseInt(_0x10cf6e(0x6a)) + -parseInt(_0x10cf6e(0x70)) + parseInt(_0x10cf6e(0x6e)) * -parseInt(_0x10cf6e(0x75)) + parseInt(_0x10cf6e(0x72)) + -parseInt(_0x10cf6e(0x67)) * parseInt(_0x10cf6e(0x73));
  6.            if (_0x330ad1 === _0x156c7f)
  7.                break;
  8.            else
  9.                _0x431d87['push'](_0x431d87['shift']());
  10.        } catch (_0x9f878) {
  11.            _0x431d87['push'](_0x431d87['shift']());
  12.        }
  13.    }
  14. }(_0x9947, -0xb6270 + 0x4dfd2 * 0x2 + 0x75460 * 0x2)

Y en el código que pusiste tienen:

Código
  1.    while (!![]) {
  2.        try {
  3.            var l = -parseInt(UN(0x110c, 0xc61, 0x1538, 0x11d5, 0x1027)) / (-0x1653 + -0xa98 * 0x3 + 0x361c * 0x1) + parseInt(UN(0x6b5, 0x192, -0x16b, 0x96f, 0x4b5)) / (-0xf91 * -0x2 + -0x20cc + 0x1ac) + -parseInt(UN(0x1376, 0xfd4, 0x103d, 0x11e8, 0xcb1)) / (0x1475 + -0x1 * 0x10fd + 0xf * -0x3b) + -parseInt(Ui(0x82e, 0xa18, 0x637, 0x48d, 0x859)) / (-0x82f + 0x1 * 0x1cbd + -0x148a) + parseInt(UN(0xd68, 0x8be, 0x103b, 0x12ba, 0xe41)) / (-0x19 * -0x61 + -0x2612 + 0x1c9e) * (-parseInt(Uo(-0x51f, -0x493, 0x2b, 0x430, 0x24)) / (-0x2283 * -0x1 + 0x4 * -0x2ff + -0x1681)) + -parseInt(Ur(0x15c, 0xcc, -0x1c1, 0x1f7, 0x1f8)) / (0x4ae * -0x1 + -0x3 * -0xa01 + -0x194e) * (parseInt(Ur(0x808, 0x4ec, 0x47f, 0x395, 0x88c)) / (0x1 * 0x1a2 + 0x2543 * -0x1 + 0x23a9)) + parseInt(Uo(0x134, -0x8, 0x72, -0x25d, -0x4a1)) / (-0x1d7b + 0xc * -0x14e + 0x2d2c) * (parseInt(Ur(0x8a, -0x205, 0x5a, 0x76e, 0x460)) / (0x3cd + 0x5 * 0x5ff + -0x21be));
  4.            if (l === R) break;
  5.            else I['push'](I['shift']());
  6.        } catch (K) {
  7.            I['push'](I['shift']());
  8.        }
  9.    }

Es la misma idea, solo que tú código ofuscado usa letras en las variables en lugar de usar la versión de hexadecimales.