//BOX_LIB dword edit_box_draw = #aEdit_box_draw; dword edit_box_key = #aEdit_box_key; dword edit_box_mouse = #aEdit_box_mouse; dword am__ = 0x0; dword bm__ = 0x0; char aEdit_box_draw[9] = "edit_box\0"; char aEdit_box_key[13] = "edit_box_key\0"; char aEdit_box_mouse[15] = "edit_box_mouse\0"; struct edit_box{ dword width, left, top, color, shift_color, focus_border_color, blur_border_color, text_color, max, text, mouse_variable, flags, size, pos, offset, cl_curs_x, cl_curs_y, shift, shift_old; }; int fastcall load_editbox_lib(EAX) { //set mask $mov eax,40 $mov ebx,0x27 $int 0x40 // load DLL $mov eax, 68 $mov ebx, 19 ECX="/sys/lib/box_lib.obj"; $int 0x40 $test eax, eax $jz exit // initialize import $mov edx,eax ESI=#edit_box_draw; import_loop: $lodsd $test eax,eax $jz import_done $push edx import_find: $mov ebx,DSDWORD[EDX] $test ebx, ebx $jz exit $push eax nex1: $mov cl,DSBYTE[EAX]; $cmp cl,DSBYTE[EBX]; $jnz import_find_next $test cl,cl $jz import_found $inc eax $inc ebx $jmp nex1 import_find_next: $pop eax $add edx, 8 $jmp import_find import_found: $pop eax $mov eax,DSDWORD[edx+4] $mov DSDWORD[esi-4],eax $pop edx $jmp import_loop import_done: return 0; exit: return -1; }