fix: DrHider — CSV in ZIP, double-encode fix, multipart parser
Deploy contracts-flask / validate (push) Successful in 0s
Deploy contracts-flask / validate (push) Successful in 0s
This commit is contained in:
@@ -218,12 +218,13 @@ class TwoPassObfuscator:
|
||||
else:
|
||||
# .doc или другой — замена по тексту
|
||||
txt = all_texts.get(fname, '')
|
||||
obf_content = self._replace_in_text(txt, fname).encode('utf-8')
|
||||
obf_content = self._replace_in_text(txt, fname)
|
||||
|
||||
results.append((fname, obf_content))
|
||||
|
||||
# Собираем ZIP + CSV
|
||||
return self._build_zip(results), self._build_mapping_csv()
|
||||
csv_str = self._build_mapping_csv()
|
||||
return self._build_zip(results, csv_str), csv_str
|
||||
|
||||
finally:
|
||||
shutil.rmtree(self._workdir, ignore_errors=True)
|
||||
@@ -362,12 +363,14 @@ class TwoPassObfuscator:
|
||||
|
||||
# --- Сборка выдачи ---
|
||||
|
||||
def _build_zip(self, files: List[Tuple[str, bytes]]) -> bytes:
|
||||
"""Собрать ZIP с обфусцированными файлами."""
|
||||
def _build_zip(self, files: List[Tuple[str, bytes]], mapping_csv: str = "") -> bytes:
|
||||
"""Собрать ZIP с обфусцированными файлами + mapping.csv."""
|
||||
buf = io.BytesIO()
|
||||
with zipfile.ZipFile(buf, 'w', zipfile.ZIP_DEFLATED) as zf:
|
||||
for fname, content in files:
|
||||
zf.writestr(fname, content)
|
||||
if mapping_csv:
|
||||
zf.writestr("mapping.csv", mapping_csv.encode('utf-8'))
|
||||
return buf.getvalue()
|
||||
|
||||
def _build_mapping_csv(self) -> str:
|
||||
|
||||
Reference in New Issue
Block a user