0
我使用Hex-Ray反編譯了一個dll,但它將dll的數組類型輸入參數反編譯爲int。任何想法如何處理?Hex-Rays反編譯數組爲int
double dzSell(int a1, double a2, int a3, int a4, int a5)
INT a1爲在DLL陣列型
我使用Hex-Ray反編譯了一個dll,但它將dll的數組類型輸入參數反編譯爲int。任何想法如何處理?Hex-Rays反編譯數組爲int
double dzSell(int a1, double a2, int a3, int a4, int a5)
INT a1爲在DLL陣列型
這裏是例如六角射線如何編譯指針
/* The computational routine */
extern "C" __declspec(dllexport) void myfun2 (double x, double *y, double *z, int n)
{
int i;
/* multiply each element y by x */
for (i=0; i<n; i++) {
z[i] = x * y[i];
}
}
/*
int __cdecl myfun2(double a1, int a2, int a3, int a4)
{
int result; // [email protected]
int i; // [sp+0h] [bp-4h]@1
for (i = 0; i < a4; ++i)
{
*(double *)(a3 + 8 * i) = a1 * *(double *)(a2 + 8 * i);
result = i + 1;
}
return result;
}
*/
如此明確指針變量被轉換爲int,則意味着鑄造雙* - > int必須完成,因爲a2和a3用於訪問數組。爲了正確的投射,我使用了(uintptr_t)緩衝區
'a1'不是一個數組。我知道,因爲你不能有數組作爲參數在C. – immibis
我的意思是說,在DLL是*雙和僞代碼是int a1 –
你知道反編譯器是非常不完善的,對嗎? – immibis