Announcement

Collapse
No announcement yet.

GetModuleSize???

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Borje Hagsten
    replied
    Just one thing: Virus detection software will scream if exe is
    changed in any way after installation. For public use, this is
    a good way to cause lot of support burdon. For private use, it
    probably doesn't matter..


    ------------------

    Leave a comment:


  • jcfuller
    replied
    Scott,
    Do you change this data after it is added to the exe from within the
    program itself?

    If you only add the data to exe after a compile and then only read (not alter) I
    see no reason why you can't use RCDATA.
    You can't use this method using PBRES but it can be accomplished using the rsrc
    utility on my web site.

    James


    ------------------

    Leave a comment:


  • Scott Turchin
    replied
    Yup saw that one too, very nice and tight.

    I've optimised mine, it's VERY tight, does compression and encryption but is not a freeware app.
    It's tight, VERY VERY TIght and secure. You won't be breaking into this file anytime soon

    and the entire EXE is only 68k before adding files, not bad.
    It takes about 10 seconds to unpack 10 megs.


    It's functional, just got some GUI issues to work out with the progress bar and then it will be done


    Scott

    ------------------
    Scott
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • Adrian C Aitken
    replied
    scott, have you looked into this self extractor....
    http://www.powerbasic.com/support/pb...ad.php?t=22573

    use it for free !!!

    adrian

    ------------------

    Leave a comment:


  • Scott Turchin
    replied
    I've actually got two systems in place.
    One is to just compile it, verify the size, then edit the Equate of THISEXE_SIZE and the other is to record the length of the header and the length of the data.
    So I go to the end of the original file, %THIS_EXE_SIZE and then read the remainder of the file.
    The header is then pulled off by the g_hdHeaderSize value and the data is then pulled off by the g_hdDataSize value, if they do not match the file does not open.

    It actually works good, I read 20 bytes of data from the end of the EXE, before the user presses "Uncompress".
    In that 20 bytes I grab the first two variables separated by | symbol and then seek back to the origianl end of the EXE (THIS_EXE_SIZE) and then read the g_hdHeaderSize, post those values to the GUI and wait for the Uncompress button to be read.
    IT's quite efficient, but would be even more efficient if my program knew where it had originally ended.

    And the header is quite encrypted too

    Thanks for the tip tho, took me 3 days of staring at the computer to finally figure out what would be the most reliable method, and I think I have it....


    Scott

    ------------------
    Scott
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • Eric Pearson
    replied
    How about appending the data you need, and make the last 4 bytes of the appended data a LONG that points to the original end of the file? That way your program would always know where to look for the original file length, i.e. the start of the appended data.

    Or you could embed a string in your program like this:

    lOrigFileLen = CVL("OrigEXELen=xxxx",12)

    Have your "compiler" program append the data to the end of the EXE, then search for and modify that string by inserting MKL$(lOrigFileLen) on top of the xxxx part.

    When the program runs it will see the value you embedded, and lOrigFileLen will contain the value you need.

    -- Eric


    ------------------
    Perfect Sync: Perfect Sync Development Tools
    Email: mailto:[email protected][email protected]</A>

    Leave a comment:


  • Scott Turchin
    replied
    Thanks guys, here's what is happening:

    A) A compiler appends the data onto the exe and writes it out as a new EXE.
    B) Resource files are not dynamic.

    The module size now has data on and if you open an EXE for append you are opening the total file and will get a total filesize back.
    I just want to find the size the EXE thought it was before I added my data to it.

    But when dealing with EXE's never use append, use Binary., much safer that way....

    I was just hoping there an API for it.
    I may try that SEEK statement but it will likely find the EOF after my data, in fact I'm sure of it....hmmm


    Scott

    ------------------
    Scott
    mailto:[email protected][email protected]</A>

    [This message has been edited by Scott Turchin (edited February 04, 2001).]

    Leave a comment:


  • jcfuller
    replied
    Scott,
    I am courious why you append data to the end of an exe instead of using
    RCDATA in a resource file??

    James

    ------------------

    Leave a comment:


  • Eric Pearson
    replied
    How about...

    Code:
    SEEK x, EOF(x)+1
    Or just OPEN FOR APPEND.

    -- Eric


    ------------------
    Perfect Sync: Perfect Sync Development Tools
    Email: mailto:[email protected][email protected]</A>

    [This message has been edited by Eric Pearson (edited February 04, 2001).]

    Leave a comment:


  • Scott Turchin
    started a topic GetModuleSize???

    GetModuleSize???

    Well GetModuleFileName works just fine to get the name of the EXE, but is there a function to get hte SIZE of it?

    I'm appending data to the EXE and want to recover the EXE size before the data is added.
    Does the app know data is appended (Doesn't by my calculations)....

    basically it would be a faster way than using this darned equate:

    THIS_EXE_SIZE= 68029

    And having to change it every time I recompile..




    Scott

    ------------------
    Scott
    mailto:[email protected][email protected]</A>
Working...
X