Help Logs Database

Undernet  |  EFnet  |  Quakenet  |  Freenode  |  Ircnet  |  Dalnet
<Treatz> Does anyone know how to write data recovery applications?
<Robert> Hi, Treatz.
<Treatz> Hi
<Robert> Nodal points?
<Robert> What kind of data recovery?
<Treatz> www.virtualadept.org
<Treatz> that is my site
<Treatz> Don't need to look or anything.
<Treatz> Robert: Simple data recovery. If I know where a file was when I deleted it, I would like to continue to access it.
<Robert> Ah.
<Robert> Not sure..
<Robert> That would depend on the file system structure.
<Treatz> Do you know of anything I could read about data recovery in asm?
<Robert> Not really. You could take the naive approach of just searching the entire disk for the missing data.
<Treatz> Robert thats an idea
<Treatz> Is there a way to find it if it has been overwriten?
<Robert> Or use filesystem-specific tricks.
<Robert> Usually not.
<Robert> There could be other copies around, for example in RAM.
<Treatz> Filesystem-specific tricks would be cool, but I would have to know the specifics. :+)
<Robert> Yeah. So you should study the structure and implementation of common file systems.
<Treatz> Okay
<Treatz> I would like to do some reading on the topic.
<HanzZ> what is type of ah register?
<wcstok> type?
<wcstok> it's 8 bits wide, there's no more type information than that ***ociated with it
<XecuterPr0> anybody explain to me why when I change a je, somehow the eniter jump changes to a totally different address?
<KillerByte> XecuterPr0, change a je to what?
<Cin> Anyone got any good links to PE file structure articles?
<wobster_> Cin, articles?
<Cin> Yeah?
<Cin> Some definition of the file structure?
<wobster_> see winnt.h of the platform sdk for the definition
<wobster_> otherwise, maybe codeproject.com has some more details. or just read something about ELF files which give you an idea what all the addressing, sections etc is all about
<Cin> Cool, thanks.
<gr00ber> i need a NASM function to store the ESP value in a C variable
<gr00ber> is this correct?
<gr00ber> global saveESP
<gr00ber> saveESP:
<gr00ber> mov eax,[esp+4]
<gr00ber> mov [eax], esp
<gr00ber> ?
<Robert> Yeah, but you need to be aware of which value of esp you save.
<Robert> saveESP(unsigned int *target); is the function you want, right?
<gr00ber> yes
<gr00ber> Robert, say there were TWO arguments and target was the first. Would Ineed "ESP+8" ?
<gr00ber> C pushes last argument first, right?
<Robert> Yes.
<Robert> Still esp+4
<gr00ber> oh, so ESP+4 would still work then
<gr00ber> right
<Robert> Yes.
<gr00ber> :-)
<gr00ber> another question, say that my return address is at ESP+4
<gr00ber> how can I get RET to use that?
<gr00ber> "RET 4" ?
<gr00ber> sub esp, 4?
<gr00ber> ret
<gr00ber> ?
<Robert> No.
<Robert> add esp,4
<Robert> ret
<gr00ber> oh
<gr00ber> ah, yes of course
<Cin> The things you learn on #ASM.
<Cin> :P
<gr00ber> crazy, yes
<intero> i need to understand constraints of at&t ***embly, to use for gcc inline ***embly in the critical parts of a program. know where i should look them up? i have read some inline asm howto but those are not explained well/in detail, at least for me.
<wobster_> intero, is it about at&t specifically or do you need input on the scary gcc-inling?
<wobster_> +i
<intero> i am not sure it's AT&T specific. for example, in asm("sidt %0\n" : :"m"(loc)); i don't have clear the use of "m", while i got the use of "r". is that an inline-only thing or not?
<intero> wobster_: ^^^
<wobster_> yes. as far as at&t is concerned, its just a syntactical thingy. this is GCC's ugly inline-stuff
<intero> is it ugly because it's inline or because it's AT&T?
<wobster_> well. prolly you already got this http://www.ibiblio.org/gferg/ldp/GCC-Inline-***embly-HOWTO.html one, didnt you? .. that's about the only valueable resource there is, apart from the GCC manual
<wobster_> that above has nothing to do with at&t (apart from the single op)
<intero> yes, i have it wobster_, thanks
<intero> i'll try gcc then. thanks.
<wobster_> well. the howto is prolly better
<wobster_> but unfortunately its full of errors and it's horribly inconsistent. at least it was, when I tried to get going with it
<intero> that scares me; there's a section about "m" but not clear enough for me
<wobster_> there's a table which explains it. it just instructs the compiler only to use the memory and not any other place (like regs) to store the value
<wobster_> that's important because sometimes you don't want the regs to change ('clobbered') or you don't have any left
<intero> wobster_: like you force a sync after any change?
<wobster_> a "sync"?
<wobster_> the __asm__ intrinsic allows you to tell the compiler what you are doing in that piece of inline-asm. otherwise it has no idea what happens and uses all resources as if the ***embly doesn't exist at all
<intero> okay, thousand thanks
<wobster_> that will horribly fck up your application, when your code unexpectedly (from GCCs perspective) modifies some resources
<wobster_> np
<cow> when i have asm(".macro mymacro one two\n\t[snip]") in a header included by two files and do gcc -o foo.o -c f1.c f2.c then i get "redefinition of macro mymacro". How would i fix this?
<cow> i tried .ifndef mymacro .endif but .ifndef appears to only work on symbols and not for .macro
<wobster_> utilise the CPP for that .. #ifndef etcetc
<cow> i'm pretty sure that "mymacro" is not visible to the preprocessor
<cow> mymacro is an as (resp. gas) macro


Return to asm
or
Go to some related logs:

danseband jenter
chatzone
nvidiafb Xorg
archlinux
visual c++ 2005 fseek bug
"1054 Unknown column 'p.products_id' in 'on clause

Copyright © 2005 www.irclogs.ws. All rights reserved. » disclaimer » contact