Why should I know this?

백업 - Nodejs Uftrace 본문

Study

백업 - Nodejs Uftrace

die4taoam 2023. 3. 13. 05:30

Uftrace에서 Nodejs Javascript function calling record 기능을 개발 진행했을때 기록.

기능을 추가할 일이 있을지 미지수지만 일단 기록은 해놈

 

https://github.com/namhyung/uftrace/issues/617

 

tricky way to trace the javascript running with v8. · Issue #617 · namhyung/uftrace

As mentioned earlier, it is very useful to use the metadata provided by the tracing target. Tracing the execution of Javascript in v8 is possible with the -trace option. you can see this result wit...

github.com

 

https://github.com/ParkHanbum/uftrace/issues/20

 

v8에서 crash가 발생하는 특수한 상황 #2 · Issue #20 · ParkHanbum/uftrace

앞에서 본 문제가 발생하는 것을 막기 위해 심플한 검증 로직을 추가하여, RET에 주소가 실행가능한 영역이 아닌 경우에는 복귀주소 후킹을 하지 못하도록 코드를 추가했다. 하지만 이런 검증 로

github.com

https://github.com/ParkHanbum/uftrace/issues/17

 

mcount_exit 에서 r15를 복원하지 않아 crash 발생 · Issue #17 · ParkHanbum/uftrace

디버깅을 위해 -fno-inline 옵션을 주고 컴파일을 했을 시 mcount_exit는 r15를 복원하지 않으며 이로 인해 이후 crash가 발생하게 된다. 대상 software : node v10.16.0

github.com

https://github.com/ParkHanbum/uftrace/issues/21

 

support Non-hook-RET options · Issue #21 · ParkHanbum/uftrace

uftrace hope that functions follow the calling convention. but there is an exception like nodejs case. so, it is added restore-reset mechanism to uftrace. it still needs more precision. I have two ...

github.com

https://github.com/ParkHanbum/uftrace/issues/18

 

nodejs에서 crash 가 발생하는 특수한 상황 · Issue #18 · ParkHanbum/uftrace

nodejs는 자체적으로 polling을 한다. mcount_entry / mcount_exit 에서 이뤄지는 작업이 지연될 경우 nodejs의 timeout 로직에 진입하게 된다 nodejs는 r15가 어떤 특별한 값이 보관된다고 예약이 되어 있고, r15를

github.com

https://github.com/ParkHanbum/uftrace/issues/19

 

v8에서 crash가 발생하는 특수한 상황 · Issue #19 · ParkHanbum/uftrace

v8에서 Interpreting 함수들에 Instrument 할 경우 특수한 crash가 발생한다. d8> 1+1 Thread 2.1 "d8" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff2d90840 (LWP 118815)] 0x0000555...

github.com

https://github.com/ParkHanbum/uftrace/issues/12

 

v8 javascript tracing · Issue #12 · ParkHanbum/uftrace

As mentioned earlier, it is very useful to use the metadata provided by the tracing target. Tracing the execution of Javascript in v8 is possible with the -trace option. you can see this result wit...

github.com

 

'Study' 카테고리의 다른 글

프로그램 분석 분류  (0) 2023.05.19
Program Analysis (??)  (0) 2023.05.18
C++ new 연산자 null 체크는 필요한가?  (0) 2023.02.08
Shuffler Fast and Deployable Continuous  (0) 2023.02.05
Control Flow Integrity for COTS Binaries  (0) 2023.02.04
Comments