Hippan Опубликовано 31 октября, 2018 Поделиться Опубликовано 31 октября, 2018 имеется код Спойлер [ENABLE] aobscanmodule(INJECT,Tutorial-i386.exe,89 83 80 04 00 00 8D 55 D4 E8 12) alloc(newmem,$1000) label(code) label(return) newmem: pushad mov eax,0a mov ecx,5 div ecx //крэш при этом div-е popad code: mov [ebx+00000480],eax jmp return INJECT: jmp newmem nop return: registersymbol(INJECT) [DISABLE] INJECT: db 89 83 80 04 00 00 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+23B80 "Tutorial-i386.exe"+23B5C: E8 5F 99 FE FF - call Tutorial-i386.exe+D4C0 "Tutorial-i386.exe"+23B61: E8 6A B4 FE FF - call Tutorial-i386.exe+EFD0 "Tutorial-i386.exe"+23B66: 50 - push eax "Tutorial-i386.exe"+23B67: 85 C0 - test eax,eax "Tutorial-i386.exe"+23B69: 75 65 - jne Tutorial-i386.exe+23BD0 "Tutorial-i386.exe"+23B6B: B8 05 00 00 00 - mov eax,00000005 "Tutorial-i386.exe"+23B70: E8 8B AB FE FF - call Tutorial-i386.exe+E700 "Tutorial-i386.exe"+23B75: 8D 50 01 - lea edx,[eax+01] "Tutorial-i386.exe"+23B78: 8B 83 80 04 00 00 - mov eax,[ebx+00000480] "Tutorial-i386.exe"+23B7E: 29 D0 - sub eax,edx // ---------- INJECTING HERE ---------- "Tutorial-i386.exe"+23B80: 89 83 80 04 00 00 - mov [ebx+00000480],eax // ---------- DONE INJECTING ---------- "Tutorial-i386.exe"+23B86: 8D 55 D4 - lea edx,[ebp-2C] "Tutorial-i386.exe"+23B89: E8 12 62 01 00 - call Tutorial-i386.exe+39DA0 "Tutorial-i386.exe"+23B8E: 8B 55 D4 - mov edx,[ebp-2C] "Tutorial-i386.exe"+23B91: 8B 83 6C 04 00 00 - mov eax,[ebx+0000046C] "Tutorial-i386.exe"+23B97: E8 24 00 07 00 - call Tutorial-i386.exe+93BC0 "Tutorial-i386.exe"+23B9C: 83 BB 80 04 00 00 00 - cmp dword ptr [ebx+00000480],00 "Tutorial-i386.exe"+23BA3: 7D 2B - jnl Tutorial-i386.exe+23BD0 "Tutorial-i386.exe"+23BA5: A1 14 02 55 00 - mov eax,[Tutorial-i386.exe+150214] "Tutorial-i386.exe"+23BAA: E8 41 56 0F 00 - call Tutorial-i386.exe+1191F0 "Tutorial-i386.exe"+23BAF: B8 64 00 00 00 - mov eax,00000064 } когда доходит до деления (здесть div ecx) то взламываемая программа/игра (на разных пробовал) вылетает но иногда не сразу. Бывает что при первом заходе (при пошаговой отладке следил) на инструкцию результат (eax) какой-то бредовый типо 0x66666668 или еще что-то непонятное...а при втором вылет.Значения беру специально чтоб результат был без остатка ибо не трогать EDX Может я чего не догоняю? // Да и от меня устное предупреждение. прочитай правила Любой код, цитата и прочее - должны быть обернуты специальными тэгами. Кроме того, если фрагмент кода достаточно большой (более 10 строк кода), то его необходимо также обернуть тэгом спойлера (скрытый текст). На две секунды "В угол" . Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 31 октября, 2018 Поделиться Опубликовано 31 октября, 2018 (изменено) newmem: mov eax,0a mov ecx,5 xor edx,edx div ecx code: mov [ebx+00000480],edx jmp return Изменено 31 октября, 2018 пользователем Xipho Не забываем оборачивать код специальным тэгом. 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Hippan Опубликовано 31 октября, 2018 Автор Поделиться Опубликовано 31 октября, 2018 Спасибо огромное. Про остаток от деления в EDX прочитал а вот про то что EDX при высилении используется видать нет Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 октября, 2018 Поделиться Опубликовано 31 октября, 2018 25 минут назад, gmz сказал: xor edx,edx ? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения