--- Log opened Sun Apr 20 00:00:25 2008 |
01:02 | | * ToxicFrog kills IDA, gdb, and windows in the face |
01:03 | < Shoukanjuu> | That's not nice. |
01:03 | < Shoukanjuu> | You didn't use the rusty spork. :/ |
01:03 | | * Shoukanjuu gives ToxicFrog a rusty spork |
01:03 | < Shoukanjuu> | No try it again for style points :D |
01:18 | <@McMartin> | IDA is awesome. |
01:18 | <@McMartin> | Well |
01:18 | <@McMartin> | Pirated copies of IDA Pro are awesome, as are legit ones purchased by others and given to you. |
01:23 | <@ToxicFrog> | Even the free version is pretty sweet. |
01:23 | <@ToxicFrog> | For disassembly. |
01:24 | <@ToxicFrog> | However, I'm trying to use the pro version as a debugger. |
01:24 | <@ToxicFrog> | It does not seem to be possible to, for example, get it to generate a complete stack trace when a given address is accessed. |
01:24 | <@ToxicFrog> | I can get it to tell me what instruction accessed it, but knowing that something, somewhere, called sprintf() doesn't help me at all. |
01:25 | <@McMartin> | Is the binary playing silly buggers with ESP? |
01:25 | <@McMartin> | One of the disadvantages here is that you are in fact dealing with x86 assembly. |
01:25 | <@McMartin> | Which means cue the QQ. |
01:25 | <@ToxicFrog> | Not to my knowledge, although it is heavily threaded. |
01:25 | <@ToxicFrog> | But AFAIK you can't get stack traces out of it at all. |
01:26 | <@McMartin> | OK, that's kind of sad. |
01:26 | <@ToxicFrog> | GDB can, but for some reason doesn't trigger the watchpoint. |
01:26 | <@McMartin> | Visual Studio has the capability you desire, in the absense of ESP buggery. |
01:26 | <@ToxicFrog> | IDA triggers the watchpoint but only tells me where it was accessed from rather than the entire call stack. |
01:26 | <@ToxicFrog> | I note that it's not "you can't stop the program and ask for a call stack" |
01:27 | <@ToxicFrog> | It's "you can't get IDA to save a call stack without stopping the program" |
01:27 | <@McMartin> | Oh. |
01:27 | <@McMartin> | And you're looking for something common enough that this is no help |
01:27 | <@McMartin> | Yeah. You need to write a custom valgrind skin or something. =P |
01:27 | <@ToxicFrog> | Well, I'm looking for what accesses a given string. |
01:27 | < Shoukanjuu> | ...Defeating the purpose madae easier with Windows+IDE :D |
01:28 | <@ToxicFrog> | There's only one place in the program that uses this string, but it does so through sprintf. |
01:28 | < Shoukanjuu> | (Purpose not included) |
01:28 | <@McMartin> | Shou: Outside of an academic context, this is the first time I've seen anyone look for this. |
01:28 | <@ToxicFrog> | So all I can get out of IDA is "this memory location was read by sprintf |
01:28 | <@McMartin> | TF: If that's the case, won't a traditional watchpoint work? |
01:28 | <@McMartin> | e.g., "Can't you just go ahead and stop the program to look at the results like a normal person?" |
01:28 | <@ToxicFrog> | And I can't take apart the exe without running it, because the string in question is loaded from a localization table after the game starts up. |
01:28 | <@McMartin> | s/e.g./i.e./ |
01:29 | <@ToxicFrog> | If I could, I would. |
01:29 | <@ToxicFrog> | But stopping the program completely hoses Direct3D. |
01:29 | <@ToxicFrog> | And basically leaves the system unusable until it, and every debugger attached to it, is killed. |
01:29 | <@McMartin> | Ah, yes. |
01:29 | < Shoukanjuu> | O_o; Why? |
01:29 | <@ToxicFrog> | Because fullscreen D3D programs are annoying like that. |
01:29 | <@McMartin> | Yes. |
01:30 | <@ToxicFrog> | And there's no windowed mode. |
01:30 | <@McMartin> | I had a fairly epic TF2 incident where I had just triggered an Ubercharge on the way to capture the last point when suddenly I locked up. |
01:30 | <@ToxicFrog> | I thought I'd hit on it with gdb (watch foo; commands; where; continue; end) but the watchpoint never triggers for some reason. |
01:30 | <@McMartin> | Five minutes later the program force-terminates, and it's because the status bar had elected to inform me I had unused icons on my desktop, thus rendering the entire system unusable. |
01:31 | <@ToxicFrog> | That, at least, it's so big a problem. |
01:31 | <@ToxicFrog> | I can alt-tab to and from it without problems, and it will handle it gracefully if something else pops up in the background. |
01:31 | <@ToxicFrog> | I just can't SIGSTOP it while it has focus. |
01:31 | <@McMartin> | Start it, steal focus, let it run in background? |
01:31 | <@ToxicFrog> | I have to be interacting with it to trigger the condition I'm looking for. |
01:31 | <@McMartin> | Oh. boo. |
01:32 | <@McMartin> | ... is gdb not instrumenting library code during watches? |
01:32 | <@McMartin> | There might be a switch for that |
01:32 | <@McMartin> | Or, ducking this entirely |
01:32 | <@ToxicFrog> | And the string isn't even what I'm looking for - I'm actually after the memory location and/or register of the integer value passed to sprintf |
01:32 | <@McMartin> | Can you log calls TO SPRINTF with the target memory location in range? |
01:33 | <@ToxicFrog> | I'll be right boned if that's actually computed on update rather than stored somewhere. |
01:33 | <@ToxicFrog> | (I'm trying to hack the rewards screen in NFS:MW. You've shown six, and allowed to choose up to 2. I want to raise that to 3.) |
01:34 | <@McMartin> | Aha |
01:34 | <@McMartin> | I think step two is actually to try to walk up the stack by hand. |
01:34 | <@ToxicFrog> | Yeah. |
01:34 | <@ToxicFrog> | Hence my efforts to actually lay hands on the stack. |
01:34 | <@McMartin> | Well |
01:35 | <@McMartin> | I mean "now retrigger, looking for calls to sprintf that match the appropriate arguments" |
01:35 | <@McMartin> | Preferably without having to log every call to sprintf in the universe. |
01:35 | <@ToxicFrog> | I'm not sure I follow. |
01:36 | <@McMartin> | OK |
01:36 | <@McMartin> | You have memory location X, which you know is a string... |
01:36 | <@McMartin> | "IDA! Tell me when X is accessed!" |
01:37 | <@McMartin> | "sure thing man, sprintf hits it." |
01:37 | <@McMartin> | "... right. OK, IDA, tell me when sprintf is called, and X is an argument." |
01:37 | <@McMartin> | "Oh, that would be gen_reward_string()" |
01:37 | <@McMartin> | And now you have a new hook for violence. |
01:37 | <@McMartin> | Though if you can't get at the code during the run, life is hard. |
01:37 | <@McMartin> | I don't suppose you have a dual-monitor system you can do this on~ |
01:38 | < Vornicus> | NFS:MW? |
01:38 | <@McMartin> | Need For Speed Most Wanted, I suspect |
01:40 | < Vornicus> | aha |
01:40 | <@ToxicFrog> | Indeed. |
01:40 | <@ToxicFrog> | ...and, actually, you may have something there. I do have a spare CRT. |
01:42 | | You're now known as TheWatcher[T-2] |
01:49 | | You're now known as TheWatcher[zZzZ] |
01:53 | <@ToxicFrog> | Hmm. |
01:53 | <@ToxicFrog> | move al,[ecx] |
01:53 | <@ToxicFrog> | test al,al |
01:54 | <@ToxicFrog> | This is basically: load into al the value pointed at by ecx; update test flags according to contents of al, yes? |
01:54 | <@McMartin> | It's been too long, for me. |
01:54 | <@McMartin> | I don't actually know what test does. |
01:54 | <@ToxicFrog> | It's cmp, I think |
01:54 | <@ToxicFrog> | Ie, like sub, but updates the condition register only. |
01:55 | <@ToxicFrog> | But it was mostly the move I was asking about. |
01:55 | <@McMartin> | Oh. Yeah. |
01:55 | <@McMartin> | (test al, al will force on the Zero register) |
01:55 | <@McMartin> | (At least, if it's like 65xx's CMP) |
01:56 | <@McMartin> | And, of course, assuming it's using Sane Notation instead of GNU/AT&T Notation. |
01:57 | <@ToxicFrog> | Augh, I can't follow this function at all |
01:57 | <@ToxicFrog> | die, intel, dieeee |
01:57 | <@McMartin> | Pastebin the disassembly of it? |
01:59 | <@ToxicFrog> | Perhaps later, it's fucking huge. |
01:59 | <@McMartin> | OK,nm. |
01:59 | | * ToxicFrog decides to have a go at the gameshark approach |
01:59 | <@McMartin> | Step one: break into basic blocks |
03:33 | <@McMartin> | Rargh |
03:33 | <@McMartin> | Vornicus, how do I make TxtWrangler stop taking over individual files? |
03:34 | <@McMartin> | I'm doing open *.java and half of them are opening in Xcode and the other half in TW. |
03:34 | < Vornicus> | Get Info on a file, change it to XCode, press Set Default... |
03:35 | <@McMartin> | I guess my real question is how to make TW stop setting itself as default for every file it opens. |
03:35 | < Vornicus> | that I'm not sure, it doesn't do that to me. |
03:37 | <@McMartin> | I'm wondering if it's open's fault. |
03:49 | | * McMartin learns another important lesson: Attempting to foreach null throws an exception! |
03:49 | | * McMartin mutters and bitches about extended file attributes. |
03:50 | <@McMartin> | Some of these files have com.apple.FinderInfo attributes on them. |
03:50 | <@McMartin> | I think that's what's sparking this behavior, and I want them all to die |
03:50 | <@McMartin> | Anyway, Blorple's scanner isn't broken anymore |
03:53 | < Vornicus> | yey |
04:39 | | Chalcedon [~Chalcy@Nightstar-488.ue.woosh.co.nz] has joined #code |
04:39 | | mode/#code [+o Chalcedon] by ChanServ |
04:43 | | Chalain [~chalain@Nightstar-26790.bkwm.com] has quit [Ping Timeout] |
05:03 | | * McMartin unleashes hardcore XML processing |
05:29 | | Jeff [JPL@Nightstar-509.dsl.sndg02.pacbell.net] has quit [Ping Timeout] |
05:34 | <@McMartin> | ... and, in so doing, I have basically increased Blorple's startup time by 10x or more. |
05:35 | < Shoukanjuu> | Hardcore indeed |
05:36 | <@McMartin> | Instead of scanning the files at startup and extracting all the data therefrom it now carries its own data. |
05:36 | <@McMartin> | I think I'm going to need a re-scan capability though. |
10:13 | | JeffL [~JPL@Nightstar-509.dsl.sndg02.pacbell.net] has joined #code |
10:14 | | Chalcedon [~Chalcy@Nightstar-488.ue.woosh.co.nz] has quit [Quit: Leaving] |
10:32 | | C_tiger [~c_wyz@96.232.29.ns-13249] has quit [Ping Timeout] |
10:41 | | C_tiger [~c_wyz@Nightstar-17455.nycmny.east.verizon.net] has joined #code |
10:41 | | mode/#code [+o C_tiger] by ChanServ |
11:07 | | You're now known as TheWatcher |
11:29 | | ellimist [ellimist@Nightstar-20191.san.res.rr.com] has joined #code |
--- Log closed Sun Apr 20 11:54:24 2008 |
--- Log opened Sun Apr 20 11:54:29 2008 |
11:54 | | TheWatcher [~chris@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #code |
11:54 | | Irssi: #code: Total of 17 nicks [10 ops, 0 halfops, 0 voices, 7 normal] |
11:54 | | mode/#code [+o TheWatcher] by ChanServ |
11:55 | | Irssi: Join to #code was synced in 51 secs |
17:08 | | You're now known as TheWatcher[afk] |
17:31 | | Jeff [~JPL@Nightstar-509.dsl.sndg02.pacbell.net] has joined #code |
17:32 | | JeffL [~JPL@Nightstar-509.dsl.sndg02.pacbell.net] has quit [Ping Timeout] |
17:58 | | Chalain [~chalain@Nightstar-26790.bkwm.com] has joined #code |
18:01 | | ellimist [ellimist@Nightstar-20191.san.res.rr.com] has quit [Ping Timeout] |
18:27 | | You're now known as TheWatcher |
18:34 | < AFKSkull> | hey TheWatcher, you handy? |
18:53 | | Pi [~sysop@Nightstar-6430.hsd1.wa.comcast.net] has quit [Ping Timeout] |
18:53 | | C_tiger [~c_wyz@Nightstar-17455.nycmny.east.verizon.net] has quit [Ping Timeout] |
18:56 | | C_tiger [~c_wyz@Nightstar-5700.nycmny.east.verizon.net] has joined #code |
18:56 | | mode/#code [+o C_tiger] by ChanServ |
19:02 | | Chalcedon [~Chalcy@Nightstar-488.ue.woosh.co.nz] has joined #code |
19:02 | | mode/#code [+o Chalcedon] by ChanServ |
19:52 | < AFKSkull> | nevermind, I got it |
20:07 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has quit [Connection reset by peer] |
20:09 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
20:09 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has left #code [] |
20:11 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
20:13 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has quit [Connection reset by peer] |
20:15 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
20:17 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has quit [Connection reset by peer] |
20:19 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
20:20 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has quit [Connection reset by peer] |
20:29 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
20:31 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has quit [Connection reset by peer] |
20:32 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
20:34 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has quit [Connection reset by peer] |
20:46 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
20:50 | | Pi-2 [~sysop@Nightstar-6430.hsd1.wa.comcast.net] has joined #code |
20:52 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has quit [Connection reset by peer] |
21:01 | | Vornicus is now known as Finerty |
21:03 | | Bobsentme [Bobsentme@Nightstar-28084.dsl.sfldmi.sbcglobal.net] has joined #code |
21:03 | < Bobsentme> | Visual Basic, anyone? |
21:03 | | William__ [~JPL@Nightstar-509.dsl.sndg02.pacbell.net] has joined #code |
21:03 | | * Bobsentme is trying to pass a variable to visual basic, but it is being ignored because the variable has " 's |
21:03 | | Jeff [~JPL@Nightstar-509.dsl.sndg02.pacbell.net] has quit [Ping Timeout] |
21:04 | < Finerty> | VB :( |
21:04 | < Bobsentme> | So, the RoomCode variable, from the input file, is "SG". When I try an If statement: If RoomCode = "SG" than RoomPrice = 72, it ignores it. |
21:04 | < Finerty> | I haven't worked with VB for a long time. |
21:05 | < Finerty> | Does the string itself have quotes around it? |
21:05 | < Bobsentme> | The room code in the input file does, yes. |
21:05 | < Finerty> | try, uh, I don't remember what it's called in VB, but in JS it'd be alert(RoomCode) before that statement |
21:05 | < Bobsentme> | Hmmm. |
21:06 | < Bobsentme> | Not sure what you mean by that. |
21:07 | < Finerty> | Show a dialog box with RoomCode in there |
21:08 | < Bobsentme> | To see what it's pulling from the input file, you mean? |
21:08 | < Finerty> | Yeah |
21:09 | < Bobsentme> | When I do Console.WriteLine("{0}", RoomCode), it gives me the same as what it is in the input file: "SG" |
21:09 | < Finerty> | Okay, that's wrong then. |
21:09 | < Bobsentme> | oh? |
21:09 | < Finerty> | You need to get the quotes to go away |
21:09 | < Bobsentme> | Ok. |
21:09 | < Finerty> | Because what you're comparing is "SG" with SG |
21:09 | < Bobsentme> | Oooooh |
21:13 | < Bobsentme> | What kills me is that for the last project, teacher was walking past, and saw me using double quotes in my input file, and said "Oh, you can't use those." |
21:13 | < Bobsentme> | Then, in this project, SHE USED THEM FOR THE INPUT FILE. |
21:15 | < Finerty> | Heh. |
21:16 | < Finerty> | You can use them, you just have to account for them. |
21:21 | < Bobsentme> | Yeah, I think I'm reading about it now |
21:21 | < Bobsentme> | Apparently to match up "SG", I have to put """"SG"""", or some such |
21:21 | < Finerty> | probably just """SG""" |
21:22 | < Finerty> | You have to double up quotemarks in the literal, but the delimiters stay the same |
21:23 | < Finerty> | If, that is, I am correct in thinking what you're seeing |
21:24 | < Bobsentme> | bah, that didn't work. |
21:25 | < Bobsentme> | Your correct in what I'm trying to do, but I blame this one on the teacher. |
21:25 | < Bobsentme> | I believe the input file is wrong...and she doesn't realize it. |
21:39 | < Bobsentme> | Thanks though, At least now I know I'm not nuts |
21:57 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
22:00 | | ellimist [ellimist@Nightstar-20191.san.res.rr.com] has joined #code |
22:26 | | AnnoDomini [AnnoDomini@Nightstar-29022.neoplus.adsl.tpnet.pl] has joined #Code |
22:26 | | mode/#code [+o AnnoDomini] by ChanServ |
22:31 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has quit [Quit: Shoukanjuu] |
22:33 | | Shoukanjuu [~Shoukanju@Nightstar-19231.dhcp.embarqhsd.net] has joined #code |
22:57 | | Pi-2 is now known as Pi |
23:18 | | William__ is now known as Jeff |
23:19 | | Jeff is now known as JeffL |
23:34 | | AnnoDomini [AnnoDomini@Nightstar-29022.neoplus.adsl.tpnet.pl] has quit [Quit: When the end is near, pants on the west rune, and step on the east.] |
--- Log closed Mon Apr 21 00:00:27 2008 |