구구단 이후로 프로그램 만들어봄



 
int main()
{
    __asm {
 
 
        xor eax, eax
            mov[ebp + 0xb], 0x63
            mov[ebp + 0xc], 0x61
            mov[ebp + 0xd], 0x6c
            mov[ebp + 0xe], 0x63
 
 
            mov eax, fs:[eax + 0x30]
            mov eax, [eax + 0xc]
            mov eax, [eax + 0x14]
            mov ebx, [eax]
            mov ebx, [ebx]
            mov ebx, [ebx + 0x10]
 
 
            mov edi, [ebx + 0x3c]
            add edi, ebx
            mov edi, [edi + 0x78]
            add edi, ebx
            mov[ebp + 0x18], edi
            mov esi, [edi + 0x20]
            add esi, ebx
            mov ecx, [edi + 0x24]
            add ecx, ebx
            xor edx, edx
            pushad
 
 
            xor edi, edi
            mov di, 0x2b3
            call get_func_addr
            mov[ebp + 0x20], eax
            popad
 
 
 
 
            xor eax, eax
            push eax
            lea    eax, [ebp + 0xb]
            push eax
            call[ebp + 0x20]
 
            jmp end
 
 
            get_func_addr :
        loop_ent :
                 inc edx  
                     lodsd  
                     pushad
                     add    ebx, eax
                     mov    esi, ebx
                     xor eax, eax
                     xor edi, edi
                     hash :
                 lodsb    
                     add edi, eax  
                     test al, al
                     jnz hash
                     mov[ebp + 0x10], edi
                     popad
                     cmp[ebp + 0x10], edi 
                     jne loop_ent
        
                     movzx edx, word ptr[ecx + edx * 2 - 2]    
                     mov edi, [ebp + 0x18]
                     mov esi, [edi + 0x1c]      
                     mov edi, ebx
                     add esi, edi        
                     add edi, [esi + edx * 4]
                     mov eax, edi
            
                     ret
 
                     end:
 
                 
    }
    return 0;
 
}
cs