Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
qsynth-artifacts — Conjuntos de dados de benchmark e artefatos de síntese para o QSynth, contendo funções C ofuscadas pelo Tigress, binários x86_64, traces de execução, ground truth e resultados de AST sintetizados. | Kitploit
Ferramentas/GitHubGitHub/werew/qsynth-artifacts
Análise EstáticaAnálise Dinâmica (Sandboxing)Análise de CódigoEngenharia ReversaAnálise de BináriosPapers e PesquisaAprendizado e Educação
GitHubwerew/qsynth-artifacts

qsynth-artifacts

Conjuntos de dados de benchmark e artefatos de síntese para o QSynth, contendo funções C ofuscadas pelo Tigress, binários x86_64, traces de execução, ground truth e resultados de AST sintetizados.

Ver Repositório
114há 6 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

QSynth Synthesis Artefacts

Datasets

Estes artefatos fornecem os seguintes quatro datasets:

  • syntia: 500 funções ofuscadas com EncodeArithmetic e EncodeData
  • custom_EA: 500 funções ofuscadas com EncodeArithmetic
  • custom_VR_EA: 500 funções ofuscadas com Virtualize e EncodeArithmetic
  • custom_EA_ED: 500 funções ofuscadas com EncodeArithmetic e Virtualize (o trace da base de dados está truncado para 293 funções)

Um benchmark

Cada diretório de dataset contém os seguintes ficheiros:

  • original.c: ficheiro fonte contendo todas as funções

  • obfuscated.c: ficheiro fonte ofuscado conforme gerado pelo Tigress

  • run_tigress.sh: Script Shell para regenerar o ficheiro obfuscated.c

  • ground_truth.json: um ficheiro JSON contendo o ground truth. Para cada função contém a expressão original (em original.c) e a sua contraparte ofuscada em (obfuscated.c)

  • obfuscated: binário pré-compilado como x86_64 (sem PIE)

  • trace.db: o trace de execução como base de dados SQLite (provavelmente o ficheiro mais interessante)

  • results:

    • qsynth.log: a saída bruta do script de síntese
    • qsynth.json: saída processável pelo QSynth (muito provavelmente o segundo ficheiro mais interessante)

Resultado

O qsynth.json contém para cada função as seguintes entradas, tais como:

{
  "target_1": {
    "fun_name": "target_1",
    "start": 164,
    "stop": 238,
    "orig_ast": "~(b*d ^ d*d) - b",
    "orig_node": 10,
    "orig_depth": 5,
    "obfu_ast": "(((b & d)*(b | d) + (b & ~d)*(~b & d) & (d & d)*(d | d) + (d & ~d)*(~d & d)) - ((b & d)*(b | d) + (b & ~d)*(~b & d) | (d & d)*(d | d) + (d & ~d)*(~d & d)) - 1 ^ b) - ((~(((b & d)*(b | d) + (b & ~d)*(~b & d) & (d & d)*(d | d) + (d & ~d)*(~d & d)) - ((b & d)*(b | d) + (b & ~d)*(~b & d) | (d & d)*(d | d) + (d & ~d)*(~d & d)) - 1) & b) + (~(((b & d)*(b | d) + (b & ~d)*(~b & d) & (d & d)*(d | d) + (d & ~d)*(~d & d)) - ((b & d)*(b | d) + (b & ~d)*(~b & d) | (d & d)*(d | d) + (d & ~d)*(~d & d)) - 1) & b))",
    "obfu_node": 229,
    "obfu_depth": 12,
    "triton_ast": "(((b & d)*(b | d) + (~b & d)*(~d & b) & d*d) - (d*d | (b & d)*(b | d) + (~b & d)*(~d & b)) - 1 ^ b) - (((d*d ^ (b & d)*(b | d) + (~b & d)*(~d & b)) & b) + ((d*d ^ (b & d)*(b | d) + (~b & d)*(~d & b)) & b))",
    "triton_node": 95,
    "triton_depth": 10,
    "synthesized_ast": "~((d*d ^ d*b) + b)",
    "synth_node": 10,
    "synth_depth": 5,
    "dse_t": 0.10445356369018555,
    "synthesis_t": 0.03491616249084473,
    "sem_orig_obf": "UNK",
    "sem_obf_trit": "UNK",
    "sem_orig_synth": "OK",
    "is_simplified": true,
    "is_fully_synthesized": true
  }
}

Start e stop são os offsets no trace de execução (portanto o id na BD). Depois, para cada expressão, a própria expressão e o seu tamanho em nós e profundidade. Em seguida, dse_t, synthesis_t fornecem respetivamente o tempo de execução simbólica e o tempo de síntese. is_simplified e is_fully_synthesized indicam se a função foi simplificada e, em caso afirmativo, se foi totalmente. sem_orig_obf, sem_obf_trit e sem_orig_synth indicam se a semântica é preservada entre, por exemplo, original e sintetizada (sem_orig_synth). "UNK" indica que não foi verificado ou que resultou num timeout.

Tabelas de oráculo de síntese

As tabelas usadas para os benchmarks estão disponíveis aqui: https://ret2libc.com/static/various/lts_15/ São objetos pickle do Python. As expressões são codificadas com uma Notação Polaca Inversa (RPN) semelhante à do Syntia.

Baixar ferramenta