Vector35 / Vector35/binaryninja-api
Type information for functions in IDirect3D9VTable are missing `__stdcall`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C++
- Estrellas
- 1.3k
- Forks
- 298
- Merge medio
- 5 d 5 h
- PR fusionados (30 d)
- 19
Descripción
This is the info in our type library:
struct __base(IUnknownVTable, 0) IDirect3D9VTable
{
__inherited HRESULT (* `IUnknownVTable::QueryInterface`)(struct IUnknown* `this`, GUID* riid, void** ppvObject);
__inherited uint32_t (* `IUnknownVTable::AddRef`)(struct IUnknown* `this`);
uint32_t (* Release)(struct IUnknown* `this`);
HRESULT (* RegisterSoftwareDevice)(struct IDirect3D9* `this`, void* pInitializeFunction);
uint32_t (* GetAdapterCount)(struct IDirect3D9* `this`);
HRESULT (* GetAdapterIdentifier)(struct IDirect3D9* `this`, uint32_t Adapter, uint32_t Flags, struct D3DADAPTER_IDENTIFIER9* pIdentifier);
uint32_t (* GetAdapterModeCount)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DFORMAT Format);
HRESULT (* EnumAdapterModes)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DFORMAT Format, uint32_t Mode, struct D3DDISPLAYMODE* pMode);
HRESULT (* GetAdapterDisplayMode)(struct IDirect3D9* `this`, uint32_t Adapter, struct D3DDISPLAYMODE* pMode);
HRESULT (* CheckDeviceType)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DDEVTYPE DevType, enum D3DFORMAT AdapterFormat, enum D3DFORMAT BackBufferFormat, BOOL bWindowed);
HRESULT (* CheckDeviceFormat)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DDEVTYPE DeviceType, enum D3DFORMAT AdapterFormat, uint32_t Usage, enum D3DRESOURCETYPE RType, enum D3DFORMAT CheckFormat);
HRESULT (* CheckDeviceMultiSampleType)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DDEVTYPE DeviceType, enum D3DFORMAT SurfaceFormat, BOOL Windowed, enum D3DMULTISAMPLE_TYPE MultiSampleType, uint32_t* pQualityLevels);
HRESULT (* CheckDepthStencilMatch)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DDEVTYPE DeviceType, enum D3DFORMAT AdapterFormat, enum D3DFORMAT RenderTargetFormat, enum D3DFORMAT DepthStencilFormat);
HRESULT (* CheckDeviceFormatConversion)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DDEVTYPE DeviceType, enum D3DFORMAT SourceFormat, enum D3DFORMAT TargetFormat);
HRESULT (* GetDeviceCaps)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DDEVTYPE DeviceType, struct D3DCAPS9* pCaps);
HMONITOR (* GetAdapterMonitor)(struct IDirect3D9* `this`, uint32_t Adapter);
HRESULT (* CreateDevice)(struct IDirect3D9* `this`, uint32_t Adapter, enum D3DDEVTYPE DeviceType, HWND hFocusWindow, uint32_t BehaviorFlags, struct D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9* ppReturnedDeviceInterface);
};
These functions miss __stdcall attibute
Binary: https://github.com/user-attachments/files/16398713/CrackME.exe.zip
Related to https://github.com/Vector35/binaryninja-api/issues/5800
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Start with the attached CrackME.exe and the related issue #5800, then inspect how the type library represents IDirect3D9VTable function pointers. Verify the generated declarations against the expected __stdcall calling convention; done means the affected functions expose that attribute in the type information.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp
- Área
- reverse-engineering
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100