1: mov dl, BYTE PTR[rsi+rcx] //
2: xor dl, 0x30 // XOR 0x30(2진수 0011 0000)
3: mov BYTE PTR[rsi+rcx], dl //
4: inc rcx // rcx 1증가
5: cmp rcx, 0x19 // rcx 값과 ox19비교 (
6: jg end // 위 조건 만족 시
7: jmp 1 // 아닐 시 반복 수행
0x400000 부터 0x40018 까지 XOR 0x30을 반복 하는 코드 이다.
바꾼 코드
0x57 = W 0x65 = e 0x6c = l 0x63 = c 0x6f = o 0x6d = m 0x65 = e 0x20 = (space) Welcome()
0x74 = t 0x6f = o 0x20 = (space) 0x61 = a 0x73 = s 0x73 = s 0x65 = e 0x6d = m to()assem
0x62 = b 0x6c = l 0x79 = y 0x20 = (space) 0x77 = w 0x6f = o 0x72 = r 0x6c = l bly()worl
0x64 = d 0x21 = ! 0x30 = 0 0x30 = 0 0x30 = 0 0x30 = 0 0x30 = 0 0x30 = 0 d!
Welcome to assembly world!