Citrix API Hooking

API Hooking��һ��ʵ�õ�Windows��ϵͳ��̼�����Ӧ������ʮ�ֹ㷺�����������⻯��������֮ǰ����ҪӦ������Ļȡ�ʡ��������ǽ�Լ�����ľ��Ȱ�ȫ���������������⻯����֮����Ϊ�������⻯�ܹ���ԭ����Ҫ�����ػ�ͬʱ�ض���һЩ��������������API Hooking����ʵ�֡�

һ��API Hooking�������

������Hooking����һ�ֿ����ض�����ε�ִ�еĻ��������ṩ��һ�ּĻ��ƣ�ʹ�ò���ҪԴ����������׵ظı����ϵͳ����Ϊ��Citrixʹ��Hooking�����ṩ���õĽӿں����ظ���API���ڶ��Ƶ�ģ����ʹ��Hooking����ģ����ص�����Ӧ���п������ɸı����չ���й��ܡ���Ϊ�������⻯�ĺܶණ��Windows���������ض���Ҫ�����Citrix���ò����е�����������ЩҪ��Hooking����CitrixΧ��Windowsԭʼ��API�����䴦��ǰ��������������?���������Ըı��ѱ���������Ϊ�dz����á�

    ͨ��һ��Hookingϵͳ���������������--HookServer�����ӷ���ˣ���Driver���������Hook Server�������ʵ���ʱ��Driverע�뵽Ŀ���̣��Ա���ģ���еĴ���������Ŀ���̵ĵ�ַ�ռ��С�ͬʱ���Driver���й��?�����л�ȡDriver�Ļ��Ϣ����Driverʵ����������أ�ʵ��Citrix������Ĺ��ܡ�Hook Server�����ӷ���ˣ�Ϊ��������Windows��һ��ΪEXE��ʽ��Driver��������Ϊ����ģ�飬��Windows��һ��ΪDLL��ʽ����ͼչʾ��API Hook�Ŀ�ܣ�

Ҫʵ��������API Hooking�Ĺ��ܣ��ֱ��漰�����ؼ�ؼ�����ʵ�֣�DLLע�뼼����API���ؼ�����

1.1��DLLע�뼼��

ʹ��DLLע�뼼����Ҫ����ʵ�ַ�ʽ������������ֻ����Citrix���õļ�����������ֲ������ܣ�����Ȥ������ѯ������Ա���߲鿴MSDN�ϵ��ĵ��������ּ����ֱ��ǣ�

  • ע���

  • ȫ��Windows������

  • Զ���̼߳���

Citrixʹ��ע���ķ�ʽʵ��Citrix API Hooking������DLLע�롣��׼�����ص�Ŀ���������� User32.dll(User32.dll��Windows�û��������Ӧ�ó���ӿڣ����ڰ���Windows���?���û���������ԣ��紴�����ںͷ�����Ϣ)����ʹ����User32.dll�е�API(һ��ͼ�ν����Ӧ�ó�����������)����ΪCitrix��Ҫʵ�ֶ�Windows����GUI�����أ����Citrix����ע��������ķ���ע��DLL��

Ϊ��ע��һ��DLL��������USER32.DLL�Ľ�̣�����Լ��������ע���������DLL�������Ϊֵ��

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_DLLs

���ֵӦ�ð�һ��������DLL����ƻ���һ���Զ��Ż��߿ո�ָ���DLLs����ơ�MSDN�ĵ�ָ�����ü�ֵָ����DLLs����ÿһ�����ڴ��ڵģ�Windows-based��Ӧ�ó�����ء���Ȥ������ЩDLLsʵ���ϱ�����USER32��ʼ����һ���ֱ����ء�USER32��ȡ��Щ��ֵ���������DllMain��ͨ�����LoadLibrary()��������ЩDLLs�������ַ���ֻ������ʹ����USER32.DLL��Ӧ�ó����ϡ���������һ���޺���DLLע�뷽ʽ��������Ȼ������ȱ�㣺

  • ��Ҫ����������

 ����ע���DLL����ӳ�䵽ʹ����USER32.DLL�Ľ�̡��㲻����������ע�뵽����̨Ӧ�ó�����Ϊ����ͨ�����ô�USER32.DLL�е��뺯��

AppInit_DLLs �������dz�ʼ����̬���ӿ⡣ע����ϵͳ�����AppInit_DLLs������Ϊ��һ����̵���һ��dll�б?���ڵĽ�̲���ʽľ��ļ�����ͨ���޸�ע����е�[HKEY_LOCAL_MACHINE/Software/Microsoft/WindowsNT/CurrentVersion/Windows/AppInit_DLLs] ���ﵽ�����̵�Ŀ�ġ�ȱ���Dz�ʵʱ���޸�ע������Ҫ��������������ɽ�̲��롣����ע���������������ϵͳִ��DllMain���ﵽ����ľ���Ŀ�ġ���Ϊ����kernel����ģ������DLL���ȶ����кܴ�Ҫ�����д���ͻᵼ��ϵͳ��������������ľ��һ��������Ͱ����ǵ�ϵͳ������ˡ�

 

1.2��API���ؼ���

��һ��DLLע�뵽�ⲿ��̵ĵ�ַ�ռ��Ǽ��ϵͳ�Ĺؼ�һ�������ṩ�˿��ƽ�̵��̻߳�ĺܺõĻ�ᡣ�����ؽ�̵�API���ý���ע��DLL�Dz����ġ�

��ݹ���Ӧ�����ĸ���Σ�������API���ػ��������ں˲���û������ء�Ϊ�˸�õ���������ֲ�Σ�������˽�Win32��ϵͳAPI��ԭ��API�Ĺ�ϵ���ں˼��Ĺ�����Ҫ��ͨ��һ���ں�ģʽ���������ʵ�֣��ܲ�׽��ϵͳ����κ�ϸ�ڣ����ڱ��ĵ�̽�ַ�Ȧ֮�ڡ����û����Ĺ�����ͨ��������ͨ��DLL��ʵ�����API�����ء�������ʵ���ϵ���Ҫ��������ں˲㹳�ӵ��������汻��װ������û��㹳��ͨ��ʹ���û�ģʽ��DLL��

����̽�ֵ���Citrix���õ��û������ؼ�������Ҫ������ʵ�ַ�ʽ��

  • ����DLL

  • ������д

  • ͨ���޸ĵ�����ַ������

����DLL������һ����ͬ���֡����������ͬ��DLL�滻ԭ�е�DLL�����ּ������Ժ����׵�ͨ����ת������ʵ�֡�����ת��������˵����DLL���������һ�������һ������ȥ��������DLL�еĺ���ʵ���ϴ���DLL��������ľ�?������ǰ��ľ�?������ͨ���滻���DLL���ﵽĿ�ĵģ��������ڵ�Windows����ϵͳ������һ��������������ǩ������һ������ϵͳ���ֱ�������DLL�ļ����۸ģ��ͻ���ʾ������޸����Ŵӱ���Ŀ¼����ԭ����DLL�ļ����ǵ����۸ĵ�DLL�ļ���

���ڴ�����д������˵���кü��ַ������ڴ�����д��������һ����ͨ��CALLָ��ı亯���ַ�����ַ����е��ѣ��������׳��?��ĵײ�˼���Ǹ����ڴ��е�ȫ��CALLָ����û��ṩ�ĺ����ַ���滻ԭ���ĺ����ַ��

ͨ���޸ĵ�����ַ�����أ����ּ��������Matt Pietrek�����������JefferyRitcher��John Robbins��ϸ���������ּ�����ԭ��������Windows PE�ļ���ʽ�����ýṹ��Ҫ�˽����ַ�����ι���������Ҫ��PE�ļ���ʽ��COFF����չ����һЩ��֪ʶ����Ϥ��

 

����Citrix API Hooking

�Ӽ����Ͻ���AppInit_DLLs��λ��HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Windows�е�ע���ֵ���ڰ�װ�˲���ϵͳ��Ĭ����������ǿյġ���User32.dll��ʼ��ʱ�����ȡAppInit_DLLsע���ֵ�Ͳ����ط���ֵ�б�����DLL��Ƶ��ڴ��С�

2.1��Citrix API Hooking���

Citrix��Ӧ�ú��������⻯��һ���dz����д����Եļ�����Ϊ�˽�Ӧ�ó�����������ط��͵�Զ�ˣ�Citrix��Ҫ��಻ͬ��Hook��ʵ�֡���API Hooking��Ҫ�ܹ�����ͼ��ʾ��

��XenApp��XenDesktop�а�װ�֣ģ����ʱ���Ὣһ���ģ̣̣�mfaphook.dll��ӵ�appinit_dllsע���ֵ�С�

Citrix API Hooking_第1张图片

��ʵ�ϣ���������������DLL��

  • Mfaphook.dll ע����32bit :HKLM\SOFTWARE\Wow6432Node\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_DLLs

  • Mfaphook64.dll ע���� 64bit:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

��������appinit_dllsע���ֵȷ��mfaphook [64].DLL���ص�XenApp / XenDesktop�����С�mfaphook [64].DLL��ע���HKLM\SOFTWARE\Citrix\CtxHook\AppInit_Dlls��ȡCitrix��Hook�б?

��ͼ�����ǿ��Կ���������һ��ע�����appinit_dlls�����������Ĺ��Ӽ�ֵ��ÿ�����ӵĹؼ�ֵ��һ��FilePathName����ֵ��Ҫ���ص�DLL��·������ơ��������ǿ�����һ����־ֵ�������־ֵ��Ҫ��4������

  • 0x80000000     -     ��ʾ���н��

  • 0x00000000       -    ��ʾ�������Hook

  • 0x00000002       -     ֻ����ض���� (�ӽ��)

  • 0x00000004       -     ֻ���Զ�̻Ự

  • 2.2������API Hooking��������

��ʱ�������ڽ��CitrixӦ�ó��������ʱ�������Ҳ����ܺõĽ���취��������Ӧ�ó�����������Citrix��AppInit_Dlls���棬��ô�Ϳ��Գ��Խ������Citrix��hook�����Խ�����⡣

  • ����API hooks

����API Hook��Ҫ������ע���λ������loadappinit_dlls ��ֵΪ0��reg_dword����

HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Windows\LoadAppInit_DLLs = 0 [REG_DWORD]

  • ����Citrix Hooks

�����ض�Citrix hooks��Ҫ�����µ�ע���λ�����ñ�־ֵΪ0��reg_dword����������ö������hook��

HKLM\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\MultipleMonitor Hook\Flag = 0 [REG_DWORD]

Ҫ���������ض��Ŀ�ִ���ļ���CitrixHook����Ҫ����һ�����ŷָ����ַ�ֵExcludedImageNames�������ִ����Ƶ��б?

HKLM\SOFTWARE\Citrix\CtxHook\ExcludedImageNames= calc.exe,notepad.exe [REG_SZ]

��Ϊ���͵����⻹�����ܿ��ʹ�ӡ�ȵȣ��ͱ����ӡ������˵��������Dz��õĴ�ӡ���������ThinPrint�ȵ����ƴ�ӡ�����������ô���ǾͲ�����Ҫʹ��Citrix��Ĭ�ϴ�ӡ���������Ϊ�˲������໥��ͻ�����ǾͿ�����ע����н��õ���ӡ��Citrix Hook����ʹ����ʹ�ô�ӡʱCitrix��hook����ȥ����API��ע��Citrix��DLL��

������Citrix Hooks�б�

3.1��XenApp 7.x:64λHooks

����ı��г������м��ص�64λ��̵Ĺ��ӡ�

Citrix API Hooking_第2张图片

Citrix API Hooking_第3张图片

 

3.2��XenApp 7.x: 32λHooks

����ı��г������м��ص�32λ��̵Ĺ��ӡ�

Citrix API Hooking_第4张图片

 

3.3��XenDesktop 7.x:64λHooks

����ı��г������м��ص�64λ��̵Ĺ��ӡ�

Citrix API Hooking_第5张图片

Citrix API Hooking_第6张图片

Citrix API Hooking_第7张图片

 

3.4��XenDesktop 7.x:32λHooks

����ı��г������м��ص�32λ��̵Ĺ��ӡ�

Citrix API Hooking_第8张图片

Citrix API Hooking_第9张图片


���ij��� �������������˸����� ���ͣ�����ر����˳���http://tasnrh.blog.51cto.com/4141731/1764560

你可能感兴趣的:(Citrix API Hooking)