Projeto experimental de engenharia reversa e recompilação estática. O objetivo é traduzir o executável original para código nativo em Windows e Linux, sem substituir o console por um emulador.
Pesquisar o caminho técnico para traduzir o software do console para uma execução nativa em Windows e Linux. O progresso será registrado com evidências, limites e bloqueios reais.
O recorte parcial de ACTION.ELF completou 233.868.865 instruções e chegou a 0x00213DFC, sem guest_error ou falha de memória.
Bloqueio
O alvo seguinte ainda está fora do CFG nativo parcial; o runner retorna status 4 nessa fronteira. Isso não representa boot completo ou jogo aberto.
Solução
Adicionei a fronteira 0x00221E80 às raízes observadas e usei limite de 8.192 blocos, mantendo 1.024 na entrada principal. O artefato atual compilou 4....
A execução nativa parcial do ACTION.ELF completou 190.636.414 instruções e alcançou 0x00221E80, sem erro guest nem falha de memória.
Bloqueio
O recorte estático ainda não contém o próximo destino indireto; a execução encerra com status 4 na fronteira externa ao módulo. Isso ainda não é boot...
Solução
Ampliei o teto configurável das raízes observadas para 8.192, mantendo a entrada principal em 1.024 blocos e o dispatcher compartilhado. O artefato co...
O recorte parcial recompilado do ACTION.ELF completou 179.847.916 instruções e alcançou PC 0x00244180, sem guest_error nem falha de memória.
Bloqueio
O fluxo ainda alcança destinos fora do CFG parcial; mudanças na ordem das raízes também deslocavam a cobertura, e o teto anterior de 4.096 blocos obse...
Solução
Aumentei o limite configurável de raízes observadas de 4.096 para 8.192, mantendo a entrada principal em 1.024 blocos e o dispatcher compartilhado. O...
A inclusão ordenada das fronteiras observadas levou o ACTION.ELF a 152.233.080 instruções recompiladas e executadas, avançando até 0x0025A19C sem erro guest ou falha de memória.
Bloqueio
O módulo parcial ainda não contém todos os destinos indiretos do fluxo. O runtime para com status 4 no próximo endereço não compilado; isso não é um b...
Solução
Mantive o dispatcher indireto compartilhado, o suporte SQC2/LQC2 e a priorização das raízes quentes. O artefato atual contém 24.331 operações e foi ex...
A priorização das fronteiras quentes e o suporte a SQC2 permitiram ao ACTION.ELF superar 138 milhões de instruções nativas executadas. O artefato chegou a 0x00265AF0 sem erro do guest nem falha de memória.
Bloqueio
A cobertura continua sendo parcial. Ao atingir um destino indireto ainda fora do módulo recompilado, o dispatcher para com status 4; o runtime não che...
Solução
Mantive o dispatcher indireto compartilhado, a compilação de SQC2/LQC2 para estado VU0 de 128 bits e reordenei as raízes observadas para priorizar as...
O dispatcher compartilhado reduziu o IR e viabilizou compilar mais código do ACTION.ELF. A implementação de SQC2 permitiu executar 115.051.828 instruções até a nova fronteira 0x002882EC, sem erro do guest nem falha de memória.
Bloqueio
O LLVM sofria com switches indiretos repetidos no CFG parcial. Depois de reduzir esse custo, o ACTION parava em 0x001BFC94 porque SQC2 (0xF85F0000) ai...
Solução
Compartilhei o dispatcher de saltos indiretos nos módulos parciais, acrescentei SQC2/LQC2 de 128 bits ao decoder, YNIR e backend LLVM e passei a aceit...
Aumentar o orçamento do CFG observado para 1.024 gerou IR de 498 MB e bitcode de 142 MB, mas o llc atingiu cerca de 13,5 GB de memória privada e não concluiu o objeto. A expansão com 512 blocos também revelou que a ordem das raízes afeta quais caminhos cabem no orçamento compartilhado.
Bloqueio
O orçamento de raízes observadas é compartilhado e processado na ordem informada; priorizar uma raiz nova pode excluir blocos anteriores. Aumentar o o...
Solução
Interrompi a compilação sem objeto executável e preservei como referência o artefato válido anterior. O próximo recorte vai reduzir e priorizar as raí...
A inclusão da continuação 0x0012B3A4 permitiu ao ACTION recompilado completar 53.038.625 instruções e alcançar 0x0013A368, sem erro guest ou falha de memória.
Bloqueio
O recorte parcial terminava em 0x0012B3A4, omitindo a continuação da rotina e os blocos percorridos até 0x0013A368.
Solução
Confirmei o bloco no ELF, adicionei 0x0012B3A4 como raiz observada e recompilei o artefato ABI 8; a nova execução confirmou o avanço e registrou a pró...
A inclusão do bloco confirmado em 0x0012ACA4 permitiu ao ACTION recompilado avançar 18.035.527 instruções e alcançar 0x0012B3A4, sem erro guest nem falha de memória.
Bloqueio
O CFG parcial omitira o bloco sequencial 0x0012ACA4, destino do fluxo quando o desvio em 0x0012AC9C não era tomado.
Solução
Confirmei os opcodes no ELF, acrescentei 0x0012ACA4 como raiz observada e recompilei o artefato ABI 8, preservando os limites explícitos do recorte.
O recorte nativo parcial do ACTION.ELF passou pela inicialização observada do GS e pela configuração da causa INTC 0, executou rotinas guest chamadas indiretamente e avançou 53.038.292 instruções até o destino ainda não compilado 0x002F82B0.
Bloqueio
A escrita inicial combinada GS_CSR=0xB (SIGNAL, FINISH e VSINT) não era aceita pelo perfil, que só reconhecia ACKs individuais. Depois dessa barreira,...
Solução
Implementei o ACK combinado GS_CSR=0xB apenas no PC observado 0x0012A6E4 e registrei, em chamadas exatas do ACTION, AddIntcHandler(0), EnableIntc(0) e...