Web Assembly 시작

2020. 8. 9. 23:03

https://d2.naver.com/helloworld/8786166

 

진행 중

 

  • WebAssembly Studio: 온라인 IDE(integrated development environment)를 사용해 C와 Rust, AssemblyScript 등으로 WebAssembly 코드를 작성해 볼 수 있는 플레이그라운드 사이트이다.
  • Extending the browser with WebAssembly: Alliance for Open Media AV1 비디오 코덱의 소스 코드를 감싸는 래퍼(wrapper)를 빌드해 브라우저에서 코덱을 실행할 수 있게 하는 과정을 소개하는 글이다.
  • Emscripten and npm: 일반적인 웹 애플리케이션 프로젝트에 WebAssembly 모듈을 통합하기 위해 준비해야 하는 설정을 설명하는 글이다.

 

https://www.hahwul.com/2018/10/06/hacking-security-analysis-web-assembly/

 

Hacking & Security Analysis Web Assembly(웹 어셈블리 해킹/보안분석)

Security engineer, Bugbounty hunter, Developer and... H4cker

www.hahwul.com

https://www.wasm.com.cn/demo/Tanks/

 

Unity WebGL Player | Tanks!

 

www.wasm.com.cn


https://i.blackhat.com/us-18/Thu-August-9/us-18-Lukasiewicz-WebAssembly-A-New-World-of-Native_Exploits-On-The-Web-wp.pdf

 

 

https://github.com/WebAssembly/wabt/tree/master/wasm2c

 

WebAssembly/wabt

The WebAssembly Binary Toolkit. Contribute to WebAssembly/wabt development by creating an account on GitHub.

github.com

웹어셈블리를 C언어로 변환해주는 툴

 

 

wasm2c test.wasm -o test.c 커맨드를 실행하면 test.c과 헤더 파일인 test.h가 발생

사실 test.c 자체도 문법적 오류가 없지만 (!), 웹어셈블리에서 import가 존재하는 경우 링커에서 unresolved reference 에러가 나게 됩니다.

해결법은 다행히 간단한데, 헤더에 있는 선언들이 공간을 갖도록 해주면 됩니다.

sed -i 's/^extern //g' test.h 그리고, 컴파일을 해줍니다. 단 C 생성을 위해 쓰인 여러 런타임 함수들이 구현되어있는 wasm2c/wasm-rt-impl.c 파일도 같이 컴파일해줍니다.

gcc test.c /wasm-rt-impl.c -o test --shared -fPIC 이러면 이제 디컴파일이 가능한 ELF 파일이 나옵니다, 웹어셈블리는 개발자 도구를 통해 디버깅 할 수 있습니다.

 

'' 카테고리의 다른 글

CORS (Cross Origin Resource Sharing)  (0) 2020.08.11
DNS Rebinding 을 이용한 우회  (0) 2020.08.10
Oauth 개념과 원리  (0) 2020.08.09
SSRF Types And Ways To Exploit It (Part-1)  (0) 2020.08.09
JSP SQL 인젝션 대응방안  (0) 2020.08.08
블로그 이미지

wtdsoul

,