-
Notifications
You must be signed in to change notification settings - Fork 0
LLM Layer
luckyboxx edited this page May 9, 2026
·
1 revision
LLM layer는 opt-in입니다. 명시적인 --use-llm-* 플래그가 없으면 VenomHook은 LLM 모듈을 import하거나 호출하지 않고 결정론적으로 동작합니다.
설치:
pip install -e '.[llm]'
export ANTHROPIC_API_KEY=sk-ant-...공통 옵션:
| Option | Meaning |
|---|---|
| `--llm-provider {anthropic | echo}` |
--llm-model <name> |
provider 기본 모델 override |
--llm-token-budget N |
run 전체 input + output token cap |
--llm-cache-dir DIR |
SQLite response cache |
--no-llm-cache |
cache 비활성화 |
Rule-based scoring 이후 semantic:* tag를 추가합니다.
venomhook offset-static \
--static-json ./sample/examples/static_meta.sample.json \
--use-llm-tagging \
--llm-provider anthropic \
--llm-token-budget 20000 \
--out ./out/venomhook.jsonSDK/API key 누락, provider 실패, parse 실패, budget 초과는 해당 endpoint에만 영향을 주며 rule-based 결과는 유지됩니다.
Rule-based inference가 비워 둔 HookSpec.proto만 채웁니다. 이미 채워진 proto는 덮어쓰지 않습니다.
venomhook offset-static \
--static-json ./sample/examples/static_meta.sample.json \
--use-llm-proto \
--use-llm-tagging \
--llm-provider anthropic \
--llm-token-budget 30000 \
--out ./out/venomhook.json모델 출력 형식:
ret: jstring
arg0: JNIEnv *
arg1: jobject
arg2: const char *
JNI hook 동작을 짧은 한 문장으로 설명해 HookSpec.description에 저장합니다.
venomhook offset-static \
--static-json ./out/staticmeta.android.json \
--use-llm-flow \
--llm-token-budget 30000 \
--out ./out/venomhook.jsonMetadata가 부족하면 모델은 SKIP을 반환할 수 있고, description은 비워둡니다.
Markdown/HTML runtime report 끝에 analyst summary를 추가합니다.
venomhook offset-report-runtime \
--log ./logs/frida.log \
--out-md ./out/summary.md \
--out-html ./out/summary.html \
--use-llm-report \
--llm-token-budget 5000HTML output은 generated text를 escape 처리합니다.
HookSpec.sig에서 빌드별로 달라질 수 있는 byte를 ?? wildcard로 바꿔 Frida Memory.scan fallback 성공률을 높입니다.
venomhook offset-static \
--static-json ./out/staticmeta.json \
--use-llm-recovery \
--llm-token-budget 30000 \
--out ./out/venomhook.json검증 규칙:
- token 수는 원본 signature와 같아야 함
- token은
2-hex또는??만 허용 - non-wildcard byte는 원본과 정확히 일치해야 함
- wildcard 비율 75% 초과는 거부
- invalid output은 원본 signature 유지