#include <stdio.h>
#include <Windows.h>
int main()
{
PIMAGE_DOS_HEADER         IDH;
PIMAGE_NT_HEADERS         INH;
PIMAGE_EXPORT_DIRECTORY        IED;
HMODULE hmod = LoadLibrary("wsock32.dll");
PBYTE         pbBase, pbName;
pbBase = (PBYTE)hmod;
IDH = (PIMAGE_DOS_HEADER)pbBase;
INH = (PIMAGE_NT_HEADERS)((DWORD)pbBase + IDH->e_lfanew);

IED = (PIMAGE_EXPORT_DIRECTORY)((DWORD)pbBase + INH->OptionalHeader.DataDirectory[0].VirtualAddress);

WORD* ord = (WORD*)(IED->AddressOfNameOrdinals + (DWORD)pbBase);
DWORD* v = (DWORD*)(IED->AddressOfFunctions + (DWORD)pbBase); 
printf("%x\n", v[ord[0x73]] + (DWORD)pbBase);
return 0;
}

분명히 PE Loader 등으로 열어봤을 때는 0x73 이 있는데. 저걸로 구해볼려니까 프로그램이 죽어버리네.
ord[0x73] = 0x7373 의 값이 나왔습니다. 잘못된 값같은데. 어떻게 처리를 해야돼? IED->Base 있던데, 이걸로 보정? 
참고로 0x73 은 WSAStartup 함수임. 지금 0x73 이라는 숫자를 가지고 WSAStartup 을 뽑아내야되는 상태... 

조언 감사여..