2018-knockel-analysis
findings extracted from this paper
-
WeChat's OCR filter performs blob merging to reconstruct characters from disconnected components. Filling character strokes with tiled letter patterns evaded OCR filtering in 100% of tests (vs. 92% for tiled square patterns), because tiled letters distract the blob-merging stage into finding the letter tiles rather than the composed characters.
-
WeChat's OCR-based image filter converts images to grayscale using the luminosity formula (0.299r + 0.587g + 0.114b) before text recognition. All 150 test images with colored text on a luminosity-matched gray background evaded OCR filtering, while average and lightness formulas failed to evade filtering for most colors.
-
WeChat normalizes uploaded images by their shortest dimension before blacklist comparison. Adding blank space equal to 50–200% of the longest dimension caused 4/5 wide images and 3/5 tall images to evade filtering; adding space along the shortest dimension never evaded filtering, consistent with a shortest-dimension resize hypothesis.
-
WeChat's visual-based image filter compares uploads against a specific blacklist using a perceptual similarity metric rather than ML classification. Semantic-preserving transformations — mirroring, cropping, adding whitespace — evaded all 15 tested blacklisted images, and images filtered visually were typically removed within 10 seconds, faster than OCR-filtered images (5–30 seconds).
-
WeChat's visual filter compares images as a whole rather than via a sliding window. Adding 3 or more duplicate copies of a blacklisted image to its canvas caused 8/10 images to evade filtering with no evasion attributable to compression artifacts (Figure A.13), whereas blank canvas extensions evaded mostly only through compression artifacts.