Перейти к содержанию

Как обойти защиту в Shadow Warrior


Рекомендуемые сообщения

При нахождении адресов патронов,здоровья итд,нет проблем.Но при включении скрипта,сразу вылет.Пробовал использовать Stealthedit,не помогает.Сами функции небольшие(патронов,здоровья итд),проверку кода тоже не видно.

Ссылка на комментарий
Поделиться на другие сайты

Защита ? В инструкцию загляни куда что то пишешь... Там движок что то вроде UE а может и он сам, я уж не помню. Заглянешь как и сразу поймешь, что там за защита такая была :)

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, LIRW сказал:

Защита ? В инструкцию загляни куда что то пишешь... Там движок что то вроде UE а может и он сам, я уж не помню. Заглянешь как и сразу поймешь, что там за защита такая была :)

Сейчас попробую переписать скрипт.Там ,инструкция типа add dword ptr [eax+10],-1.Попробую что-то вроде inc [eax+10] или add dword ptr [eax+10],0.Если не получится,то RET поближе к нужной инструкции.

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, Penza сказал:

Сейчас попробую переписать скрипт.

Если посмотреть как делали люди с СЕ форума.. то там не хило так надо покрутить то в твоём случаи - не просто что то inc :D 

Спойлер

[ENABLE]
aobscanmodule(hackPoint,sw.exe,8B 50 04 8B 74 24 14)
registersymbol(hackPoint)

globalalloc(newmem,2048)
label(returnhere)
label(originalcode)

label(continue)
label(section_Ammo)
label(section_Ammo_subroutine)
label(Ammo_Heart)
label(Ammo_Head)
label(Money)
label(thoseAreChangingType)
label(PowerPoints)
label(SkillPoints)

label(enableGodDamnRight)
label(enableInfiniteAmmo)
label(enableImHearty)
label(enableIGiveYouHeadache)
label(giveMeMyMoney)
label(IveGotThePower)
label(thatsWhatIcallBadKarma)

registersymbol(enableGodDamnRight)
registersymbol(enableInfiniteAmmo)
registersymbol(enableImHearty)
registersymbol(enableIGiveYouHeadache)
registersymbol(giveMeMyMoney)
registersymbol(IveGotThePower)
registersymbol(thatsWhatIcallBadKarma)

newmem:
cmp esi,00080004           // register check
jne originalcode

mov esi,[eax+0C]           // for future string compare

cmp ecx,00050001           // 50002 = single-fp values
je continue                // 50001 = 4byte int values
cmp ecx,00050002
je continue

jmp originalcode

continue:
and [enableGodDamnRight],01
jz section_Ammo
cmp word ptr [esi+14],#2
jne section_Ammo
cmp word ptr [esi+1C],'HP'
jne section_Ammo
cmp [eax+10],0               // structure check (filter out enemy HP)
je originalcode
cmp [eax+18],43200000        // structure check (filter out enemy HP)
jne originalcode
mov [eax+04],(float)100.0
jmp originalcode

label(goToNext)
label(leave)
label(MaxTable)
section_Ammo_subroutine:
cmp dword ptr [esi+20],edx
jne goToNext
mov edx,[esp+8]            // name len   ( Ammo_{Type}_max )
cmp dword ptr [esi+14],edx
je @f
sub edx,04                 // name len   ( Ammo_{Type} )
cmp dword ptr [esi+14],edx
jne goToNext

mov edx,[esp+4]            // index
mov esi,[MaxTable+edx*4]
mov [eax+04],esi
jmp leave

@@:
mov edx,[esp+4]            // index
mov esi,[eax+04]
mov [MaxTable+edx*4],esi
jmp leave

goToNext:
mov dl,01 // go to next
ret 8

leave:
xor dl,dl
ret 8
MaxTable:
dd 0 0 0 0 0 0 0 0


section_Ammo:
and [enableInfiniteAmmo],01
jz Money
cmp dword ptr [esi+1C],'Ammo'
jne Money

//Ammo_Revolver
mov edx,'_Rev'
push #17
push 1
call section_Ammo_subroutine
test dl,dl
je originalcode

//Ammo_Uzi
mov edx,'_Uzi'
push #12
push 2
call section_Ammo_subroutine
test dl,dl
je originalcode

//Ammo_Shotgun
mov edx,'_Sho'
push #16
push 3
call section_Ammo_subroutine
test dl,dl
je originalcode

//Ammo_Launcher
mov edx,'_Lau'
push #17
push 4
call section_Ammo_subroutine
test dl,dl
je originalcode

//Ammo_Flamer
mov edx,'_Fla'
push #15
push 5
call section_Ammo_subroutine
test dl,dl
je originalcode

//Ammo_Crossbow
mov edx,'_Cro'
push #17
push 6
call section_Ammo_subroutine
test dl,dl
je originalcode

//Ammo_Shuriken
mov edx,'_Shu'
push #17
push 7
call section_Ammo_subroutine
test dl,dl
je originalcode
jmp thoseAreChangingType


Money:
cmp dword ptr [esi+14],#5
jne thoseAreChangingType
cmp dword ptr [esi+1C],'Mone'
jne thoseAreChangingType
cmp [giveMeMyMoney],00
jz thoseAreChangingType
cmp dword ptr [eax],00050001
je @f
fld dword ptr [eax+04]
push (float)10000
fld dword ptr [esp]
add esp,04
fimul dword ptr [giveMeMyMoney]
faddp
fstp dword ptr [eax+04]
mov [giveMeMyMoney],0
jmp originalcode
@@:
mov esi,#10000
imul esi,[giveMeMyMoney]
add esi,dword ptr [eax+04]
mov dword ptr [eax+04],esi
mov [giveMeMyMoney],0
jmp originalcode

thoseAreChangingType:
Ammo_Heart:
cmp dword ptr [esi+1C],'Ammo'
jne PowerPoints
and [enableImHearty],01
jz Ammo_Head
cmp dword ptr [esi+14],#10
jne Ammo_Head
cmp dword ptr [esi+20],'_Hea'
jne Ammo_Head
mov [eax+4],(float)1               // Heart
jmp originalcode

Ammo_Head:
and [enableIGiveYouHeadache],01
jz PowerPoints
cmp dword ptr [esi+14],#9
jne PowerPoints
cmp dword ptr [esi+20],'_Hea'
jne PowerPoints
mov [eax],00050002                 // force single-fp
mov [eax+4],(float)667             // Head
jmp originalcode

PowerPoints:
cmp dword ptr [esi+14],#11
jne SkillPoints
cmp dword ptr [esi+1C],'Powe'
jne SkillPoints
cmp dword ptr [esi+20],'rPoi'
jne SkillPoints
cmp [IveGotThePower],00
jz SkillPoints
cmp dword ptr [eax],00050001
je @f
fld dword ptr [eax+04]
fld1
fimul dword ptr [IveGotThePower]
faddp
fstp dword ptr [eax+04]
mov [IveGotThePower],0
jmp originalcode
@@:
mov esi,dword ptr [IveGotThePower]
add esi,dword ptr [eax+04]
mov dword ptr [eax+04],esi
mov [IveGotThePower],0
jmp originalcode

SkillPoints:
cmp dword ptr [esi+14],#11
jne originalcode
cmp dword ptr [esi+1C],'Skil'
jne originalcode
cmp dword ptr [esi+20],'lPoi'
jne originalcode
cmp [thatsWhatIcallBadKarma],00
jz originalcode
cmp dword ptr [eax],00050001
je @f
fld dword ptr [eax+04]
fld1
fimul dword ptr [thatsWhatIcallBadKarma]
faddp
fstp dword ptr [eax+04]
mov [thatsWhatIcallBadKarma],0
jmp originalcode
@@:
mov esi,dword ptr [thatsWhatIcallBadKarma]
add esi,dword ptr [eax+04]
mov dword ptr [eax+04],esi
mov [thatsWhatIcallBadKarma],0
jmp originalcode

originalcode:
mov edx,[eax+04]
mov esi,[esp+14]
jmp returnhere

enableGodDamnRight:
dd 0
enableInfiniteAmmo:
dd 0
enableImHearty:
dd 0
enableIGiveYouHeadache:
dd 0
giveMeMyMoney:
dd 0
IveGotThePower:
dd 0
thatsWhatIcallBadKarma:
dd 0

hackPoint:
jmp newmem
nop
nop
returnhere:

[DISABLE]
hackPoint:
//mov edx,[eax+04]
//mov esi,[esp+14]
db 8B 50 04 8B 74 24 14

unregistersymbol(hackPoint)
unregistersymbol(enableGodDamnRight)
unregistersymbol(enableInfiniteAmmo)
unregistersymbol(enableImHearty)
unregistersymbol(enableIGiveYouHeadache)
unregistersymbol(giveMeMyMoney)
unregistersymbol(IveGotThePower)
unregistersymbol(thatsWhatIcallBadKarma)

 

 

Ссылка на комментарий
Поделиться на другие сайты

8 часов назад, LIRW сказал:

Защита ? В инструкцию загляни куда что то пишешь... Там движок что то вроде UE а может и он сам, я уж не помню. Заглянешь как и сразу поймешь, что там за защита такая была :)

С работы приду,буду разбираться.А та к код не хилый

 

  • Смешно 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.