{"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\/fr\/blog\/news\/razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly","title":{"rendered":"Les d\u00e9veloppeurs de V8 ont pr\u00e9sent\u00e9 un d\u00e9compilateur pour WebAssembly","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Les d\u00e9veloppeurs du moteur JavaScript V8 <noindex><a rel=\"nofollow\" href=\"https:\/\/v8.dev\/blog\/wasm-decompile\">a \u00e9t\u00e9 pr\u00e9sent\u00e9e<\/a><\/noindex> outil <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/blob\/master\/docs\/decompiler.md\">wasm-decompile<\/a><\/noindex>, permettant de d\u00e9compiler une repr\u00e9sentation binaire interm\u00e9diaire <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51988\">WebAssembly<\/a><\/noindex> dans un langage pseudo lisible, similaire \u00e0 JavaScript et C. Le pseudo-langage propos\u00e9 est beaucoup plus facile \u00e0 comprendre et mieux adapt\u00e9 \u00e0 une analyse manuelle que la repr\u00e9sentation textuelle de WebAssembly au format , qui est plus proche de l'assembleur que des langages de haut niveau. De plus, la d\u00e9compilation refl\u00e8te compl\u00e8tement la repr\u00e9sentation de Wasm dans la mesure du possible.<\/p>\n<p>D\u00e9compilateur <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/tree\/master\/src\">est inclus<\/a><\/noindex> dans l'outil <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/\">WABT<\/a><\/noindex>, qui fournit la traduction entre les repr\u00e9sentations binaire et textuelle de WebAssembly, ainsi que l'analyse, le traitement, la modification et la v\u00e9rification des fichiers wasm. Au sein de WABT, un utilitaire est \u00e9galement en d\u00e9veloppement <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/tree\/master\/wasm2c\">wasm2c<\/a><\/noindex>, permettant de d\u00e9compiler les fichiers wasm en code \u00e9quivalent en langage C, qui peut \u00eatre compil\u00e9 par un compilateur C, mais en termes de lisibilit\u00e9, il ne diff\u00e8re gu\u00e8re de la repr\u00e9sentation textuelle .<\/p>\n<p>Par exemple, une fonction C compil\u00e9e 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>sera d\u00e9compil\u00e9e par l'utilitaire wasm-decompile en pseudo-langage<\/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>tandis que la conversion en format texte  ressemblera \u00e0 ceci<\/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>Source : <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\/fr\/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=\"fr_FR\" \/>\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\/fr\/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\udd47Les d\u00e9veloppeurs de V8 ont pr\u00e9sent\u00e9 un d\u00e9compilateur pour WebAssembly | ProHoster","description":"Les d\u00e9veloppeurs du moteur JavaScript V8 ont pr\u00e9sent\u00e9 un utilitaire","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/razrabotchiki-v8-predstavili-dekompilyator-dlya-webassembly","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/79719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=79719"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/79719\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=79719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=79719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=79719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}