Initial commit: soothe2 RE workspace + roadmap
- Инфраструктура: RTTI-дампы (rtti_dsp/full.json), декомпиляции DSP-классов (decomp_*.txt), Ghidra-скрипты (Dump*.java, ImportRtti*.java, Diag.java), depthcurve/curve_fits LUT. - Поведенческая модель sim_v5.py + sim.py (RMSE ~0.3dB), утилиты (measure, tt_sweep, patchparam, sweep, harness_*, verify_sim). - summary.md + roadmap.md (контракт из manual M1-M12, топология пайплайна из OCR, фазы A-C). - pipeline_ocr.txt: OCR диаграммы Appendix A (mid/side ручка, trim/mix/bypass порядок).
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import ghidra.app.script.GhidraScript;
|
||||
import ghidra.program.model.listing.Function;
|
||||
import ghidra.program.model.symbol.Symbol;
|
||||
import ghidra.program.model.symbol.SymbolIterator;
|
||||
import ghidra.program.model.symbol.SymbolType;
|
||||
|
||||
public class Diag extends GhidraScript {
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
int nf = 0;
|
||||
for (Function f : currentProgram.getFunctionManager().getFunctions(true)) {
|
||||
nf++;
|
||||
}
|
||||
println("FUNCTION_COUNT " + nf);
|
||||
|
||||
String[] keys = {"Soothe2", "Spectral", "FilterGraph", "DigitalFilter",
|
||||
"IIRFilter", "LowPass", "ModuleBase", "Decryptor",
|
||||
"processBlock", "process"};
|
||||
SymbolIterator si = currentProgram.getSymbolTable().getAllSymbols(true);
|
||||
int shown = 0;
|
||||
while (si.hasNext()) {
|
||||
Symbol s = si.next();
|
||||
String name = s.getName(true);
|
||||
if (name == null) name = s.getName();
|
||||
if (name == null) continue;
|
||||
for (String k : keys) {
|
||||
if (name.toLowerCase().contains(k.toLowerCase())) {
|
||||
println("SYMB " + name + " " + s.getAddress() + " " + s.getSymbolType());
|
||||
shown++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
println("SYM_TOTAL " + shown);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user