AT&T
операция(размер) источник, приемник
movl %ebx, %eax ; %-префикс регистра
movl (%ebx), %eax
movl $0xAABBCC99, %eax ; $ - префикс для литералов
Суффикс для типов данных – movl – long, movb – byte…
01: *eax = 1;
02: ecx = *eax;
03: *eax = ebx;
04: *(esi+34) = eax;
05: eax = *(esi+34);
06: edx = *(ecx+eax);
[base[*counter] + offset]
mov eax, fs:[0x18]
; load _TEB of current thread
mov ebx, [eax + 30h]
; load prt to PEB to EAX
_foobar:
push ebp
mov ebp, esp
sub esp, 16
; math code here
; mov esp, ebp
; pop ebp
leave
ret
_foobar:
push ebp
mov ebp, esp
sub esp, 16
; math code here
; mov esp, ebp
; pop ebp
leave
ret
_foobar:
push ebp
mov ebp, esp
sub esp, 16
; math code here
; mov esp, ebp
; pop ebp
leave
ret
_foobar:
push ebp
mov ebp, esp
sub esp, 16
; math code here
; mov esp, ebp
; pop ebp
leave
ret
* В журнале Phrack (www.phrack.org)
** Уязвимость класса RCE (remote code execution)
*** CVE-2017-11882
void vuln(int str_len, char* str){
char buf[110];
for(int i = 0; i < str_len; i++){
buf[i] = str[i];
}
return;
}
int main(int argc, char* argv[]){
printf("I feel evil!\n");
vuln(strlen(shellcode)+1, shellcode);
printf("All is ok!\n");
return 0;
}
*https://www.exploit-db.com
get_k32_base:
mov cl,30h
mov eax,fs:[ecx]
mov eax,[eax+0ch]
mov esi,[eax+1ch]
lodsd
mov ebx,[eax+08h]
push edx ; Operation = "open"
push eax ; hwnd = NULL
mov eax, 0x7ca41150 ; SHELL32.ShellExecuteA
call eax
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть