| 184 | return source |
| 185 | |
| 186 | def _decode_base64_calls(self, source: str) -> str: |
| 187 | pattern = re.compile( |
| 188 | r'(?:base64\.)?b64decode\s*\(\s*b?(["\'])([A-Za-z0-9+/=\s]+)\1\s*\)' |
| 189 | r'(?:\.decode\s*\([^)]*\))?' |
| 190 | ) |
| 191 | def decode_b64(m): |
| 192 | try: |
| 193 | raw = m.group(2).replace('\n','').replace(' ','') |
| 194 | return repr(base64.b64decode(raw).decode('utf-8', errors='replace')) |
| 195 | except Exception: |
| 196 | return m.group(0) |
| 197 | return pattern.sub(decode_b64, source) |
| 198 | |
| 199 | def _decode_base64_dynamic_import(self, source: str) -> str: |
| 200 | pattern = re.compile( |