| 210 | return pattern.sub(decode_dyn, source) |
| 211 | |
| 212 | def _decode_base32_calls(self, source: str) -> str: |
| 213 | pattern = re.compile( |
| 214 | r'base64\.b32decode\s*\(\s*b?(["\'])([A-Z2-7=\s]+)\1\s*\)' |
| 215 | r'(?:\.decode\s*\([^)]*\))?' |
| 216 | ) |
| 217 | def d(m): |
| 218 | try: |
| 219 | return repr(base64.b32decode(m.group(2).replace('\n','').replace(' ','')).decode('utf-8', errors='replace')) |
| 220 | except Exception: |
| 221 | return m.group(0) |
| 222 | return pattern.sub(d, source) |
| 223 | |
| 224 | def _decode_base85_calls(self, source: str) -> str: |
| 225 | pattern = re.compile( |