ISRC-CAS/pacific

make sample

sandking opened this issue · 2 comments

有几个疑问想请教下

make sample 执行后的产物是从 方舟编译后的 .s 文件 输出 .o 文件,然后通过调用 qemu-aarch64 来执行,这个过程有几个疑问

  1. 为啥入口是固定死的 LHelloWorld_3B_7Cmain_7C_28ALjava_2Flang_2FString_3B_29V 如果此时我的函数调用更改会怎么样,或者是否可以随便写个静态函数,只要入口正确且参数列表正确,都可以调用
  2. .o 文件是直接被 pacific 直接调用的么?是否可以通过 qemu-aarch64 来输出一个正常的可执行文件

有几个疑问想请教下

make sample 执行后的产物是从 方舟编译后的 .s 文件 输出 .o 文件,然后通过调用 qemu-aarch64 来执行,这个过程有几个疑问

1. 为啥入口是固定死的 LHelloWorld_3B_7Cmain_7C_28ALjava_2Flang_2FString_3B_29V 如果此时我的函数调用更改会怎么样,或者是否可以随便写个静态函数,只要入口正确且参数列表正确,都可以调用

这个实际上是逆向出来的。我们没有拿到方舟运行时环境的文档,目前就是兴趣hack了一下。

2. .o 文件是直接被 pacific 直接调用的么?是否可以通过 qemu-aarch64 来输出一个正常的可执行文件

我来确认下。是否有这种(比较小代价就实现的)可能性。