>> Multi Effect Function

01/08/2016 21:12 Nylay#1
This function get one time called for one item with effects ->

Code:
s4client.exe+2D6600 - push ebp
s4client.exe+2D6601 - mov ebp,esp
s4client.exe+2D6603 - push -01
s4client.exe+2D6605 - push s4client.exe+EF1EF0
s4client.exe+2D660A - mov eax,fs:[00000000]
s4client.exe+2D6610 - push eax
s4client.exe+2D6611 - push ecx
s4client.exe+2D6612 - sub esp,0C
s4client.exe+2D6615 - push ebx
s4client.exe+2D6616 - push esi
s4client.exe+2D6617 - push edi
s4client.exe+2D6618 - mov eax,[s4client.exe+1220870]
s4client.exe+2D661D - xor eax,ebp
s4client.exe+2D661F - push eax
s4client.exe+2D6620 - lea eax,[ebp-0C]
s4client.exe+2D6623 - mov fs:[00000000],eax
s4client.exe+2D6629 - mov [ebp-10],esp
s4client.exe+2D662C - mov eax,[ebp+10]
s4client.exe+2D662F - mov [ebp-18],eax
s4client.exe+2D6632 - mov [ebp-04],00000000

// "Do and Until" while we can say.

s4client.exe+2D6639 - jmp s4client.exe+2D664D 
s4client.exe+2D663B - mov ecx,[ebp+10] // Back: // this func add 0x18 to the structure ( to get another effect )
s4client.exe+2D663E - add ecx,18
s4client.exe+2D6641 - mov [ebp+10],ecx
s4client.exe+2D6644 - mov edx,[ebp+08]
s4client.exe+2D6647 - add edx,18
s4client.exe+2D664A - mov [ebp+08],edx
s4client.exe+2D664D - mov eax,[ebp+08]
s4client.exe+2D6650 - cmp eax,[ebp+0C]
s4client.exe+2D6653 - je s4client.exe+2D669A // Break if all Effects got added
s4client.exe+2D6655 - mov ecx,[ebp+10]
s4client.exe+2D6658 - mov [ebp-14],ecx
s4client.exe+2D665B - cmp dword ptr [ebp-14],00
s4client.exe+2D665F - je s4client.exe+2D6691
s4client.exe+2D6661 - mov edx,[ebp+08]
s4client.exe+2D6664 - mov eax,[ebp-14]
s4client.exe+2D6667 - mov ecx,[edx]
s4client.exe+2D6669 - mov [eax],ecx // Effect ID
s4client.exe+2D666B - mov ecx,[edx+04]
s4client.exe+2D666E - mov [eax+04],ecx
s4client.exe+2D6671 - mov ecx,[edx+08]
s4client.exe+2D6674 - mov [eax+08],ecx
s4client.exe+2D6677 - mov ecx,[edx+0C]
s4client.exe+2D667A - mov [eax+0C],ecx
s4client.exe+2D667D - mov ecx,[edx+10]
s4client.exe+2D6680 - mov [eax+10],ecx
s4client.exe+2D6683 - mov edx,[edx+14]
s4client.exe+2D6686 - mov [eax+14],edx
s4client.exe+2D6689 - mov eax,[ebp-14]
s4client.exe+2D668C - mov [ebp-1C],eax
s4client.exe+2D668F - jmp s4client.exe+2D6698
s4client.exe+2D6691 - mov [ebp-1C],00000000
s4client.exe+2D6698 - jmp s4client.exe+2D663B // jmp back

/*-----------------------------------------------------------------*/

s4client.exe+2D669A - jmp s4client.exe+2D66C0
s4client.exe+2D669C - jmp s4client.exe+2D66A7
s4client.exe+2D669E - mov ecx,[ebp-18]
s4client.exe+2D66A1 - add ecx,18
s4client.exe+2D66A4 - mov [ebp-18],ecx
s4client.exe+2D66A7 - mov edx,[ebp-18]
s4client.exe+2D66AA - cmp edx,[ebp+10]
s4client.exe+2D66AD - je s4client.exe+2D66B1
s4client.exe+2D66AF - jmp s4client.exe+2D669E
s4client.exe+2D66B1 - push 00
s4client.exe+2D66B3 - push 00
s4client.exe+2D66B5 - call s4client.exe+C05922
s4client.exe+2D66BA - mov eax,s4client.exe+2D66C9
s4client.exe+2D66BF - ret 
s4client.exe+2D66C0 - mov [ebp-04],FFFFFFFF
s4client.exe+2D66C7 - jmp s4client.exe+2D66D0
s4client.exe+2D66C9 - mov [ebp-04],FFFFFFFF
s4client.exe+2D66D0 - mov eax,[ebp+10]
s4client.exe+2D66D3 - mov ecx,[ebp-0C]
s4client.exe+2D66D6 - mov fs:[00000000],ecx
s4client.exe+2D66DD - pop ecx
s4client.exe+2D66DE - pop edi
s4client.exe+2D66DF - pop esi
s4client.exe+2D66E0 - pop ebx
s4client.exe+2D66E1 - mov esp,ebp
s4client.exe+2D66E3 - pop ebp
s4client.exe+2D66E4 - ret
It's better to backtrace one function also.

see you

nylay
01/08/2016 21:15 Traumhändler#2
Und was genau hat das jetzt mit der Hack Section von S4L zu tuen? O.o
01/08/2016 21:16 Nylay#3
Quote:
Originally Posted by Orochimaru. View Post
Und was genau hat das jetzt mit der Hack Section von S4L zu tuen? O.o
Damit kannst du dir so viele Effekte auf deine Waffen machen wie du willst :rtfm:
01/08/2016 22:07 BytePipe#4
Quote:
Originally Posted by Nylay View Post
Damit kannst du dir so viele Effekte auf deine Waffen machen wie du willst :rtfm:

Jop, hier mal'n Beispiel (auf die Schnelle).

Code:
//Example (Cheat Engine)
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:

originalcode:
mov [eax],4D765287 //Effect ID in HEX.
mov ecx,[edx+04]

exit:
jmp returnhere

"S4Client.exe"+2D6669:
jmp newmem
returnhere:
01/08/2016 22:24 Nylay#5
Quote:
Originally Posted by Successfully View Post
Jop, hier mal'n Beispiel (auf die Schnelle).

Code:
//Example (Cheat Engine)
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:

originalcode:
mov [eax],4D765287 //Effect ID in HEX.
mov ecx,[edx+04]

exit:
jmp returnhere

"S4Client.exe"+2D6669:
jmp newmem
returnhere:
Dies ist leider nur ein Beispiel für Effekt Änderung.

Diese Funktion kann außerdem dafür benutzt werden Effekte auf eure Waffen zu erstellen. Temporär natürlich
01/08/2016 23:37 BytePipe#6
Quote:
Originally Posted by Nylay View Post
Dies ist leider nur ein Beispiel für Effekt Änderung.

Diese Funktion kann außerdem dafür benutzt werden Effekte auf eure Waffen zu erstellen. Temporär natürlich
Das Beispiel soll nur dazu dienen, einigen hier aufzuzeigen, wie man damit theoretisch arbeiten kann. Wäre es wirklich meine Absicht gewesen Effekte zu "ändern", hätte der Code selbstverständlich anders ausgesehen.

01/09/2016 21:43 LaraLuigi#7
Kann jemand eine Anleitung bringen? Ich blick da nicht durch!!
01/09/2016 21:49 Deverixz#8
Quote:
Originally Posted by LaraLuigi View Post
Kann jemand eine Anleitung bringen? Ich blick da nicht durch!!
Ich denke mal nicht, dass es dazu eine Anleitung geben wird. Entweder man verstehts, oder halt nicht.
01/09/2016 23:32 Apasp®#9
Quote:
Originally Posted by LaraLuigi View Post
Kann jemand eine Anleitung bringen? Ich blick da nicht durch!!
Ich hoffe man kann es verstehen :P

Viel spaß

:D:D:D

Code:
alloc(newmem,2048)
label(AddEffect)

newmem:
mov eax,[ebp+08]
cmp eax,[ebp+0C]
je S4Client.exe+2D669A
mov ecx,[ebp+10]
mov [ebp-14],ecx
cmp dword ptr [ebp-14],00
je S4Client.exe+2D6691
mov edx,[ebp+08]
mov eax,[ebp-14]
// ecx = EffectID
// # Dec || Hex
mov ecx,#1201300005 //HP+5       <-- DEC
call AddEffect
mov ecx,4D765287    //Attack+11  <-- Hex
call AddEffect
mov ecx,#1999801010 //Pen+90%    <-- DEC
call AddEffect
jmp S4Client.exe+2D66C0


// Add Effect=========================
AddEffect:
mov [eax],ecx
mov ecx,[ebp+10]
add ecx,18
mov [ebp+10],ecx
mov edx,[ebp+08]
mov ecx,[ebp+10]
mov [ebp-14],ecx
cmp dword ptr [ebp-14],00
je S4Client.exe+2D6691
mov edx,[ebp+08]
mov eax,[ebp-14]
ret


"S4Client.exe"+2D6639:
jmp newmem
01/10/2016 17:29 LaraLuigi#10
Quote:
Originally Posted by Apasp® View Post
Ich hoffe man kann es verstehen :P

Viel spaß

:D:D:D

Code:
alloc(newmem,2048)
label(AddEffect)

newmem:
mov eax,[ebp+08]
cmp eax,[ebp+0C]
je S4Client.exe+2D669A
mov ecx,[ebp+10]
mov [ebp-14],ecx
cmp dword ptr [ebp-14],00
je S4Client.exe+2D6691
mov edx,[ebp+08]
mov eax,[ebp-14]
// ecx = EffectID
// # Dec || Hex
mov ecx,#1201300005 //HP+5       <-- DEC
call AddEffect
mov ecx,4D765287    //Attack+11  <-- Hex
call AddEffect
mov ecx,#1999801010 //Pen+90%    <-- DEC
call AddEffect
jmp S4Client.exe+2D66C0


// Add Effect=========================
AddEffect:
mov [eax],ecx
mov ecx,[ebp+10]
add ecx,18
mov [ebp+10],ecx
mov edx,[ebp+08]
mov ecx,[ebp+10]
mov [ebp-14],ecx
cmp dword ptr [ebp-14],00
je S4Client.exe+2D6691
mov edx,[ebp+08]
mov eax,[ebp-14]
ret


"S4Client.exe"+2D6639:
jmp newmem
Kannst du es mir genauer erklären. Wie ich es anwende und des weiteren. DANKE
01/10/2016 20:53 xFuRiOuSs#11
Work. Thanks Nylay & Apasp®


[Only registered and activated users can see links. Click Here To Register...]
01/12/2016 15:21 |TeyonDon|#12
Quote:
Originally Posted by Deverixz View Post
Ich denke mal nicht, dass es dazu eine Anleitung geben wird. Entweder man verstehts, oder halt nicht.
Es gibt immer Einleitungen, bzw Tutorials für sowas ?
Von daher umsehen.
01/12/2016 15:22 Deverixz#13
Quote:
Originally Posted by |TeyonDon| View Post
Es gibt immer Einleitungen, bzw Tutorials für sowas ?
Von daher umsehen.
War jetzt eher darauf bezogen, dass man wenn mans nicht versteht, es erstmal lassen soll ^^
Und das von Apasp sollte man verstehen ^^
01/12/2016 15:24 |TeyonDon|#14
Quote:
Originally Posted by Deverixz View Post
War jetzt eher darauf bezogen, dass man wenn mans nicht versteht, es erstmal lassen soll ^^
Und das von Apasp sollte man verstehen ^^
Stimmt natürlich GENAU dafür gibts keine Einleitung, allerdings könnte jemand der damit arbeitet und Zeit hat eine machen, ich meine einigen würde es helfen.
01/12/2016 17:34 Cyrex'#15
Quote:
Originally Posted by Deverixz View Post
War jetzt eher darauf bezogen, dass man wenn mans nicht versteht, es erstmal lassen soll ^^
Und das von Apasp sollte man verstehen ^^
du erwartest echt, dass der reguläre elitepvpers s4 section member das versteht? obwohl man dafür nur normale asm kenntnisse braucht und sich ein bisschen mit compiler-strategien auskennen muss, ist das nicht der standard dieser community. ich bezweifle, dass hier alle wissen wie der stack funktioniert, wie der compiler structs/classes zwischenspeichert und darauf zugreift.