Page 1 of 4 123 ... LastLast
Results 1 to 10 of 39

Thread: Making Bot

  1. #1
    unfaceguy
    unfaceguy is offline
    New member
    Join Date
    2011 Jun
    Posts
    26
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0

    Making Bot

    Hi everyone ,i'm trying to learn how to code a PW bot. but i get some problems so i need your help :

    First : about finding asm function to action like:

    Code:
       
    //pick item 
    _asm {
            mov ecx, GAME_BASE_ADDRESS
            mov ecx, [ecx]
            mov ecx, [ecx + 0x20]
            add ecx, 0xEC //EC
            push valueID
            push valueSN
            mov edx, 0x00606A00 // change it when new update release....
            call edx
        }
    Anyone know how to find this

    Second : Does anyone know asm code to gather mines / herbs (farming)?

    i tried google it , but found nothing ...

    Please help me , thank you ..

    PS: sorry for my english

  2. #2
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10
    Now PW client in the past for me so I can't point to exact offsets or give exact BA value etc., but I can help with basic concepts.
    At the beginning, try to find all "specific" commands, e.g.: mov ecx, GAME_BASE_ADDRESS or add ecx, 0xEC



    Then put BP on each result.



    Start game; wipe out unnecessary BP (walk, jump etc)
    Do something, something which function you want to find (e.g. attack)
    Probably, necessary BP will fire or point you to routine which take part in your game action (attack). So, trace this routine and examine results

    About second. As I remember, PW has no function call for direct farming. You should use... hm... I forgot (if I find my old debug list and notes, I will post some additional notes)
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  3. The Following User Says Thank You to Dwar For This Useful Post:


  4. #3
    unfaceguy
    unfaceguy is offline
    New member
    Join Date
    2011 Jun
    Posts
    26
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0
    oh , very useful , now i can image how it works.
    Please post more let me learn

  5. #4
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10
    Quote Originally Posted by unfaceguy View Post
    Please post more let me learn
    You ask, I answer
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  6. The Following User Says Thank You to Dwar For This Useful Post:


  7. #5
    unfaceguy
    unfaceguy is offline
    New member
    Join Date
    2011 Jun
    Posts
    26
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0
    i found it on internet
    target BASE+0x34+0xB28
    id BASE+0x34+0x46C
    lvl BASE+0x34+0x478
    Cultivation BASE+0x34+0x47C
    Current HP BASE+0x34+0x480
    Current MP BASE+0x34+0x484
    Current EXP BASE+0x34+0x488
    Spirit BASE+0x34+0x48C
    free stats points BASE+0x34+0x490
    Current CHI BASE+0x34+0x494
    ATK lvl BASE+0x34+0x498
    DEF lvl BASE+0x34+0x49C
    Critical % BASE+0x34+0x4A0 Float
    Rage Damage + % BASE+0x34+0x4A4 Float
    Stealth lvl BASE+0x34+0x4A8
    Detection lvl BASE+0x34+0x4AC
    VIT BASE+0x34+0x4B0
    MAG BASE+0x34+0x4B4
    STR BASE+0x34+0x4B8
    DEX BASE+0x34+0x4BC
    Max. HP BASE+0x34+0x4C0
    Max. MP BASE+0x34+0x4C4
    HP regen BASE+0x34+0x4C8
    MP regen BASE+0x34+0x4CC
    Speed - walk BASE+0x34+0x4D0 Float
    Speed - run BASE+0x34+0x4D4 Float
    Speed - swim BASE+0x34+0x4D8 Float
    Speed - fly BASE+0x34+0x4DC Float
    Accuracy BASE+0x34+0x4E0
    Phys. Atk. Min. BASE+0x34+0x4E4
    Phys. Atk. Max. BASE+0x34+0x4E8
    Atk. Rate = 20/value BASE+0x34+0x4EC Float
    Range BASE+0x34+0x4F0 Float
    Metal Dmg. Min. BASE+0x34+0x4F4
    Metal Dmg. Max. BASE+0x34+0x4F8
    Wood Dmg. Min. BASE+0x34+0x4FC
    Wood Dmg. Max. BASE+0x34+0x500
    Water Dmg. Min. BASE+0x34+0x504
    Water Dmg. Max. BASE+0x34+0x508
    Fire Dmg. Min. BASE+0x34+0x50C
    Fire Dmg. Max. BASE+0x34+0x510
    Earth Dmg. Min. BASE+0x34+0x514
    Earth Dmg. Max. BASE+0x34+0x518
    Mag. Atk. Min. BASE+0x34+0x51C
    Mag. Atk. Max. BASE+0x34+0x520
    Metal Def. BASE+0x34+0x524
    Wood Def. BASE+0x34+0x528
    Water Def. BASE+0x34+0x52C
    Fire Def. BASE+0x34+0x530
    Earth Def. BASE+0x34+0x534
    Phys. Def. BASE+0x34+0x538
    Evasion BASE+0x34+0x53C
    Max. CHI BASE+0x34+0x540
    Coins BASE+0x34+0x544
    Coins Max. BASE+0x34+0x548
    ID - Weapon BASE+0x34+0x54C
    ID - Head Wear BASE+0x34+0x550
    ID - Necklace BASE+0x34+0x554
    ID - Robe BASE+0x34+0x558
    ID - Body Armor BASE+0x34+0x55C
    ID - Belt BASE+0x34+0x560
    ID - Legs Armor BASE+0x34+0x564
    ID - Shoes Armor BASE+0x34+0x568
    ID - Bracelet Armor BASE+0x34+0x56C
    ID - Ring 1 (left) BASE+0x34+0x570
    ID - Ring 2 (right) BASE+0x34+0x574
    ID - Ammunition BASE+0x34+0x578
    ID - Aerocrafts BASE+0x34+0x57C
    ID - Fashion Body BASE+0x34+0x580 ID different from PWDB,
    ID - Fashion Legwear BASE+0x34+0x584 probably some calculation for color
    ID - Fashion Shoe BASE+0x34+0x588
    ID - Fashion Glove BASE+0x34+0x58C
    ID - Utility Charm BASE+0x34+0x590
    ID - Mystical Tome BASE+0x34+0x594
    ID - Smiley BASE+0x34+0x598
    ID - Guardian Charm BASE+0x34+0x59C
    ID - Spirit Charm BASE+0x34+0x5A0
    ID - Bless Box BASE+0x34+0x5A4
    ID - Genie BASE+0x34+0x5A8
    ID - Vendor License BASE+0x34+0x5AC
    ID - Fashion Head BASE+0x34+0x5B0
    Reputation BASE+0x34+0x5B4
    Name BASE+0x34+0x628+0x0 Text(Unicode)
    Class BASE+0x34+0x630 0=BM/1=Wiz/2=Psy/3=Veno/4=Barb/5=Sin/6=Archer/7=Cleric/8=Seeker/9=Mystic
    Sex BASE+0x34+0x634 0=male / 1=female
    Do you know how they found these formula ? ( they scan these by hand with CE huh?)

    And Array list
    //Array
    static const int EnvPlayerArrayAdd = 0x20; //Environment Player
    static const int MobsArrayAdd = 0x24; //Mobs
    static const int ItemDropArrayAdd = 0x28; //Item Drop
    static const int PartyArrayAdd = 0x6B8; //Party
    static const int EquipArrayAdd = 0xC54; //Equip /Task C58
    static const int ItemArrayAdd = 0xC50; //Item
    static const int PetArrayAdd = 0x100C; //Pet
    static const int SkillArrayAdd = 0x101C; //Skill
    static const int SkillCountAdd = 0x1020; //Skill Count
    static const int SkillGenieArrayAdd = 0x104C; //Skill TL
    static const int SkillGenieCountAdd = 0x1050; //Skill Count TL
    static const int QuestArrayAdd = 0xFFC; //Quest Array
    static const int QuestCount = 0x1D; //Monster Count Quest
    i dont know how they get these ... -__-

  8. #6
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10
    Quote Originally Posted by unfaceguy View Post
    Do you know how they found these formula
    It's not a formula, it's base address and offsets
    Most of them uses CE. They find HP, MP, offsets for these values and so on. Generally, this is annoying and long process (and ineffective). But at this moment the main game structures are already described and you only need to correct some offsets for your current PW client.
    Two years ago I've made a contribution to the PW memory analyzing and since that time saved some excel "colouring book" with detailed description



    Anyway I don't scan client for each value, 'coz I examine whole structure, e.g. with char data. I dump memory region scan it for possible integer and float values, and also for "pointers" to another structures (memory regions). Compare results from several dumps to wipe out internal counters and static values etc. I made small app for such things (only for private use, 'coz it just sketch )

    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  9. The Following User Says Thank You to Dwar For This Useful Post:


  10. #7
    unfaceguy
    unfaceguy is offline
    New member
    Join Date
    2011 Jun
    Posts
    26
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0
    oh i see , i understood base address && offset .

    And Array list
    //Array
    static const int EnvPlayerArrayAdd = 0x20; //Environment Player
    static const int MobsArrayAdd = 0x24; //Mobs
    static const int ItemDropArrayAdd = 0x28; //Item Drop
    static const int PartyArrayAdd = 0x6B8; //Party
    static const int EquipArrayAdd = 0xC54; //Equip /Task C58
    static const int ItemArrayAdd = 0xC50; //Item
    static const int PetArrayAdd = 0x100C; //Pet
    static const int SkillArrayAdd = 0x101C; //Skill
    static const int SkillCountAdd = 0x1020; //Skill Count
    static const int SkillGenieArrayAdd = 0x104C; //Skill TL
    static const int SkillGenieCountAdd = 0x1050; //Skill Count TL
    static const int QuestArrayAdd = 0xFFC; //Quest Array
    static const int QuestCount = 0x1D; //Monster Count Quest
    i dont know how they get these ... -__-
    i still dont know how to search it :-s

    if you have hints please teach me

  11. #8
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10
    Quote Originally Posted by unfaceguy View Post
    i still dont know how to search it
    As usual, use CE or manually by dumping memory regions.
    Also your list isn't correct. PW has following memory structure:
    [BA] + 0x20 - Main game structures
    [BA] + 0x20 + 0x34 - Player structure
    [BA] + 0x20 + 0x34 + 0x490 - free stats points ... etc
    don't forget that your "BASE" is = [BA] + 0x20
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  12. The Following 2 Users Say Thank You to Dwar For This Useful Post:


  13. #9
    unfaceguy
    unfaceguy is offline
    New member
    Join Date
    2011 Jun
    Posts
    26
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0
    ok thx you . i will make simple bot first

    ---------- Post added 2011-06-07 at 02:49 AM ---------- Previous post was 2011-06-06 at 09:17 AM ----------

    Hi Dwar , i got this function from internet . i wonder you can convert it to assemly ?


    Code:
    int actionStruct = MemFunctions.MemReadInt(processHandle, getPlayerAddress() + off_player_actStruct);
                    int actionList = MemFunctions.MemReadInt(processHandle, actionStruct + off_player_actStruct_list);
                    int interactWithAction = MemFunctions.MemReadInt(processHandle, actionList + off_player_actStruct_list_interact);
    
    
                    MemFunctions.MemWriteInt(processHandle, interactWithAction + off_player_actStruct_list_interact_finished, 0);  //action finished = 0
                    MemFunctions.MemWriteInt(processHandle, interactWithAction + off_player_actStruct_list_interact_started, 1); //Action start = 1
                    MemFunctions.MemWriteInt(processHandle, interactWithAction + off_player_actStruct_list_interact_notStarted, 0); // Action not start = 0
                    MemFunctions.MemWriteInt(processHandle, interactWithAction + off_player_actStruct_list_interact_objectId, objectId); // Set object id to interact with
                    MemFunctions.MemWriteInt(processHandle, interactWithAction + off_player_actStruct_list_interact_type, interactionType); // Set the type of interaction, 0 = regAtk, 1 = pick item, 2 = talk to NPC,3 = useSkill, 4 = gatherResources
                    MemFunctions.MemWriteInt(processHandle, interactWithAction + off_player_actStruct_list_interact_error1, 0); // Set error = 0
                    MemFunctions.MemWriteInt(processHandle, interactWithAction + off_player_actStruct_list_interact_error2, 0); // Set error = 0
    
                    MemFunctions.MemWriteInt(processHandle, interactWithAction + off_player_actStruct_list_interact_skillPtr, skillPointer); // Set skillPointer
                    MemFunctions.MemWriteInt(processHandle, actionStruct + off_player_actStruct_newAction, interactWithAction); // Set new actionType
                    MemFunctions.MemWriteInt(processHandle, actionStruct + off_player_actStruct_startNext, 1); // Set next action position to 1
                    MemFunctions.MemWriteInt(processHandle, actionStruct + off_player_actStruct_nextAction, interactWithAction); // Set new actionType
                }
    do you know anyway to make it become assembly code like :

    Code:
    	_asm{
    		push value
    		push 0x00000000
    		mov ecx, GAME_BASE_ADDRESS
    		mov ecx, [ecx]
    		mov ecx, [ecx+0x1c]
    		mov ecx, [ecx+0x20]
    		//add ecx, 0xEC
    		mov edx, 0x00606820 //0x0045d280
    		call edx
    	}
    is it possible?

  14. #10
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10
    Quote Originally Posted by unfaceguy View Post
    i wonder you can convert it to assemly
    Sorry but you have asked a nonsense. You already have complete functions to write data into memory.
    Quote Originally Posted by unfaceguy View Post
    do you know anyway to make it become assembly code like :
    This code will execute instruction in a client memory region. Basically there is no correlation between your asm code and functions above. If you want to call some game action you should find a proper function in disassembled code, prepare stack and registers and then call this function

    Anyway, I recommend you to get ASM basics, 'coz it will prevent huge problems in a future
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  15. The Following User Says Thank You to Dwar For This Useful Post:


Page 1 of 4 123 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •