Egy icipicit megint változott az iTunes anti-debug. Mivel megtanultuk, hogy az iTunes.dll-t kell vizsgálnunk, ezt dolgoztattam fel IDA-val. Az importok között azonnal az IsDebuggerPresent cimkét kerestem. Három hivatkozást találtam az import-ra amelyek közül egy az __invoke_watson és egy a ___report_gsfailure eljárásban helyezkedett el. A harmadik egy nem nevesített eljárásban van. Az első kettő érthető módon nem a védelem része, ezért a harmadikra terelődött a figyelmem.
.text:10163F40 push esi
.text:10163F41 call ds:GetTickCount
.text:10163F47 mov esi, eax
.text:10163F49 mov eax, dword_11307504
.text:10163F4E add eax, 0EA60h
.text:10163F53 cmp esi, eax
.text:10163F55 jbe short loc_10163F81
.text:10163F57 call sub_1001D870
.text:10163F5C test al, al
.text:10163F5E jnz short loc_10163F73
.text:10163F60 call sub_1001D8F0
.text:10163F65 test al, al
.text:10163F67 jnz short loc_10163F73
.text:10163F69 call ds:IsDebuggerPresent
.text:10163F6F test eax, eax
.text:10163F71 jz short loc_10163F7B
.text:10163F73
.text:10163F73 loc_10163F73: ; CODE XREF: sub_10163F40+1Ej
.text:10163F73 ; sub_10163F40+27j
.text:10163F73 push 0 ; uExitCode
.text:10163F75 call ds:ExitProcess
.text:10163F7B ; ---------------------------------------------------------------------------
.text:10163F7B
.text:10163F7B loc_10163F7B: ; CODE XREF: sub_10163F40+31j
.text:10163F7B mov dword_11307504, esi
.text:10163F81
.text:10163F81 loc_10163F81: ; CODE XREF: sub_10163F40+15j
.text:10163F81 pop esi
.text:10163F82 retn
.text:10163F82 sub_10163F40 endp
Ezt pedig már nem is bonyolult megfejteni. A feltételes ugrást írjuk át feltétel nélkülire a 10163F55 címen és elkészült a nagy mű!