Guide Software Modding: Explorer.exe (lets get cracking)

Discussion in 'Modding' started by TheAnimus, 5 Apr 2004.

  1. TheAnimus

    TheAnimus Banned

    Joined:
    25 Dec 2003
    Posts:
    3,214
    Likes Received:
    8
    Ok this is my first attempt at a software tutorial of this nature so be kind.

    This is considered a draft, the main reason for posting is i want feedback!

    The topics covered in this may not be legal in your country, or for some programs.

    The intended audiance for the draft is anyone who can access http://msdn.microsoft.com and wants to learn.

    The tutorail is on chanigng the way the start button sizes.
    before:
    [​IMG]
    after:
    [​IMG]

    Text:
    http://www.0bytes.net/startsizer/startsizer.rtf
    Binary & Source:
    http://www.0bytes.net/startsizer/startsizer.zip
     
  2. Twitch

    Twitch What's a Dremel?

    Joined:
    13 Mar 2004
    Posts:
    221
    Likes Received:
    0
    Yeah, well check out my start button, lol [​IMG]
     
  3. TheAnimus

    TheAnimus Banned

    Joined:
    25 Dec 2003
    Posts:
    3,214
    Likes Received:
    8
    yup, very simple to do that using the ideas presented in the guide, subclass WM_TEXT to change the button caption, you can load any image into the process space, and set the button icon.
     
  4. Ligoman17

    Ligoman17 What's a Dremel?

    Joined:
    10 Dec 2003
    Posts:
    441
    Likes Received:
    6
    How about changing the color of the start button to blue? I've always thought that in the "silver" color scheme, the start button would look better in blue. Is this possible?
     
  5. TheAnimus

    TheAnimus Banned

    Joined:
    25 Dec 2003
    Posts:
    3,214
    Likes Received:
    8
    Yup, the tutorial gives you an idea of how to modify the start button, we actually subclass it, so anything you could change normally in your own program, you can change on the button.
     
  6. TechnoScream

    TechnoScream Minimodder

    Joined:
    12 Dec 2003
    Posts:
    913
    Likes Received:
    4
    Thanx for the tutorial dude, nice to see people making things like this available for others to lear

    cheers :rock:
     
  7. Pygo

    Pygo Rick Relixed

    Joined:
    26 Jan 2003
    Posts:
    2,179
    Likes Received:
    8
    hehe... after clicking on the rtf link, I get a new browser window, then I get a password dialog box:
    [​IMG]

    After clicking cancel or the entering random usernames/passwords, It goes to the text document. Just letting ya know. And I kinda curious as to why that is :eyebrow:
     
  8. TheAnimus

    TheAnimus Banned

    Joined:
    25 Dec 2003
    Posts:
    3,214
    Likes Received:
    8
    hurm, duno, not my responsability that server.
    http://www.0bytes.net/startsizer/
    can u see that OK?
    Usual software stuff, OS, Broswer (version of both plz)
    and network connection.

    Very embarsing everything on that domain should be public.

    What i imediatly think is there is a squid or some other http proxy in the way, and word is opening up the document within ur browser (OLE) and that word needs your user name + password for the poxy.
     
  9. Pygo

    Pygo Rick Relixed

    Joined:
    26 Jan 2003
    Posts:
    2,179
    Likes Received:
    8
    Yup, no probs there.
    and no, no proxies that I know of.. and I am currently at work. (I work at my ISP.)
    so...
    IE 6.0.2800.1106
    and os is windows 200 Pro, 5.00.2195 Service pack 4.
    Internet connection is live ip, 10mbit half-dublex, into a switch, switch into hub, hub into cisco, 10mbit fibre out to the net. I think that is enough info.. I not gonna give you passwords for the cisco, or the switch or anything. :p

    hmmm... rtf asks for pasword in internet explorer, but saving and then opening directly in word is fine. i do get into it alright and everything. (both direct link from bit and from the dir.
     
  10. TheAnimus

    TheAnimus Banned

    Joined:
    25 Dec 2003
    Posts:
    3,214
    Likes Received:
    8
    sounds like its the problem of the client object. probably word been a git (assuming thats what you use to try ne read RTF files).
     
  11. Pygo

    Pygo Rick Relixed

    Joined:
    26 Jan 2003
    Posts:
    2,179
    Likes Received:
    8
    yup. I think its no problem really. Just an annoyance (not much of one though.) It be word 2000 btw.

    EDIT: oh, and thanks for the guide btw. I will post a pic of when I get the mod finished.
    I plan on doing a blue thing like posted by yellowsnow17. and then putting a smaller pic of my fan in there. and then shange start to say Spin!
    and maybe make it animate on mouse over... I shall have to play around a bit and see. I haven't read that article very well. Just kinda brushed through it quickly as I am at work.
     
    Last edited: 8 Apr 2004
  12. Langer

    Langer Jesse Lang

    Joined:
    24 Jan 2004
    Posts:
    2,605
    Likes Received:
    35
    I read all the 10 page text file in the fist link and all that did was make me confused... is that thier idea of a walkthrough? or am i missing someting? also what is involved in doing this mod, do you have to recode and all that uber tekky stuff?
     
  13. TheAnimus

    TheAnimus Banned

    Joined:
    25 Dec 2003
    Posts:
    3,214
    Likes Received:
    8
    I am trying to get people into the idea of modding software, ie chaning the way certain things happen in other peoples programs.

    This is normally refered to as cracking, if there is some action of a program you don't like, then u change or modify it.

    The tutorial is intended for people who are familar with windows programming and is currently at a first draft level, maby i should of posted it in programming & dev, but i wanted a wider audiance.

    The text's job is to explain the ideas used in the code, and give a grounding in macro assembler.

    If there is something in the text thats missed please contribute. At present its mainly people used to working in win32, or those who have MSDN open that will be able to get a benefit from it.

    If you want to help re-write the preface then please do.
     
  14. Pygo

    Pygo Rick Relixed

    Joined:
    26 Jan 2003
    Posts:
    2,179
    Likes Received:
    8
    hehe. When I compiled it, I got all kinds of errors. I think I had a bunch of typos. I only have experience in VB really. I made a hello world program back when I was like 12 or so. I had pretty much no clue what it was talking about then. I kind of undertsnad what is happening there. Just don't understand the basis of it.
    I think I may try and redo it. A lot of the character like hWnd looks like hwnd. Well, I mean to say that I am getting confused as to upper or lower case.
    stuff like lParam I am fine with. but other stuff like lcase and lCase looks a bit lik ethe same in that font. It may have just been my eyes going blury as it was late at night and I was a bit tired. to tired to game anyways.
     
  15. kiljoi

    kiljoi I *am* a computer king.

    Joined:
    13 Oct 2003
    Posts:
    2,301
    Likes Received:
    0
    Will this still work if you're using the likes of StyleXP?
     
  16. Pygo

    Pygo Rick Relixed

    Joined:
    26 Jan 2003
    Posts:
    2,179
    Likes Received:
    8
    I would think so. I kind of understand what everything does. But I would think so.

    hmmm... I tried running the included startsizer.dll using the command "rundll32.exe c:\startsizer.dll", without the quotes from the run command. nothing happened. :(
    why is this? I tried messing with it a bit, and still nothing. Rundll32.exe was in memory, so I killed it, resized my taskbar. and then ran the above command. still nothing. maybe I try a reboot or something.
    I am using the included silver theme for xp btw.
     
  17. TheAnimus

    TheAnimus Banned

    Joined:
    25 Dec 2003
    Posts:
    3,214
    Likes Received:
    8
    usage
    rundll32 startsizer.dll run
    emphasis on the run.

    if you just load the library (without calling the function run) nothing happens.

    There is a source file in the zip, that should build as dll without any problem, but i think your right about the case, i'm a lazy programmer, i will change the names to somthing unique in order to reduce confusion.
     
  18. Pygo

    Pygo Rick Relixed

    Joined:
    26 Jan 2003
    Posts:
    2,179
    Likes Received:
    8
    ok.. lol I new it was something I was doin wrong about executing it.

    I shall have a play once I get home...
     
  19. relix

    relix Minimodder

    Joined:
    14 Nov 2001
    Posts:
    5,948
    Likes Received:
    41
    I want to edit the button so that it only shows the windows-flag, without the text. So, the width should be decreased. Using previous programming experience, msdn and common sense I added this line (in bold):

    ...
    MOV [ebx].cy, eax
    MOV [ebx].cx, 20
    POP ebx
    ...


    But now it gives me this error:
    Startsizer.asm(44): error A2166: structure field expected

    Line 44 is the last line in the block of code above (POP ebx). When I remove the added line the error doesn't occur. What is the problem? I checked msdn and WindowPOS has a variable cx, and it's also an int.

    I also tried the following:

    ...
    MOV eax, 20
    MOV [ebx].cx, eax
    ...


    But the same error occured.
     
  20. TheAnimus

    TheAnimus Banned

    Joined:
    25 Dec 2003
    Posts:
    3,214
    Likes Received:
    8
    Ok, in CISC a MOV pointertoregister+const, litteral is perfectly valid asm, so nothing to worry about there.

    The error message whilst an english teacher would tell u is ugly, is very direct and informative.

    "error A2166: structure field expected"

    Field is a nice way of saying paramiter.

    so it dosen't think of somthing you've typed been a structure.

    The key part here is the assume directive, this tells the assembler that your assuming ebx to be of structure type WINDOWPOS.

    If you look at the WINDOWS.INC file you see
    Code:
    WINDOWPOS STRUCT
      hwnd              DWORD      ?
      hWndInsertAfter   DWORD      ?
      x                 DWORD      ?
      y                 DWORD      ?
      lx                DWORD      ?
      cy                DWORD      ?
      flags             DWORD      ?
    WINDOWPOS ENDS
    
    and you see there is no cx member, only lx!

    Theres the problem!
     
Tags:

Share This Page