{"id":79719,"date":"2020-04-29T19:42:30","date_gmt":"2020-04-29T17:42:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly"},"modified":"2020-04-29T19:42:30","modified_gmt":"2020-04-29T17:42:30","slug":"razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly","title":{"rendered":"Los desarrolladores de V8 han presentado un descompilador para WebAssembly","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Los desarrolladores del motor JavaScript V8 <noindex><a rel=\"nofollow\" href=\"https:\/\/v8.dev\/blog\/wasm-decompile\">presentaron<\/a><\/noindex> herramienta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/blob\/master\/docs\/decompiler.md\">wasm-decompile<\/a><\/noindex>, que permite descompilar la representaci\u00f3n binaria intermedia <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51988\">WebAssembly<\/a><\/noindex> en un lenguaje pseudoc\u00f3digo legible, que recuerda a JavaScript y C. El pseudoc\u00f3digo propuesto es significativamente m\u00e1s f\u00e1cil de entender y m\u00e1s adecuado para el an\u00e1lisis manual que la representaci\u00f3n textual de WebAssembly en formato , que se asemeja m\u00e1s al ensamblador que a lenguajes de alto nivel. Al mismo tiempo, la descompilaci\u00f3n refleja por completo la representaci\u00f3n de Wasm seg\u00fan sea posible.<\/p>\n<p>Descompilador <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/tree\/master\/src\">activado<\/a><\/noindex> dentro del conjunto de herramientas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/\">WABT<\/a><\/noindex>, que proporciona la traducci\u00f3n entre representaciones binarias y textuales de WebAssembly, as\u00ed como an\u00e1lisis, procesamiento, modificaci\u00f3n y verificaci\u00f3n de archivos wasm. Dentro de WABT tambi\u00e9n se desarrolla la herramienta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/tree\/master\/wasm2c\">wasm2c<\/a><\/noindex>, que permite descompilar archivos wasm en un c\u00f3digo equivalente en lenguaje C, que puede ser compilado por un compilador de C, pero en t\u00e9rminos de legibilidad no se diferencia mucho del formato textual .<\/p>\n<p>Por ejemplo, una funci\u00f3n en C compilada en wasm<\/p>\n<p>   typedef struct { float x, y, z; } vec3;<\/p>\n<p>   float dot(const vec3 *a, const vec3 *b) {<br \/>\n       return a-&gt;x * b-&gt;x +<br \/>\n           a-&gt;y * b-&gt;y +<br \/>\n           a-&gt;z * b-&gt;z;<br \/>\n   }<\/p>\n<p>ser\u00e1 descompilada por la herramienta wasm-decompile en el pseudo-lenguaje<\/p>\n<p>   function dot(a:{ a:float, b:float, c:float },<br \/>\n             b:{ a:float, b:float, c:float }):float {<br \/>\n     return a.a * b.a + a.b * b.b + a.c * b.c<br \/>\n   }<\/p>\n<p>mientras que la conversi\u00f3n al formato textual  se ver\u00e1 de la siguiente manera<\/p>\n<p>   (func $dot (type 0) (param i32 i32) (result f32)<br \/>\n     (f32.add<br \/>\n       (f32.add<br \/>\n         (f32.mul<br \/>\n           (f32.load<br \/>\n            (local.get 0))<br \/>\n           (f32.load<br \/>\n             (local.get 1)))<br \/>\n         (f32.mul<br \/>\n           (f32.load offset=4<br \/>\n             (local.get 0))<br \/>\n           (f32.load offset=4<br \/>\n             (local.get 1))))<br \/>\n       (f32.mul<br \/>\n         (f32.load offset=8<br \/>\n           (local.get 0))<br \/>\n         (f32.load offset=8<br \/>\n           (local.get 1))))))<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fuente: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52833\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 JavaScript-\u0434\u0432\u0438\u0436\u043a\u0430 V8 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 wasm-decompile, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 WebAssembly \u0432 \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u044f\u0437\u044b\u043a, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0438\u0439 JavaScript \u0438 \u0421\u0438. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u044f\u0437\u044b\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0449\u0435 \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0435\u043d \u0434\u043b\u044f \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430, \u0447\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 WebAssembly \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 &#171;.wat&#187;, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043b\u0438\u0436\u0435 \u043a \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0443, \u0447\u0435\u043c \u043a \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c \u044f\u0437\u044b\u043a\u0430\u043c. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 Wasm. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-79719","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 JavaScript-\u0434\u0432\u0438\u0436\u043a\u0430 V8 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0443\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 V8 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f WebAssembly | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 JavaScript-\u0434\u0432\u0438\u0436\u043a\u0430 V8 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0443\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-29T17:42:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-29T17:42:30+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Los desarrolladores de V8 han presentado un descompilador para WebAssembly | ProHoster","description":"Los desarrolladores del motor JavaScript V8 han presentado una herramienta","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 V8 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f WebAssembly | ProHoster","og:description":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 JavaScript-\u0434\u0432\u0438\u0436\u043a\u0430 V8 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0443","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-29T17:42:30+00:00","article:modified_time":"2020-04-29T17:42:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"79719","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:32:23","updated":"2022-09-27 18:38:43","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/79719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=79719"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/79719\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=79719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=79719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=79719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}