Подскажите тулзу\скриптец, который удалял бы такое Код (Text): ... UPX_____:30068AA8 pusha ; Push all General Registers UPX_____:30068AA9 mov cl, 28h UPX_____:30068AAB jo _j424 ; Jump if Overflow (OF=1) UPX_____:30068AB1 add di, 6562h ; Add UPX_____:30068AB6 UPX_____:30068AB6 _j424: ; CODE XREF: UPX_____:30068AABj UPX_____:30068AB6 popa ; Pop all General Registers UPX_____:30068AB7 mov ebx, ebx UPX_____:30068AB9 UPX_____:30068AB9 loc_30068AB9: ; DATA XREF: UPX_____:3006B879r UPX_____:30068AB9 jmp j425 ; Jump ... UPX_____:30069491 j425: ; CODE XREF: UPX_____:loc_30068AB9j UPX_____:30069491 jmp j426 ; Jump ... UPX_____:3006C0DF j426: ; CODE XREF: UPX_____:j425j UPX_____:3006C0DF mov eax, ecx UPX_____:3006C0E1 jmp j427 ; Jump ... UPX_____:3006C293 j427: ; CODE XREF: UPX_____:3006C0E1j UPX_____:3006C293 mov edx, 929h UPX_____:3006C298 jmp TrueCode1 ; Jump ... UPX_____:3018B464 TrueCode1: UPX_____:3018B464 mov eax, eax UPX_____:3018B466 ;--------------------- UPX_____:3018B466 push PAGE_EXECUTE_READWRITE UPX_____:3018B468 push MEM_COMMIT UPX_____:3018B46D push 0FCh UPX_____:3018B472 push 0 UPX_____:3018B474 call ss:(pVirtualAlloc_2 - 29FC4014h)[ebp] и неплохо бы и такое: Код (Text): UPX_____:301B126E push 0 UPX_____:301B1270 push edi UPX_____:301B1271 call sub_301B1279 ; Call Procedure UPX_____:301B1271 ; --------------------------------------------------------------------------- UPX_____:301B1276 db 20h UPX_____:301B1277 ; --------------------------------------------------------------------------- UPX_____:301B1277 pop edi UPX_____:301B1278 retn ; Return Near from Procedure UPX_____:301B1279 UPX_____:301B1279 ; =============== S U B R O U T I N E ======================================= UPX_____:301B1279 UPX_____:301B1279 UPX_____:301B1279 sub_301B1279 proc near ; CODE XREF: UPX_____:301B1271p UPX_____:301B1279 UPX_____:301B1279 arg_4 = dword ptr 8 UPX_____:301B1279 UPX_____:301B1279 000 pop edi UPX_____:301B127A -04 mov [esp-4+arg_4], edi UPX_____:301B127E -04 add [esp-4+arg_4], 1Ah ; Add UPX_____:301B1286 -04 inc edi ; Increment by 1 UPX_____:301B1287 -04 push edi UPX_____:301B1288 000 retn ; Return Near from Procedure UPX_____:301B1288 sub_301B1279 endp UPX_____:301B1288 UPX_____:301B1288 ; --------------------------------------------------------------------------- UPX_____:301B1289 db 6Dh,92h,0D5h,0Eh,0D8h,25h,38h,60h UPX_____:301B1291 ; --------------------------------------------------------------------------- UPX_____:301B1291 ...
А что конкретно нужно удалять: комменты, ненужные безусловные переходы, строки вида "UPX_____:ХХХХХХХХ" или всё вместе?
Инструкции. Например делать новый кусок кода, без лишних инструкций. Если в иде - то например во временном сегменте. Или в писать их в бинарник. В идеале - по-максимуму переписать код, удалив лишнее.
Не вижу в этом особого смысла, мне больше надо прогу\алгоритм который чистит, чем вычищенный файл, но если хочется увидеть файл, вот оригинальный: http://dump.ru/file_catalog/1026263 а вот с тремя расшифрованными областями (судя по коду их больше): http://dump.ru/file_catalog/1026270 Вычистить с entrypoint'a =) ЗЫ: на всякий случай загрузчик: Код (Text): format PE GUI 4.0 section '.code' code readable executable entry start data import dd 0,0,0,rva aKernel32_dll,rva LoadLibraryA, 5 dup(0) LoadLibraryA dd rva aLoadLibraryA,0 end data start:push aBinkw32_dll call [LoadLibraryA] ret aBinkw32_dll db "binkw32.dll",0 aKernel32_dll db "KERNEL32.DLL",0 aLoadLibraryA db 0,0,"LoadLibraryA",0
GoldFinch Не вижу ничего мусорного, ткни маленькому дитятко какой файлик именно с мусором!!! А то я жму Ctrl+E в IDA, а там никого мусора ((( абыдна, абманули
EvilsInterrupt Мусор не в виде неинтерпретируемых безсмысленных инструкций, а в виде избыточности кода, при удалении которого основной алгоритм кода всё равно останется неизменным.