dll调试是个麻烦事,如果专门写一个exe去调试dll比较麻烦,现在提供一个利用python脚本调试dll的办法。
环境要求:
python 2.7.14 32位
vs2010
1.dll编写
vs2010 新建一个dll工程,命名为test.dll,其中有一个导出函数test,使用def文件导出:
EXPORTS
test
函数内容为:
void test(char* pSz,int nLen)
{
if (nLen<16) //这里下断点
{
return ;
}
for (int i=0;i<nLen;i++)
{
pSz[i]^=0x33
}
}
现在要调试此DLL,方法如下
2.调试
1.在debug目录新建test.py,内容如下:
import binascii
import ctypes
raw_input() #为了让脚本执行时停在这里
test_str="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
dll = ctypes.cdll.LoadLibrary('test.dll')
print dll
TEST_Encode = dll.test
TEST_Encode.argtypes = [ctypes.c_char_p,ctypes.c_int]
TEST_Encode(test_str,len(test_str))
print