const uchar key[24] = ;
ulong my_ddce30_ex( const tchar *string, ulong length )
__declspec( naked ) void my_dd6d40( void *buffer, const tchar *string )
}void my_dd6c70_ex( void *key, const tchar *string, ulong length )
else
length = ecx;
memcpy( eax + ( tchar* )ebx + 24, esi, ecx );
eax += ecx;
if ( eax < 0x40 )
return;
edi = edx - ecx;
esi = ecx + string;
my_dd6d40( ebx, ( tchar* )ebx + 24 );
}if ( edi >= 0x40 )
}if ( edi )
memcpy( ( tchar* )ebx + 24, esi, edi );
}void my_dd7650_ex( void *key, tchar *buffer )
void obfuscate_name( zend_function *function, tchar *buffer, const tchar *string, ulong length )
void obfuscate_class_name_ex( tchar *obfuscate, const tchar *string, ulong length )
if ( length == 0 )
break;
out = obfuscate;
if ( length <= 4 )
}else
eax = buffer[eax];
eax ^= *( ( uchar* )in );
in++;
*out++ = legecycharset[eax % ( size_of_array( legecycharset ) - 1 )];}}
*out = _t( '\0' );
} while ( 0 );
}void obfuscate_function_name_ex( tchar *obfuscate, const tchar *string, ulong length )
if ( length == 0 )
break;
out = obfuscate;
if ( length <= 4 )
}else
eax = buffer[eax];
eax ^= *( ( uchar* )in );
eax &= 0x8000007f;
if ( ( long )eax < 0 )
if ( eax == 0 )
eax++;
else if ( eax == 0x3a )
eax++;
in++;
*out++ = ( tchar )eax;}}
*out = _t( '\0' );
} while( 0 );
}
函式混淆之Method Swizzling
method swizzling是改變乙個selector的實際實現的技術。通過這一技術,我們可以在執行時通過修改類的分發表中selector對應的函式,來修改方法的實現。通過這種方法可以實現函式混淆。static dispatch once t oncetoken dispatch once on...
函式指標與指標函式容易混淆
在學習arm過程中發現這 指標函式 與 函式指標 容易搞錯,最簡單的辨別方式就是看函式名前面的指標 號有沒有被括號 包含,如果被包含就是函式指標,反之則是指標函式。今天我們從頭把它搞清楚 首先它們之間的定義 1 指標函式是指帶指標的函式,即本質是乙個函式,函式返回型別是某一型別的指標。型別識別符號 ...
Yii框架整合Zend庫函式生成Web Feed
web feed是一種用於為使用者提供經常更新內容的資料格式。在這篇文章中,我們描述了怎樣使用元件zend feed,它是乙個優秀框架zend framework的優秀元件,可以為乙個yii應用生成web feed。這篇文章同樣是一篇如何使用zend framework的元件的教程。首先,我們 ze...