The clever part is not that two patches look alike. Forest and clouds do that all over a satellite image. A copy-move is a block lifted and pasted with one shift, so many matches share almost the same offset in x and y. The detector looks for that shared shift.
SIFT finds distinctive spots in the image, after a contrast boost so the forest is not one flat texture. Each spot is matched against the other spots in the same image. A match is kept only when the best one is clearly better than the second (Lowe’s ratio, 0.72), and the two spots are at least 80 pixels apart, so a feature is not paired with itself.
For every pair the shift is destination minus source. Pairs that share nearly the same shift are grouped. That grouping allows about 10 pixels of slack, and a group needs at least 7 matches.
A second grouping checks that those source points actually sit together, within about 110 pixels. Otherwise one shift could glue unrelated parts of the image into a single huge box.
Each of those groups is one candidate: one box pair. Box A is the min and max of the source points, box B is the min and max of the destination points, each padded by 20 pixels and clipped to the image. The label A or B is just the direction of the match. It does not decide which patch was copied from the other.
On this image that produces three candidates. The boxes in the demo are those padded rectangles.