【Re】36C3CTF xmas_future

XMAN【我真的好菜-同pizza师傅修炼笔记一】easyvm&easywasm 前言 -。-做这两题好想哭-。- 我好菜丫,大佬直接看伪汇编写脚本。我呢,脚本都快看不懂。 wasm wasm虐我千百遍我却待她如初恋。-。 之前遇到过类似的,但是没有仔细的研究,只知道夜影师傅的blog有写过类似的文章,但是没写全。 首先是用wabt项目将wasm转化为c代码,虽然效果感人,但至少比wat要强一点。 一直想要调试它,但我真的好菜,网上找了好多demo不过报了好多奇奇... 阅读详情

这是一道wasm的逆向题。
先分析给的js文件
在这里插入图片描述
存在一个check函数里面调用了wasm.check,传入了两个参数一个是flag,一个是flag的len。接下来就要对wasm进行分析。
先使用开源项目wabt将hxp.wasm文件反编译成C文件hxp.c
项目地址:wabt
但是这c语言还是比较难理解,用gcc将其其编译成x86架构下的目标文件。

gcc -c hxp.c -o hxp.o

先丢到ida中静态分析。发现了check函数。
在这里插入图片描述
里面还有一个hxp2019_check函数跟进去。这个返回值v6不是0就是1刚好和js里的返回值对应了,这应该就是check_flag的函数,查看哪里对v6进行了修改。
在这里插入图片描述这边有个比较,将v8和内存中某处的值进行比较。v8应该是用户输入的flag,那么内存中的值是什么,在查看程序中的字符串时有所发现。
在这里插入图片描述
查看引用。
在这里插入图片描述
发现了和上面内存地址很相近的地方,这块地方存储的是“hxp{}e_seem/agibtrn/ewmsu_rdrxtr_wbe_hkm.oaeyirncm”但是这明显也不是flag,但是看上去已经很接近了,应该是经过了什么变换,感觉应该很简单了,但是分析半天没分析出来咋变的(我太菜了)。回到hxp2019_check函数,上面真的看不太懂,只能碎片化分析。
在这里插入图片描述
这里是对输入flag长度check。
在这里插入图片描述
这里是对flag前4个字符进行check。
在这里插入图片描述

这个猜测是计算偏移的,但是尝试的时候怎么试都不太对,无奈进行动态分析。
开个apache,把文件目录放到/srv/http下(arch系统),然后修改httpd目录。用firefox动态调试。
跟到check函数
在这里插入图片描述
这是check长度的。
在这里插入图片描述
这是check前4个字符的。
在这里插入图片描述
这里发现那串字符串变换的代码,分析了下运算iter先和1337相乘再和内存中某值进行异或,等下不就是这个吗。
在这里插入图片描述
然后查了下运算优先级,发现乘法运算优先级比异或高,我???为什么会有这种错觉,算了就当学了波动态调试吧,唉。
把内存数据提取一下,一行就解决了。
在这里插入图片描述
这题可以作为一个wasm入门题来做,学习了一波静态分析和动态分析。

京麒CTF2024-Re-easy-wasm 浏览器访问:127.0.0.1:8888 就可以访问这个页面并且进行调试了!分析发现这里的check_flag是假的,flag不在这里!我想你应该知道 flag 是什么了!然后就可以去浏览器看看具体的wasm代码了!找到注册的加密函数->主动调用->逐字节爆破密文。调试的时候会发现存在无限debugger QAQ。这样就可以用浏览器来进行调试了!当然这样是不够的要去看代码QAQ。"你输入的 flag 是:""答错了,再想想吧! 阅读详情

相关推荐

京麒CTF2024-Re-easy-wasm(wasm逆向分析)

京麒CTF2024-Re-easy-wasm(wasm逆向分析)

CTF-RE-webassembly (2019强网杯)

打开之后得到三个同名文件,分别是.js .wasm .html .html用浏览器打开,发现让我们输入flag。由于.js在我电脑里好像打不开,没配置相关环境,所以选择通过.wasm进行逆向。 .wasm逆向的一般套路,用wasm2c将wasm转化成c伪代码,然后再用gcc -c命令编译但是不链接得到.o文件。注意编译时缺少什么文件就在wasm2c文件夹中复制过去即可。 .o文件用ida打开...

SuperGate的博客 2130

从亚稳态到流片失败:SpyGlass CDC在5G芯片设计中的避坑指南

本文深入探讨了在复杂5G芯片设计中,如何利用SpyGlass CDC工具构建高效的时钟域交叉验证流程,以避免因亚稳态问题导致的流片失败。文章结合实战经验,详细解析了从约束编写、时钟复位完整性检查到层次化验证和特殊场景处理的全过程,并强调了精准的检查约束是确保验证有效性的基石,旨在帮助设计团队安全跨越异步时钟域的雷区。

weixin_29168153的博客 444

D^3CTF2022 Re复现

经提醒想起有这么个东西,当时在忙着别的事。。。复现真是大开眼界,最大的收获就是知道了好多新名词,暂时告一段落了

Pvr1sC的博客 1848

FDTD Script命令学习-farfield3d/farfieldux/farfielduy

介绍了farfield3d/farfieldux/farfielduy命令功能,及不同应用语法和参数介绍,以及对官网示例进行介绍。

jxxl_1314的博客 3098

解锁RK3588视觉潜能:RGA硬件加速库实战指南

本文深入探讨了如何利用RK3588芯片内置的RGA硬件加速库,解决视觉应用中图像预处理的性能瓶颈。通过实战指南,详细介绍了RGA库在YUV转RGB、图像缩放等核心操作上的应用,相比CPU软处理可大幅降低延迟与CPU占用,从而充分释放RK3588的NPU算力,构建高效的AI视觉预处理流水线。

zeta9的博客 669

WebAssembly 逆向分析:如何反编译 Wasm 二进制文件,修改游戏里的“金币数量”?

WebAssembly 是一种基于堆栈虚拟机的二进制指令格式。它类似于汇编语言,但比 x86 汇编更抽象。浏览器加载.wasm文件,编译为机器码运行。逆向 Wasm 的两种核心思路:静态分析:将.wasm反汇编为.wat(WebAssembly Text) 或伪 C 代码,分析逻辑。动态调试:利用浏览器开发者工具挂载断点,或直接修改(线性内存)。fill:#333;important;important;fill:none;color:#333;color:#333;important;

BUG猿的博客 2831

【100%通过率】2024华为OD机试真题E卷 C++语言 实现【流浪地球】

流浪地球计划在赤道上均匀部署了N个转向发动机,按位置顺序编号为0~N-1。 1) 初始状态下所有的发动机都是未启动状态; 2) 发动机起动的方式分为“手动启动”和“关联启动”两种方式; 3) 如果在时刻1一个发动机被启动,下一个时刻2与之相邻的两个发动机就会被“关联启动”; 4) 如果准备启动某个发动机时,它已经被启动了,则什么都不用做; 5) 发动机0与发动机N-1是相邻; 地球联合政府准备挑选某些发动机在某些时刻进行“手动启动”,当然最终所有的发动机都会被启动。 哪些发动机最晚被启动呢?

MISAYAONE的博客 4211

ctf-36C3解析

所以整个流程我们可以总结为以下:1.利用compress.zlib://http://或者compress.zlib://ftp://来上传任意文件,并保持 HTTP 长链接竞争保存我们的临时文件2.利用超长的 name 溢出 output buffer 得到 sandbox 路径3.利用 Nginx 配置错误,通过.well-known../files/sandbox/来获取我们 tmp 文件的文件名目录穿越:4.发送另一个请求包含我们的 tmp 文件,此时并没有 PHP 代码。

m0_68976043的博客 996

手把手教你从入门到精通C#串口通信

本文以我开发的串口助手SComTool为例,详细介绍《C#串口通信从入门到精通》专栏的目录内容,本专栏由一个高级工程师多年实战经验总结,绝对是c#串口通信的葵花宝典!带您从入门到精通C#串口通信!

qq_34059233的博客 3万+

YOLOv11涨点改进 | Neck改进篇 | YOLOv11引入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率

本文介绍了基于BiFPN特征融合模块优化的YOLOv11目标检测模型。BiFPN通过双向跨尺度连接和加权特征融合机制,显著提升了多尺度特征融合效率。该方法在COCO数据集上实现了55.1AP的检测精度,同时大幅降低计算成本(减少13-42倍FLOPs)。文章详细解析了BiFPN模块结构、核心代码实现方法,并提供了YOLOv11-BiFPN配置文件的修改指导,为计算机视觉领域提供了一种高效的目标检测解决方案。

Ai缝合怪、助力小伙伴高效发论文 714

hxp 36C3 CTF Web题 WriteupBin Writeup (Selenium模拟点击+Content Security Policy+Nonce+Parsley.js触发错误提示)

WriteupBin – A web challenge from hxp 36C3 CTF https://ctftime.org/event/825 题目部署 本地搭建: 解压WriteupBin.tar.xz,在Dockerfile所在目录下执行: echo 'hxp{FLAG}' > flag.txt && < /dev/urandom tr -dc a-f0-...

keyball123的博客 2798

【100%通过率】华为od 机试真题 C语言 实现【补种未成活胡杨】

近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?

MISAYAONE的博客 1654

171229 逆向-WebAssembly的逆向(1)

1625-5 王子昂 总结《2017年12月29日》 【连续第455天总结】 A. 34c3ctf - wasm B. 搜索一下题目,得到WebAssembly的关键词 WebAssembly 主要试图解决现有技术的一些问题: JavaScript:性能不够理想,以及语言本身的一堆坑(这个大家都懂) Flash:私有技术(而且漏洞一堆),并且是纯二进制格式 Sil

whklhhhh的博客 6864

LoveSQL

LoveSQL(SQL注入详解) 1、根据题目,显然想到的是sql注入漏洞,直接尝试万能密码 2、此时url构造,查看字段数 /check.php?username=admin' order by 3%23&password=1 # 存在 /check.php?username=admin' order by 4%23&password=1 # 报错 因此,得到总共有三个字段数 注意:url中不能用#,应该用url编码%23 3、用union来查询测试注入点,查看回显点

lunan的博客 1562

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

171228 逆向-34c3ctf(m0rph)

1625-5 王子昂 总结《2017年12月28日》 【连续第454天总结】 A. 34c3ctf - m0rph B. 国际的CTF难度真是感人……OTZ虽然确实很好玩就是了64位elf文件,拖入IDA打开,找到main函数 哎哟,这么清晰的结构~真是Easy啊~太年轻了 仔细看看,len要求为23,再往下….v6是函数?qword_202020+8*i这里放着啥函数啊 点过去也

whklhhhh的博客 944

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

go1.11 wasm helloworld

go 1.11 版本中已经支持了对go程编译出web可执行的wasm文件,向js的强悍地位提出了挑战。 试水: 1.新建main.go package main import ( "fmt" ) func main() { fmt.Println("hello,wasm") } 2.交叉编译成web可执行的二进制文件 该文件路径下,右键-git bash here,须安装git for w...

fwhezfwhez的博客 1637

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【X03】re的入门之非常规RE&pwn的逆向

Irregular Reverse Engineering Any format file with any architecture lua/python/java/lua-jit/haskell/applescript/js/solidity/webassembly/etc.. firmware/raw bin/etc… chip8/avr/clemency/risc-v/etc....

weixin_42210074的博客 925

CTF夺旗训练课程

第一章 课程介绍与环境搭建 1-2 环境搭建 攻击机统一为kali,直接用ova文件创建靶场机器后,靶场机器要求进行登陆。 可我们并没有用户名和密码。问题是:如果我们不进行登陆,如何获得靶场机器的ip地址?从而达到联通靶场机器的目的. 这里我们使用netdiscover命令 netdiscover -r ip/子网掩码    24为24位二进制数1,就是255.255.255.0。...

taozijun的博客 1万+

watevrCTF 2019 Repyc

uncompyle6 version 3.7.4 # Python bytecode 3.6 (3379) # Decompiled from: Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)] # Embedded file name: circ.py # Compiled at: 2019-12-14 02:29:55 # Size of source mod 2**32: 5

Misaka10046的博客 675

CTF到渗透测试【浅谈渗透测试之信息收集】

前言 从一个ctf选手到一个渗透测试工程师,第一步需要改变的就是学习信息收集。渗透测试不是比赛,不会有提示,不会有查看源代码内藏提示等等,甚至你不可以使用扫描器(比如ctf中常见的AWVS),sqlmap等等。 工作中,一般进行的都是黑盒测试,你得考虑到厂商虽然授权允许你进行测试,但是你不可以使用dos,社工(一般这样就算getshell厂商也不认),不可以对厂商正常的运营造成破

Sp4rkW的博客 1万+

安装IDA pro插件 idawasm 用于逆向WebAssembly模块

今天做一道题,是一个wasm文件,需要安装wasm插件才能在IDA中打开 idawasm下载地址:https://github.com/fireeye/idawasm 下载后分别运行这三步 注意: 1.第一步需要使用python2才能设置成功。如果电脑上只有python2环境,则直接运行;如果电脑上只有python3环境,需要先安装python2并设置好环境,再将python2目录下的...

Hotspurs的博客 3548

future web

blog https://oi-wiki.org/ https://ctf-wiki.github.io/ctf-wiki/#how-to-build 首页增加 vim(https://oi-wiki.org/intro/editor-vim/) 转载于:https://www.cnblogs.com/ac_forever/p/11203159.html

weixin_30674525的博客 210

【re】 watevrCTF2019_Repyc

这题给了个pyc。先用uncompyle反编译成py。 uncompyle6 3nohtyp.pyc >>sss.py 打开,然后惊了。 # uncompyle6 version 3.6.0 # Python bytecode 3.6 (3379) # Decompiled from: Python 3.8.0 (default, Oct 23 2019, 18:51:26) # ...

Nothing 698

Emscripten实现把C/C++文件转成wasm,wast(wasm的可读形式),llvm字节码(bc格式),ll格式(llvm字节码的可读形式)并执行wasm

《一》˙转换 Emscripten实现把C/C++文件转成wasm,wast(wasm的可读形式),llvm字节码(bc格式),ll格式(llvm字节码的可读形式)的步骤: 最新版本的Emscripten(1.38.12)已经能实现把c/c++转成wasm文件,例子; (1)源文件:extern.cc  如果不加extern “c”{}则转出的wasm文件对应的wast文件只有module这...

kojhliang的专栏 4493
上一篇: 【pwn】ciscn_2019_es_2
下一篇: 【pwn】 cmcc_simplerop
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值