|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 31, 2003 16:47:08 Как добавить в PE файл секцию и впихнуть в нее свои данные,но оставить оригинальную точку входа.Может есть исходник??? |
|
|
Дата: Янв 31, 2003 19:01:53 Тут где-то был addsection by Freddy K. Глянь в исходниках. |
|
|
Дата: Янв 31, 2003 21:04:46 А зачем секция, только для данных или для кода который будет выполнятся тоже? |
|
|
Дата: Янв 31, 2003 21:23:13 Тока для данных.Я пишу патч-креатор и хочу впихнуть в него заготовку патчера чтоб не выносить в отдельный файл. |
|
|
Дата: Янв 31, 2003 22:27:12 pFileImage - указательна вуфер с имажем файла RawSize - размер секции pNewName - название секции AddSection proc uses edi esi ebx pFileImage:dword, pNewName:dword, RawSize:dword mov edi, pFileImage add edi, dword ptr [edi+03Ch] ASSUME edi : ptr IMAGE_NT_HEADERS movzx eax, word ptr [edi].FileHeader.NumberOfSections mov ebx, eax inc eax mov edx, sizeof IMAGE_SECTION_HEADER imul eax, edx mov esi, edi add esi, 0F8h ASSUME esi : ptr IMAGE_SECTION_HEADER lea edx, [eax][esi].PointerToRawData sub edx, pFileImage .if edx < [edi].OptionalHeader.SizeOfHeaders mov ebx, esi sub esi, sizeof IMAGE_SECTION_HEADER ASSUME ebx : ptr IMAGE_SECTION_HEADER mov eax, [esi].VirtualAddress add eax, [esi].Misc.VirtualSize mov ecx, [edi].OptionalHeader.SectionAlignment xor edx, edx div ecx .if edx inc eax .endif mul ecx mov [ebx].VirtualAddress, eax mov eax, RawSize mov ecx, [edi].OptionalHeader.SectionAlignment xor edx, edx div ecx inc eax mul ecx mov [ebx].Misc.VirtualSize, eax add [edi].OptionalHeader.SizeOfImage, eax mov eax, RawSize mov ecx, [edi].OptionalHeader.FileAlignment xor edx, edx div ecx .if edx inc eax .endif mul ecx mov dword ptr [ebx].SizeOfRawData, eax invoke lstrcpyn, addr [ebx].Name1, pNewName,9 mov [ebx].Characteristics, 0E00000E0h mov eax, [esi].PointerToRawData add eax, [esi].SizeOfRawData mov ecx, [edi].OptionalHeader.FileAlignment xor edx, edx div ecx .if edx inc eax .endif mul ecx mov [ebx].PointerToRawData, eax inc [edi].FileHeader.NumberOfSections lea eax, [ebx].Name1 sub eax, pFileImage @@Error: .endif ret ASSUME ebx : nothing ASSUME esi : nothing ASSUME edi : nothing AddSection ENDP |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.065 |