Research Article

An Efficient Platform for the Automatic Extraction of Patterns in Native Code

Table 1

Example generalization of subpatterns.

Example patternGeneralization

Operandmov 5,eaxmov  <literal>,<generic ax>
mov [ecx],almov [ecx],<register>
movsd xmm0,var_0movsd xmm0,<var>
mov edx,[ebp+var_1]mov edx,[<var>]
call func1493call <address>

Mnemonicmovzx eax,al<mov>  <generic ax>,<any>
movss [esp+54h+var_2],xmm0<mov> [esp+54h+var_2],xmm0
movsd xmm0,var_3<mov>  xmm0,<var>
mov edx,[ebp+var_4]<mov>  edx,[<var>]
movsx ecx,[ebp+var_5]<mov>  ecx,[<var>]

Instruction grouppop esi; mov esp,ebp; pop ebp; retn<callee epilogue>
mov esp,ebp; pop ebp; retn<callee epilogue>
pop ebp; retn<callee epilogue>
call func123; add esp,8<caller epilogue>
call func123<caller epilogue>