The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Wasmer 1.0, инструментарий для платформонезависимых приложений на базе WebAssembly, opennews (?), 06-Янв-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


31. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от Урри (ok), 06-Янв-21, 18:46 
> Но теперь-то "заживём" - пользователю будут прилетать не только жаба-скрипты, но также и всякое скомпилированное дерьмо.

Вооооооооот. Подъехал первый мамкин знакток. А я только что написал, буквально 15 минут назад: "Они, например, в каждой теме вопят, что wasm не читабельный, поэтому через него попрут тысячи троянов. Каждый раз им тыкают asm.js в морду. И каждый раз они ни на чем не учатся и продолжают нести ахинею."

Ну давай, мамкин знаток, прочитай и объясни этот ни разу не скомпилированный джаваскрипт (из боевого проекта, между прочим):

function Tb(a) {
    a = a | 0;
    var b = 0;
    b = l;
    l = l + a | 0;
    l = l + 15 & -16;
    return b | 0
}

function Ub() {
    return l | 0
}

function Vb(a) {
    a = a | 0;
    l = a
}

function Wb(a, b) {
    a = a | 0;
    b = b | 0;
    l = a;
    m = b
}

function Xb(a, b) {
    a = a | 0;
    b = b | 0;
    if (!p) {
        p = a;
        q = b
    }
}

function Yb() {
    return
}

function Zb(a) {
    a = a | 0;
    var b = 0,
        d = 0;
    a: do
        if ((a | 0) == 566) d = 0;
        else {
            b = 0;
            while (1) {
                if (a & 3 | 0) break;
                a = c[a + 8 >> 2] | 0;
                b = b + 1 | 0;
                if ((a | 0) == 566) {
                    d = b;
                    break a
                }
            }
            Ca(n + 63 | 0, n + 138 | 0, 1583, n + 149 | 0)
        }
    while (0);
    return d | 0
}

Ответить | Правка | Наверх | Cообщить модератору

44. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от Dzen Python (ok), 06-Янв-21, 19:38 
> Глобалки l, m, p, q и с, с соответствующим гнилым кодом в функциях
> Играемся с битовыми операциями: вместо нормального приведения типов у нас пустое "| 0" преде любым использованием, говорящее нам "У НАС ТУТ ЧИСЛО, ИНТЕРПЕРТАТОР!"
> Забытый мусорный Yb()
> if ((a | 0) == 566) d = 0; // ГЕНИАЛЬНО! ВСЯ МОЩЬ ДЖАВАСКРИПТА В ОДНОМ СРАВНЕНИИ
> Е-е-е, самый сложный участок кода, мы флексим сдвигом по элементам глобального массива.

Контекст с глобальными привел бы, для приличия. Код примерно на 2/10

Ответить | Правка | Наверх | Cообщить модератору

54. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +2 +/
Сообщение от Урри (ok), 06-Янв-21, 20:00 
Это автосгенерированный с помощью emscripten на основании чистого C кода javascript. Самый натуральный и обычный javascript, который выполняется даже на супердревних машинах и браузерах (даже на древних мобилах, проверено). Совершенно нечитаемый, само собой, хотя поддерживаемый всеми браузерами, майнер.

Приводится в пример мамкиным икспердам, которые думают, что javascript - это function please_send_me_a_money() { alert('Please, send me a money'); /* My Name Is Vasia and my address is Tomsk, ul. Lenina, 37/122 */ } и кричат "wasm не читабелен, через него придут трояны".

Предлагаю ознакомиться с темой поближе: https://ru.wikipedia.org/wiki/Asm.js

Ответить | Правка | Наверх | Cообщить модератору

61. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  –1 +/
Сообщение от Dzen Python (ok), 06-Янв-21, 20:08 
Ты меня таки не прочитал.
Я попросил контекст глобалок, из которых я смог бы сделать вывод, что это майнер. Данный кусок фактически лишь гуляет по неизвестному глобальному массиву с присваиванием.
Ответить | Правка | Наверх | Cообщить модератору

75. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +2 +/
Сообщение от Урри (ok), 06-Янв-21, 20:38 
Вот этот?

--- cut ---
var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.gb|0;var o=env.fb|0;var p=0;var q=0;var r=0;var s=0;var t=global.NaN,u=global.Infinity;var v=0,w=0,x=0,y=0,z=0.0;var A=0;var B=global.Math.floor;var C=global.Math.abs;var D=global.Math.sqrt;var E=global.Math.pow;var F=global.Math.cos;var G=global.Math.sin;var H=global.Math.tan;var I=global.Math.acos;var J=global.Math.asin;var K=global.Math.atan;var L=global.Math.atan2;var M=global.Math.exp;var N=global.Math.log;var O=global.Math.ceil;var P=global.Math.imul;var Q=global.Math.min;var R=global.Math.max;var S=global.Math.clz32;var T=env.abort;var U=env.assert;var V=env.enlargeMemory;var W=env.getTotalMemory;var X=env.abortOnCannotGrowMemory;var Y=env.setTempRet0;var Z=env.getTempRet0;var _=env.invoke_i;var $=env.ftCall_i;var aa=env.invoke_idddd;var ba=env.ftCall_idddd;var ca=env.invoke_ii;var da=env.ftCall_ii;var ea=env.invoke_iii;var fa=env.ftCall_iii;var ga=env.invoke_iiii;var ha=env.ftCall_iiii;var ia=env.invoke_iiiii;var ja=env.ftCall_iiiii;var ka=env.invoke_iiiiii;var la=env.ftCall_iiiiii;var ma=env.invoke_iiiiiii;var na=env.ftCall_iiiiiii;var oa=env.invoke_iiiiiiii;var pa=env.ftCall_iiiiiiii;var qa=env.invoke_iiiiiiiii;var ra=env.ftCall_iiiiiiiii;var sa=env.invoke_iiiiiiiiii;var ta=env.ftCall_iiiiiiiiii;var ua=env.invoke_iiiiiiiiiii;var va=env.ftCall_iiiiiiiiiii;var wa=env.invoke_iiiiiiiiiiii;var xa=env.ftCall_iiiiiiiiiiii;var ya=env.invoke_iiiiiiiiiiiii;var za=env.ftCall_iiiiiiiiiiiii;var Aa=env.invoke_vi;var Ba=env.ftCall_vi;var Ca=env.___assert_fail;var Da=env.___divdi3;var Ea=env.___errno_location;var Fa=env.___muldi3;var Ga=env.___udivdi3;var Ha=env.___uremdi3;var Ia=env._bitshift64Lshr;var Ja=env._bitshift64Shl;var Ka=env._chdir;var La=env._close;var Ma=env._dlclose;var Na=env._dlerror;var Oa=env._dlopen;var Pa=env._dlsym;var Qa=env._emscripten_run_script;var Ra=env._emscripten_run_script_int;var Sa=env._emscripten_run_script_string;var Ta=env._fcntl;var Ua=env._fprintf;var Va=env._free;var Wa=env._fstat;var Xa=env._getenv;var Ya=env._gettimeofday;var Za=env._i64Subtract;var _a=env._ioctl;var $a=env._longjmp;var ab=env._lseek;var bb=env._malloc;var cb=env._memcpy;var db=env._memset;var eb=env._mkdir;var fb=env._mkstemp;var gb=env._modf;var hb=env._nanosleep;var ib=env._open;var jb=env._pipe;var kb=env._read;var lb=env._realloc;var mb=env._signal;var nb=env._stat;var ob=env._stderr;var pb=env._stdin;var qb=env._stdout;var rb=env._strcmp;var sb=env._strerror;var tb=env._strlen;var ub=env._system;var vb=env._tcgetattr;var wb=env._time;var xb=env._uname;var yb=env._unlink;var zb=env._write;var Ab=env.g$_stderr;var Bb=env.g$_stdin;var Cb=env.g$_stdout;var Db=0.0;
--- cut ---

Ответить | Правка | Наверх | Cообщить модератору

92. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от nelsonemail (??), 06-Янв-21, 22:47 
> в каждой теме вопят, что wasm не читабельный, поэтому через него попрут тысячи троянов. Каждый раз им тыкают asm.js в морду

Рукалицо.jpeg. Какая разница что там прилетает пользователю - wasm, asm жаба-скрипт или какой-то другой сорт? Вся эта тьюринг-полная дичь позволяет вытворять (пусть даже чисто теоретически) любую вакханалию на стороне клиента. Читабельно, нечитабельно... Рукалицо.jpeg.

Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

119. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от Аноним (115), 07-Янв-21, 11:58 
А Ca куда зажилил?
Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

120. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от Аноним (115), 07-Янв-21, 12:03 
Кстати, даже без Ca можно предположить, что указанный кусок кода вычисляет какую-то KDF.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру