code logs -> 2008 -> Sun, 20 Apr 2008< code.20080419.log - code.20080421.log >
--- 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
code logs -> 2008 -> Sun, 20 Apr 2008< code.20080419.log - code.20080421.log >