| |
| |
| |
|
<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
|
|