gunminiho Expert Cheater
Reputation: 0
Joined: 15 Dec 2008 Posts: 144 Location: peru
|
Posted: Wed May 12, 2010 11:14 am Post subject: Item Filer AA -> inline asm and Array problem |
|
|
OK guys i have this AA
| Code: | [Enable]
Alloc(Filter,124)
Label(IFReject)
Label(End)
Label(Skip)
Alloc(IFTable,512)
Label(IFExit)
Filter:
push ebx
push esi
xor ebx, ebx
mov esi,IFTable
IFReject:
cmp eax,[esi]
je Skip
cmp [esi],ebx
je End
add esi,4
jmp IFReject
Skip:
mov eax,00
End:
pop esi
pop ebx
mov [edi+34], eax
mov edi, [ebp-14]
jmp IFExit
IFTable:
// F i l t e r e d I t e m s
// == ' U s e ' I n v e n t o r y
// ==== Arrows
dd 1F6EE0 //Arrow for Bow
dd 1F72C8 //Arrow for Crossbow
dd 1F6EE1 //Bronze Arrow for Bow
dd 1F72C9 //Bronze Arrow for Crossbow
// ==== Potions
dd 1E8483 //Blue Potion
dd 1ED2B7 //Dark Chocolate
dd 1E8C50 //Dexterity Potion
dd 1EAB99 //Green Apple
dd 1E8C52 //Magic Potion
dd 1E8480 //Red Potion
dd 1E8C55 //Sniper Potion
dd 1E8C51 //Speed Potion
dd 1E8C54 //Warrior Potion
dd 1ED2B6 //White Chocolate
dd 1E8C53 //Wizard Potion
// == ' S e t u p ' I n v e n t o r y
dd 3CF190 //A
dd 3CF191 //E
dd 3CF192 //I
dd 3CF193 //L
dd 3CF194 //N
dd 3CF195 //O
// == ' E t c ' e t e r a I n v e n t o r y
dd 3D09E4 //Anesthetic Powder
dd 3D09F1 //Birk's Chewed Grass
dd 3D0E94 //Cupid's Lost Arrow
dd 3D091F //Cursed Doll
dd 3D8286 //Dark Chocolate
dd 3D09E5 //Dark Rash's Furball
dd 3D0990 //Free Spirit
dd 3D8618 //Jumper Cable
dd 3D09E8 //Kentaurus's Flame
dd 3D09E9 //Kentaurus's Marrow
dd 3D09EA //Kentaurus's Skull
dd 3D091D //Lupin's Banana
dd 3D0929 //Malady's Experimental Frog
dd 3D0E95 //Mardi Gras Bead Necklace
dd 3D7E3C //Monster Card
dd 3D0AF1 //Murukun's Furball
dd 3D0AF0 //Murumuru's Furball
dd 3D0AEF //Murupia's Furball
dd 3D0AEE //Murupa's Furball
dd 3D0AED //Muru's Furball
dd 3D7E39 //Omok Table
dd 3D7E3B //Omok Piece - Pig
dd 3D0911 //Pig's Head
dd 3D0902 //Pig's Ribbon
dd 3D0E3F //Pig Vein
dd 3D86B0 //Rascal Snowpiece
dd 3D09E2 //Rash's Furball
dd 3D092A //Stirge Wing
dd 3D14BC //Stiff Feather
dd 3F7E13 //Santa Encyclopedia No. 1
dd 3F7E0E //Santa Encyclopedia No. 2
dd 3F7E0F //Santa Encyclopedia No. 3
dd 3F7E10 //Santa Encyclopedia No. 4
dd 3F7E11 //Santa Encyclopedia No. 5
dd 3F7E12 //Santa Encyclopedia No. 6
dd 3D8617 //Sparkplug
dd 3D14BD //Soft Feather
dd 3D8619 //T-1 Socket Adapter
dd 3D097F //Toy Drum
dd 3D09E3 //Tree Fruit
dd 3D8775 //Tutorial Muru's Furball
dd 3D8285 //White Chocolate
dd 3D098F //Zombie Teddy Bear
// == ' E q u i p m e n t ' I n v e n t o r y
// ==== Tops
dd 0FE2BE //Black Jangoon Armor (female)
dd 0FDED6 //Blue Jangoon Armor
dd 0FE2BA //Brown Piettra
dd 0FDECA //Green Legolier Top (male)
dd 0FDED3 //Marine Shadow
dd 0FE289 //Red Bennis Chainmail (female)
dd 0FE2BF //Red Shouldermail (female)
// ==== Bottom
dd 103476 //Bennis Chain Pants
dd 102CA0 //Black Jangoon Pants
dd 102CD2 //Blue Knucklevest Pants
dd 1030D5 //Blue Moon Pants
dd 1030D9 //Brown Piettra Skirt
dd 102CDF //Green Legolier Pants (male)
dd 1030DE //Red Shouldermail Pants (female)
// ==== Gloves
dd 1082C5 //Black Lutia
// ==== Overalls
dd 0FE299 //Blue Steal
dd 10059B //Black Dragon Robe
// ==== Hats
dd 0F4AA0 //Brown Matty
dd 0F4AB8 //Green Distinction
dd 0F4AE9 //Orange Golden Circlet
dd 0F4A29 //Red Duke
dd 0F4C84 //Red Misty
dd 0F4A6C //Yellow Duke
// ==== Weapons
// dd 160101 //Blue Valentine Rose
dd 156498 //Broadsword
dd 16C424 //Cold Mind
dd 160100 //Red Valentine Rose
dd 160102 //White Valentine Rose
dd 13DE00 //Yellow Umbrella
dd 1600FF //Yellow Valentine Rose
dd 00
// E n d o f f i l t e r
005059CC: //Address under: E8 ? ? ? ? 89 47 ? 8b 7d ? 8b ce e8 ? ? ? ? 89 47 ? 8b 7d ? 8b ce e8 ? ? ? ? 0f
jmp Filter
nop
IFExit:
[Disable]
005059CC:
mov [edi+34], eax
mov edi, [ebp-14]
Dealloc(Filter,124)
Dealloc(IFTable,512)[Enable]
Alloc(Filter,124)
Label(IFReject)
Label(End)
Label(Skip)
Alloc(IFTable,512)
Label(IFExit)
Filter:
push ebx
push esi
xor ebx, ebx
mov esi,IFTable
IFReject:
cmp eax,[esi]
je Skip
cmp [esi],ebx
je End
add esi,4
jmp IFReject
Skip:
mov eax,00
End:
pop esi
pop ebx
mov [edi+34], eax
mov edi, [ebp-14]
jmp IFExit
IFTable:
// F i l t e r e d I t e m s
// == ' U s e ' I n v e n t o r y
// ==== Arrows
dd 1F6EE0 //Arrow for Bow
dd 1F72C8 //Arrow for Crossbow
dd 1F6EE1 //Bronze Arrow for Bow
dd 1F72C9 //Bronze Arrow for Crossbow
.
.
.
dd 00
// E n d o f f i l t e r
005059CC: //Address under: E8 ? ? ? ? 89 47 ? 8b 7d ? 8b ce e8 ? ? ? ? 89 47 ? 8b 7d ? 8b ce e8 ? ? ? ? 0f
jmp Filter
nop
IFExit:
[Disable]
005059CC:
mov [edi+34], eax
mov edi, [ebp-14]
Dealloc(Filter,124)
Dealloc(IFTable,512) |
and im trying to make it dynamicly i mean a form to add IFTable values, i coded everything but i got a huge problem:
| Code: |
procedure ItemFilterASM; assembler;stdcall;
begin
asm
@ItemFilter:
PUSH EBX
PUSH ESI
XOR EBX,EBX
MOV ESI,DWORD PTR[B] // <--- B is array of DWORDs
@ifreject:
CMP EAX,[ESI]
JE @skip
CMP [ESI],EBX
JE @end
ADD ESI,$4
JMP @ifreject
@skip:
MOV EAX,$00
@end:
POP ESI
POP EBX
MOV DWORD PTR[EDI+$34],EAX
MOV EDI, [EBP-$14]
JMP DWORD PTR[ItemFilterEnd]
end;
end;
|
i got a problem on B which is an array of DWORDs who will store all HexValues from form, but when i add 1 or 2 or 3 values i didn't get my array fo DWORDs i got a unique varible o.o!! which changes it value everything i add a value to that array and also those values are not HexValues o.o!!
here is my code for adding values, i really believe there's 2 problems:
1.- the way i add values
2.- the way to pass array of DWORDs to inline ASM
| Code: |
procedure TForm1.AddItemClick(Sender: TObject);
var
ItemIDInt:Integer;
checkString:String;
ItemIDHex:String;
Continua:Integer;
i:Integer;
begin
if (AddItem.Checked=TRUE) then
begin
repeat
/// hacer esto 1 vez por do ... while
checkString:=InputBox('Set value of item you want to add','Adding an item to your list,e.g: 4000115','');
if(Length(checkString) = 7) then
begin
if (checkString<>'') then
begin
ItemIDInt:=StrToInt(checkString);
ItemIDHex:='$'+IntToHex(ItemIDInt,7);
FilterCounter:=FilterCounter+1;
setLength(A,FilterCounter);
setLength(B,FilterCounter);
A[FilterCounter-1]:=ItemIDInt;
B[FilterCounter-1]:=DWORD(ItemIDHex);
Continua:=MessageBox(0,'If you cancel this, Item Filter will be activated with items you put before','¿Would you like to add another value to your list?',MB_YESNO);
if (Continua = 7) then begin
Repetir:=FALSE end;
if(Continua= 6)then begin //
Repetir:=TRUE end
end // ---> if empty value
else
MessageBox(0, 'Cannot Input a Empty value idiot!!!', 'Failed!', MB_OK or MB_ICONERROR);
end
else
MessageBox(0, 'The length of ItemID must be 7 digits, if not fill it with zeros(0)', 'Failed!', MB_OK or MB_ICONERROR);
until Repetir=FALSE;
////// EJECUTAR EL HACK ///
if (Repetir=FALSE) then
begin
if (checkString<>'') then
begin
MessageBox(0,'Now you finished to add your items,you can on/off Item Filter with on/off button','Dinamic Item Filter v1.0',MB_OK);
////// activando el hack ////
for i:=Low(A) to High(A) do
ListaFiltrados.Lines.Add(IntToStr(A[i]));
end
else
ShowMessage('No Hay Valores que activar!!!!!!!! idiot dont try to trick me im smart!');
end;////
//////////////////////////////
end;
end; |
anyone can help me please!! :'(
here a few SS if you didn't understand
by my own form
CE editing by AA script
|
|