--- Log opened Fri Dec 21 00:00:31 2007 |
00:10 | | Forj [~Forj@Nightstar-1707.ue.woosh.co.nz] has quit [Connection reset by peer] |
00:16 | | Chalcedon [~Chalcedon@Nightstar-1707.ue.woosh.co.nz] has quit [Quit: going] |
01:11 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Z?] |
03:22 | | AnnoDomini [AnnoDomini@Nightstar-29660.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
03:23 | | AnnoDomini [AnnoDomini@Nightstar-29660.neoplus.adsl.tpnet.pl] has joined #Code |
03:23 | | mode/#code [+o AnnoDomini] by ChanServ |
06:57 | <@Vornicus> | Hey, cool |
06:57 | <@Vornicus> | So, the calculator on Mac, I don't use it much, mainly because I generally outstrip its abilities. |
06:58 | < C_tiger> | I feel like there's a but coming. |
06:58 | <@Vornicus> | But apparently they updated it some for Tiger, and I didn't notice until now: there is now a "Programmer" mode, which shows you a full 64-bit number in binary, octal, and hex, and gives shifts, bitwise ops, roll, 1s and 2s complement... |
06:59 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out] |
06:59 | <@Vornicus> | And they also added the "use RPN" option. |
06:59 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
06:59 | | mode/#code [+o ToxicFrog] by ChanServ |
06:59 | < C_tiger> | Ugh, while I like RPN in concept, I hate it in practice. |
06:59 | < C_tiger> | But that is pretty nifty. |
07:00 | <@Vornicus> | It is quite nifty. |
07:00 | <@Vornicus> | ...oh, hell |
07:00 | <@Vornicus> | It even lets you toggle individual bits. |
07:01 | | * Vornicus hunts around for a thing that restricts it to less than 64 bits. |
07:01 | | * McM[SanDiego] unleashes more violent catharsis. |
07:03 | <@Vornicus> | ...and apparently you can have it show you the unicode character or ascii string that the number represents. |
07:07 | <@Vornicus> | I can't find one that restricts. Dang. |
07:21 | | Chalcedon [~Chalcedon@Nightstar-1707.ue.woosh.co.nz] has joined #code |
07:21 | | mode/#code [+o Chalcedon] by ChanServ |
08:10 | | Thaqui [~Thaqui@219.89.45.ns-13582] has joined #code |
08:10 | | mode/#code [+o Thaqui] by ChanServ |
08:21 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code |
08:21 | | mode/#code [+o gnolam] by ChanServ |
09:03 | | * Vornicus thinks he needs more heavy-duty tools than just monitor to find the things he needs in here. |
09:08 | <@Vornicus> | a flowcharter, a memory mapper... |
09:12 | | You're now known as TheWatcher |
09:13 | <@McM[SanDiego]> | ... Oh, you haven't been doing a line-dissassembly thing? |
09:16 | <@Vornicus> | line-disassembly thing? what's the difference from that and d <address> in monitor? |
09:17 | <@Vornicus> | and the prints you get in next? |
09:18 | <@Vornicus> | (it's actually a bit of a pain... it uses a custom terminal emulator, and it has all of 100 or so lines of scrool) |
09:18 | <@McM[SanDiego]> | Bluck. |
09:18 | <@McM[SanDiego]> | Yeah, the Linux version uses the terminal window and readline. |
09:18 | <@McM[SanDiego]> | The Win32 one does not |
09:19 | <@McM[SanDiego]> | And an execution tracker would not disassemble data. |
09:19 | <@McM[SanDiego]> | d does. |
09:19 | <@McM[SanDiego]> | I suppose that's about it, though. |
09:20 | <@Vornicus> | the mac one uses neither Terminal nor xterm |
09:20 | <@McM[SanDiego]> | Well, in Linux you're invoking it from a Terminal, so it just dumps it there. |
09:21 | <@McM[SanDiego]> | Also, have you been able to exploit the hunt command? |
09:21 | <@McM[SanDiego]> | That might get you some way towards memory mapping |
09:22 | <@Vornicus> | It would, if I knew what it was I was looking for. |
09:22 | <@McM[SanDiego]> | Mmm. The usual trick is to have some value that you know, hunt for things that have it, then have it change and re-hunt for the new value. |
09:22 | <@McM[SanDiego]> | You're trying to find combat code, right? Maybe unit HP? |
09:23 | <@Vornicus> | No, right now I'm looking for the game-init code. |
09:23 | <@McM[SanDiego]> | Aha. Tricky. |
09:24 | | Chalcedon [~Chalcedon@Nightstar-1707.ue.woosh.co.nz] has quit [Quit: Gone] |
09:35 | | AnnoDomini [AnnoDomini@Nightstar-29660.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
09:36 | <@McM[SanDiego]> | Oy. |
09:36 | | * McM[SanDiego] takes a look at Scout's Loader. |
09:36 | <@McM[SanDiego]> | It's as bad as KB's. |
09:36 | <@McM[SanDiego]> | Well, not quite. |
09:37 | <@McM[SanDiego]> | First instructions: SEI; LDA #$20; STA $d011; STA $01 |
09:38 | <@McM[SanDiego]> | ... self modifying code! Huz-frickin-zah. |
09:39 | <@Vornicus> | Scout? |
09:39 | <@McM[SanDiego]> | Yeah. |
09:39 | <@McM[SanDiego]> | A game of My Youth (tm). |
09:40 | <@Vornicus> | KB's does quite a bit of loading RAM with some stuff and then jumping into it; why it's doing that though I am not certain. |
09:40 | <@McM[SanDiego]> | I think in this case it's loading the loader into low ram, but the code starts at $0801. But Scout itself is supposed to be there (being entirely resident in memory). |
09:41 | <@McM[SanDiego]> | So it's copying Scout back where it belongs, after copying itself into the one place it doesn't think will do any damage: the bottom of the stack. |
09:41 | <@Vornicus> | Granted all that shit is /demo/ code, so it's craziness. |
09:41 | <@Vornicus> | |
09:41 | <@McM[SanDiego]> | In this case, it's saving tens of bytes of space, so I can see it. |
09:41 | <@McM[SanDiego]> | 6502 pointer code sucks, so instead of making a pointer and messing with it, it's just rewriting the address in the STA instruction. |
09:42 | | AnnoDomini [AnnoDomini@83.21.30.ns-26449] has joined #Code |
09:43 | | mode/#code [+o AnnoDomini] by ChanServ |
09:49 | <@Vornicus> | Cool. |
09:49 | <@Vornicus> | Not. |
09:51 | | * Kyrre dances with Vornicus. |
09:51 | | * Vornicus dances with Kyrre. |
09:51 | < Kyrre> | Weee. |
09:54 | < Kyrre> | But shouldn't you be asleep? |
09:55 | <@McM[SanDiego]> | AHA, FOUND IT |
09:55 | <@Vornicus> | Hi, meet nocturnalboi |
09:55 | <@Vornicus> | AHA FOUND IT? |
09:55 | <@McM[SanDiego]> | .C:0370 4C 1B 08 JMP $081B |
09:55 | < Kyrre> | nocturnalboi? |
09:55 | | * Vornicus is naturally nocturnal. |
09:57 | | * McM[SanDiego] runs "until 101", then "until 81b", wins. |
10:00 | | * Kyrre tries not to be. |
10:03 | <@McM[SanDiego]> | Or not |
10:04 | | * McM[SanDiego] jumps to $03. |
10:04 | | * McM[SanDiego] continues tracing until a bogus "RTI", which jumps him to $81c0. |
10:04 | <@Vornicus> | Something's wrong, I take it. |
10:04 | <@McM[SanDiego]> | ... no. |
10:04 | <@McM[SanDiego]> | This isb ehaving precisely as intended. |
10:05 | <@McM[SanDiego]> | $81C0 is pretty clearly at or near where the program begins. |
10:05 | <@McM[SanDiego]> | The LDA #$93; JSR $FFD2 is a good hint there. |
10:05 | <@McM[SanDiego]> | That's "Clear the screen". |
10:06 | <@Vornicus> | Ah |
10:06 | <@Vornicus> | isb ehaving |
10:06 | <@Vornicus> | Incredibly Sadistic Behavior? |
10:06 | <@McM[SanDiego]> | ...? |
10:06 | <@McM[SanDiego]> | No, it's just that dialup means never having to fix your typos. |
10:06 | <@Vornicus> | :P |
10:08 | <@McM[SanDiego]> | Wow. |
10:08 | <@McM[SanDiego]> | I must assume this program was written without the benefit of a relocating assembler. |
10:09 | <@McM[SanDiego]> | All that wacky RAM copying was to get the program bits in the locations necessary to have the branches work out, and there are clear module delinations. |
10:10 | <@Vornicus> | Fun. |
10:25 | <@Vornicus> | # Note to self: I have no idea what this does anymore |
10:25 | <@Vornicus> | # It looks like a cool fucking segment of code though! |
10:25 | <@Vornicus> | # I just wish I remembered writing it... :-\ |
10:26 | <@McM[SanDiego]> | whut |
10:26 | <@Vornicus> | http://codeulate.com/?p=7 <--- put profanity into Google Code Search, and it finds some gems. |
10:27 | <@McM[SanDiego]> | Yes. |
10:27 | <@McM[SanDiego]> | Also, "in case some idiot". |
10:29 | <@McM[SanDiego]> | ...wtf |
10:30 | <@McM[SanDiego]> | So, tracking a function |
10:30 | <@McM[SanDiego]> | la la la |
10:30 | <@McM[SanDiego]> | code code code |
10:30 | <@McM[SanDiego]> | Then |
10:30 | <@McM[SanDiego]> | RTS |
10:30 | <@McM[SanDiego]> | RTS |
10:30 | <@McM[SanDiego]> | RTS |
10:30 | <@McM[SanDiego]> | BRK |
10:30 | <@McM[SanDiego]> | BRK |
10:30 | <@McM[SanDiego]> | BRK |
10:30 | <@McM[SanDiego]> | We want this function over, and we want it over hard. |
10:30 | <@Vornicus> | /sweet/ |
10:32 | <@McM[SanDiego]> | Not only that, this code is full of NOPs. |
10:33 | <@Vornicus> | NOPs eat a cycle, don't they? |
10:33 | <@McM[SanDiego]> | Two. |
10:33 | <@Vornicus> | oh. |
10:33 | <@McM[SanDiego]> | One to fetch, one to decode. |
10:33 | <@Vornicus> | ah, so. |
10:34 | <@McM[SanDiego]> | Decoding an Immediate also tends to carry it out, IIRC. The 6502 has a pipeline of sorts. |
10:54 | | Thaqui [~Thaqui@219.89.45.ns-13582] has left #code [Leaving] |
10:57 | <@AnnoDomini> | Hm... what would the regexp be for "one word in a line, with any amount of whitespace before and after"? |
10:58 | <@Vornicus> | What language? |
10:58 | <@Vornicus> | And this is a thing that is probably better suited to non-regex. |
11:00 | | * AnnoDomini isn't sure. In Notepad2's search/replace options, there's a "Regular Expression search" box. But the thing lacks a proper manual, apparently, so I don't know what it does, really. |
11:01 | <@Vornicus> | ^\s*(\S+)\s*$ |
11:01 | <@TheWatcher> | ... aah, I just love it when CPAN breaks my perl install |
11:01 | <@Vornicus> | ^ try that. |
11:01 | <@AnnoDomini> | Thanks. :) |
11:15 | | * AnnoDomini finds the damned documentation and arrives at "^\s*\<\w*\>\s*$". |
11:15 | <@McM[SanDiego]> | That's a wtf. |
11:15 | <@AnnoDomini> | Huh? It works. |
11:16 | <@Vornicus> | ^\s*.+?\s*$ |
11:16 | <@Vornicus> | ...doesn't work because it matches spaces within, which is silly. |
11:16 | <@McM[SanDiego]> | It's the toothpicks and the <>s. |
11:16 | <@McM[SanDiego]> | <> have no place in normal regexps. |
11:17 | <@Vornicus> | ^\s*[^\s]+\s$ <--- if the one I gave does not work. |
11:17 | <@McM[SanDiego]> | These clearly are not PCREs. |
11:17 | <@McM[SanDiego]> | Anyway, bed. |
11:17 | <@McM[SanDiego]> | It being 3:30. |
11:19 | <@AnnoDomini> | Vornicus: Doesn't work. |
11:19 | <@AnnoDomini> | http://pastie.caboo.se/131285 <- The syntax. |
11:22 | <@AnnoDomini> | Too bad this thing can't replace with stuff it found, a bit modified. |
11:56 | <@TheWatcher> | What language is that, AD? |
11:56 | <@TheWatcher> | Oh, notepad2, nevermind |
13:36 | | You're now known as TheWatcher[afk] |
14:31 | | You're now known as TheWatcher |
15:51 | | Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer] |
17:05 | | You're now known as TheWatcher[afk] |
17:58 | | AnnoDomini is now known as Lerhir |
18:21 | <@ToxicFrog> | Ahahahahahahahha |
18:21 | <@ToxicFrog> | Same OS. |
18:22 | <@ToxicFrog> | Same distro, even, with the same versions of everything installed. |
18:22 | <@ToxicFrog> | Same compiler and source tree. |
18:22 | <@ToxicFrog> | Same build environment configuration. |
18:22 | <@ToxicFrog> | Different machine code! |
18:23 | <@ToxicFrog> | Why? Because the preprocessor expands __FILE__ to the name on the command line, which may be an absolute path, and anything using the debugging api gets __FILE__ placed in .rdata, thus making the memory locations of everything and its dog dependent on the length of the absolute path to your source tree. |
18:32 | | You're now known as TheWatcher |
19:10 | | Attilla [~The.Attil@172.200.173.ns-22442] has quit [Ping Timeout] |
19:50 | | Attilla [~The.Attil@172.200.173.ns-22442] has joined #code |
20:33 | <@Vornicus> | awesome |
20:33 | <@Vornicus> | not. |
20:33 | | * Lerhir snorts. |
20:44 | <@ToxicFrog> | And even after correcting this, the Linux and Windows variants generate different code ;.; |
20:46 | <@ToxicFrog> | 1718 07ed 8D7DAE leal -82(%ebp), %edi #, ivtmp.540 | 1718 07ed 8D55AE leal -82(%ebp), %edx #, |
20:46 | <@ToxicFrog> | 1719 07f0 C745A400 000000 movl $0, -92(%ebp) #, D.5090 | 1719 07f0 31F6 xorl %esi, %esi # D.5075 |
20:46 | <@ToxicFrog> | 1720 07f7 C745A800 000000 movl $0, -88(%ebp) #, D.5090 | 1720 07f2 8955A0 movl %edx, -96(%ebp) #, ivtmp.540 |
20:46 | <@ToxicFrog> | 1721 07fe 6690 .p2align 4,,7 | 1721 07f5 31FF xorl %edi, %edi # D.5075 |
20:46 | <@ToxicFrog> | 1722 L131: | 1722 .p2align 4,,7 |
20:46 | <@ToxicFrog> | 1723 .stabn 68,0,987,LM230-LFBB10 | 1723 L131: |
20:47 | <@ToxicFrog> | 1724 LM230: | 1724 .stabn 68,0,1019,LM230-LFBB10 |
20:47 | <@ToxicFrog> | 1725 0800 8B75A4 movl -92(%ebp), %esi # D.5090, D.5110 | 1725 LM230: |
20:47 | <@ToxicFrog> | 1726 .stabn 68,0,1019,LM231-LFBB10 | 1726 07f7 8B4D88 movl -120(%ebp), %ecx # bdump, |
20:47 | <@ToxicFrog> | 1727 LM231: | 1727 07fa 31C0 xorl %eax, %eax # tmp142 |
20:47 | <@ToxicFrog> | 1728 0803 8B5590 movl -112(%ebp), %edx # bdump, | 1728 .stabn 68,0,987,LM231-LFBB10 |
20:47 | <@Vornicus> | ;_; |
20:47 | <@ToxicFrog> | 1729 0806 31C0 xorl %eax, %eax # tmp139 | 1729 LM231: |
20:47 | <@ToxicFrog> | 1730 .stabn 68,0,1020,LM232-LFBB10 | 1730 07fc 89F3 movl %esi, %ebx # D.5075, D.5101 |
20:47 | <@ToxicFrog> | Look at this! |
20:47 | <@ToxicFrog> | And it's all goddamn CISC processors. |
20:47 | <@Vornicus> | I can't read that. |
20:48 | <@ToxicFrog> | It's a side-by-side listing comparison - left is linux, right is windows. |
20:48 | <@Vornicus> | but any assembly language with "stabn" as a command is scary, in my book. :P |
20:48 | <@ToxicFrog> | Linux emits LEAL MOVL MOVL MOVL MOVL XORL, windows LEAL XORL MOVL XORL MOVL XORL MOVL |
20:48 | <@ToxicFrog> | That' |
20:48 | <@ToxicFrog> | s a debugger directive, actually |
20:49 | <@Vornicus> | ah |
20:49 | <@ToxicFrog> | And is specific to the debugging format, not the processor. |
20:49 | <@ToxicFrog> | All the .stab* directives insert information into the debug symbol tables. |
20:50 | <@Vornicus> | why is exact equality important here, anyway? |
20:52 | <@ToxicFrog> | It means we can move the build system from windows to linux without waiting for the end of this testing cycle. |
20:52 | <@Vornicus> | aha |
20:53 | <@ToxicFrog> | Otherwise we either have to wait for 6.x, or restart the 5.x test process, and the latter isn't going to happen. |
21:03 | | Lerhir is now known as AnnoDomini |
21:12 | < Kyrre> | Crap, and you guys snapped at me for not using the pastie, HAH, never again. |
22:44 | | Forjadon [~Forjadon@Nightstar-1707.ue.woosh.co.nz] has joined #code |
22:56 | | Forjadon [~Forjadon@Nightstar-1707.ue.woosh.co.nz] has quit [Ping Timeout] |
22:59 | < C_tiger> | Kyrre, everyone is excused one mistake :P |
23:01 | < C_tiger> | (TF gets two because his name has two parts.) |
23:02 | <@AnnoDomini> | Mistake tolerance is a function of reputation. :p |
23:03 | < C_tiger> | And if your name as a @ in front of it. |
23:04 | | mode/#code [+oooooo Attilla C_tiger EvilDarkLord Kazriko Kyrre MyCatVerbs] by Vornicus |
23:04 | | mode/#code [+o Pi-2] by Vornicus |
23:04 | <@C_tiger> | Wooot, more mistake tolerance! |
23:05 | <@C_tiger> | Vorn, I realized the really silly thing I forgot about when discussing pot odds the other day. |
23:05 | <@AnnoDomini> | That your name has an @ in front of it is an indication of reputation. Or brown-nosing. ;p |
23:05 | <@C_tiger> | Or Vorn's generosity. |
23:06 | <@C_tiger> | Blarg, computer is demanding a restart. |
23:08 | | C_tiger [~c_wyz@Nightstar-5378.nycmny.east.verizon.net] has quit [Quit: And away she goes!] |
23:08 | | * Vornicus wonders what silly thing C forgot. |
23:22 | <@gnolam> | It forgot to be anthropomorphized. |
23:38 | <@Vornicus> | rather a long reboot. |
23:44 | <@AnnoDomini> | He is obviously negotiating with native american spirits over the right to have his box work again. |
23:45 | <@AnnoDomini> | :p |
23:49 | | C_tiger [~c_wyz@Nightstar-5378.nycmny.east.verizon.net] has joined #code |
23:50 | <@AnnoDomini> | Chief Dancing Puma agreed to give you box's spirit back, I presume? |
23:50 | < C_tiger> | ? |
23:51 | <@gnolam> | AnnoDomini: Good thing he didn't ask Chief Dancing on Core. |
23:51 | <@AnnoDomini> | Heh. |
23:51 | <@Vornicus> | [Fri 18:41:06] Vornicus rather a long reboot. |
23:51 | <@Vornicus> | [Fri 18:47:24] AnnoDomini He is obviously negotiating with native american spirits over the right to have his box work again. |
23:52 | <@AnnoDomini> | C_tiger: Your reboot was long. Hence I thought of a joke between myself and an IRL friend - whenever a box would not work for inexplicable reasons, we would say that it was because it was positioned over an ancient Indian graveyard and the spirits were displeased. |
23:52 | < C_tiger> | Haha.. actually, I knocked over a glass vase in the kitchen so I had to clean that up. |
23:52 | < C_tiger> | Glass shards embedded in carpet = LOOOOONG cleaning time. |
23:53 | <@gnolam> | Well, I always refer to "demons" as the reason why electronics don't work. Especially around non-techs. |
23:53 | <@AnnoDomini> | I suppose that would be less painful than making them understand. |
23:54 | <@gnolam> | And then I make vague references to secret initiations. |
23:54 | < C_tiger> | I just tell my roommate that he has a luddite aura. |
23:54 | < C_tiger> | He just needs to walk into a room and the looms smash themselves. |
23:54 | <@gnolam> | And whenever they say something like "electrons", I laugh out loud and tell them "What, you /believe/ all that crap?". |
23:55 | < C_tiger> | Pffft, nice gnol. |
23:55 | | * AnnoDomini imagines gnolam as a big, hairy, hyena-like humanoid. |
23:55 | <@gnolam> | Yes, I actually do that in real life. And strange as it may seem, on occasion /people actually seem to fall for it/. |
23:55 | <@gnolam> | AnnoDomini: :) |
23:55 | <@gnolam> | I take that as a compliment. :) |
23:55 | < C_tiger> | I seriously doubt any of my friends will. |
23:55 | <@Vornicus> | C_tiger: anyway, what's your Silly Thing You Forgot About Pot Odds? |
23:56 | < C_tiger> | That you need to know the cards you need to beat your opponent. |
23:56 | <@Vornicus> | Well, yes. |
23:56 | <@gnolam> | Talking about non-existing components usually works great with the "not /complete/ luddites" crowd. I've had great luck with "Ah, the flux capacitor is busted." |
23:56 | < C_tiger> | Yes, but that throws my poker-playing program out the proverbial window. |
23:57 | < C_tiger> | gnolam: the word "architecture" is surprising useful. |
--- Log closed Sat Dec 22 00:00:38 2007 |