DeNA/DeClang

Maybe declang won't check config.json

tkmru opened this issue · 3 comments

tkmru commented

declangがconfig.jsonを見てくれないようなので、一度確認してもらえると助かります。ビルドが通るものの難読化が行われず、log.txtは空のままです。
バイナリはRelease-Mac-swift5.4-v1.1.1.zipのものを使っています。macOS上でC言語のコードをビルドして動作確認しています。
ビルドするたびに、DECLANG_HOME/.DeClang/log.txtが生成されるので、パスは通っていそうです。

config.jsonを次に示します。

$ cat config.json 
{
    "build_seed": "hello, i am seed",
    "enable_obfuscation": 1,
    "overall_obfuscation": 100,
    "flatten": [
        {
            "name": ".*main.*",
            "seed": "aaaaaaa",
            "split_level": 10
        }
    ]
}

ビルドに使ったコードを次に示します。

$ cat test.c 
# include <stdio.h>
# include <stdlib.h>

int main(int argc, char *argv[]) {
  int a = atoi(argv[1]); 
  int b = 2;
  int sum = a + b;
  printf("%d", sum);
  return 0;
}

ビルドに使ったコマンドを次に示します。SDKROOTを設定していないとリンク時にエラーが出ます。

$ export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"
$ DECLANG_HOME="/Users/tkmru/code/declang_path/" ./clang test.c 

log.txtは生成されるものの常に空です。

ご連絡、ありがとうございます。
ちなみに "-O2" 等の最適化オプション付きでビルドするとどうなりますでしょうか?

tkmru commented

うおおお、-O2をつけると動くようになりました。なるほど、最適化オプションをつけないと難読化パスに処理が渡らないんですね!

はい。そうなんです。解決してよかったです!
クローズします!