[BLUG] spoofed process names?

Andrew Poland blug_at_mailman.cs.indiana.edu
Tue, 10 Jul 2007 08:49:40 -0400


--Apple-Mail-5--393849138
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=WINDOWS-1252;
	delsp=yes;
	format=flowed

Cool... note that this modifies the command line string, not the =20
actual program name.   Depending on the arguments you pass to ps you =20
can still see the actual program name.  The "f" in "ps -ef" causes it =20=

to display the command line instead of the program name.

So "ps" looks like this:

25660 pts/1    00:00:00 perl

and "ps -ef" looks like this:

ajpoland 25660 25574  0 08:43 pts/1    00:00:00 hello there!


Andrew


On Jul 10, 2007, at 8:34 AM, Brian Wheeler wrote:

> On Tue, 2007-07-10 at 11:55 +0000, ben lipkowitz wrote:
>> recently i was poking around on a shared mainframe and saw that a =20
>> user was
>> running a rather interesting process:
>>
>> nullogic q8 - Mon06PM 11:57 Hey, I dont look at you...
>>
>> where normally it would look something like this:
>> fenn     rc - Mon07PM     0 (pine)
>>
>> any ideas on how this might have been accomplished?
>> hint: sometimes i can get "w" to say "... (zsh)" at the end.
>> this is a NetBSD system btw
>>
>> curiouser and curouser
>>
>
> Nah, its "normal".  Consider this perl program:
>
> #!/usr/bin/perl
> $0=3D"hello there!";
> sleep 1000;
>
> run it and then do a ps -ef:
>
> bdwheele 31578 31505  0 08:31 pts/6    00:00:00 hello there!
>
>> =46rom the perlvar manpage, there's a description of what's going on:
>
>        $PROGRAM_NAME
>        $0      Contains the name of the program being executed.
>
>                On some (read: not all) operating systems assigning =20
> to $0 modi-
>                fies the argument area that the "ps" program sees.  =20
> On some
>                platforms you may have to use special "ps" options =20
> or a differ-
>                ent "ps" to see the changes.  Modifying the $0 is =20
> more useful
>                as a way of indicating the current program state =20
> than it is for
>                hiding the program you=92re running.  (Mnemonic: same =20=

> as sh and
>                ksh.)
>
>                Note that there are platform specific limitations on =20=

> the maxi-
>                mum length of $0.  In the most extreme case it may =20
> be limited
>                to the space occupied by the original $0.
>
>                In some platforms there may be arbitrary amount of =20
> padding, for
>                example space characters, after the modified name as =20=

> shown by
>                "ps".  In some platforms this padding may extend all =20=

> the way to
>                the original length of the argument area, no matter =20
> what you do
>                (this is the case for example with Linux 2.2).
>
>                Note for BSD users: setting $0 does not completely =20
> remove
>                "perl" from the ps(1) output.  For example, setting =20
> $0 to "foo-
>                bar" may result in "perl: foobar (perl)" (whether =20
> both the
>                "perl: " prefix and the " (perl)" suffix are shown =20
> depends on
>                your exact BSD variant and version).  This is an =20
> operating sys-
>                tem feature, Perl cannot help it.
>
>                In multithreaded scripts Perl coordinates the =20
> threads so that
>                any thread may modify its copy of the $0 and the =20
> change becomes
>                visible to ps(1) (assuming the operating system =20
> plays along).
>                Note that the view of $0 the other threads have will =20=

> not change
>                since they have their own copies of it.
>
>
>
>
> Brian
>
>
>
>>        /\-/\
>>> ( o.o )<
>>   _____>   <________fenn_____
>> _______________________________________________
>> BLUG mailing list
>> BLUG_at_linuxfan.com
>> http://mailman.cs.indiana.edu/mailman/listinfo/blug
>
> _______________________________________________
> BLUG mailing list
> BLUG_at_linuxfan.com
> http://mailman.cs.indiana.edu/mailman/listinfo/blug

---
Andrew Poland <ajpoland_at_iupui.edu>
Principal Developer
UITS Course Management Systems
Indiana University

Join us in #sakai - irc.freenode.net





--Apple-Mail-5--393849138
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=WINDOWS-1252

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">
<div>Cool... note that this modifies the command line string, not the =
actual program name. =A0 Depending on the arguments you pass to ps you =
can still see the actual program name. =A0The "f" in "ps -ef" causes it =
to display the command line instead of the program =
name.</div><div><br></div><div>So "ps" looks like this:</div><div><br =
class=3D"webkit-block-placeholder"></div><div><div>25660 pts/1 =A0 =
=A000:00:00 perl</div><div><br =
class=3D"webkit-block-placeholder"></div><div>and "ps -ef" looks like =
this:</div><div><br =
class=3D"webkit-block-placeholder"></div><div><div>ajpoland 25660 25574 =
=A00 08:43 pts/1 =A0 =A000:00:00 hello there!</div></div></div><div><br =
class=3D"webkit-block-placeholder"></div><div><br =
class=3D"webkit-block-placeholder"></div><div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
">Andrew</div> </div><div><br =
class=3D"webkit-block-placeholder"></div><br><div><div>On Jul 10, 2007, =
at 8:34 AM, Brian Wheeler wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">On Tue, 2007-07-10 at 11:55 +0000, ben lipkowitz =
wrote:</div> <blockquote type=3D"cite"><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">recently i =
was poking around on a shared mainframe and saw that a user was<span =
class=3D"Apple-converted-space">=A0</span></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">running =
a rather interesting process:</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">nullogic q8 - Mon06PM 11:57 Hey, =
I dont look at you...</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; =
"><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">where normally it would look =
something like this:</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; ">fenn <span =
class=3D"Apple-converted-space">=A0 =A0 </span>rc - Mon07PM <span =
class=3D"Apple-converted-space">=A0 =A0 </span>0 (pine)</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">any =
ideas on how this might have been accomplished?</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">hint: sometimes i can get "w" to say "... (zsh)" at =
the end.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">this is a NetBSD system =
btw</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">curiouser and curouser</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
min-height: 14px; "><br></div> </blockquote><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
min-height: 14px; "><br></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Nah, its =
"normal".<span class=3D"Apple-converted-space">=A0 </span>Consider this =
perl program:</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">#!/usr/bin/perl</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">$0=3D"hello =
there!";</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">sleep 1000;</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">run it =
and then do a ps -ef:</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; =
"><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">bdwheele 31578 31505<span =
class=3D"Apple-converted-space">=A0 </span>0 08:31 pts/6<span =
class=3D"Apple-converted-space">=A0 =A0 </span>00:00:00 hello =
there!</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div> =
<blockquote type=3D"cite"><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; ">=46rom the perlvar manpage, =
there's a description of what's going on:</div> </blockquote><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =
</span>$PROGRAM_NAME</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 </span>$0<span =
class=3D"Apple-converted-space">=A0 =A0 =A0 </span>Contains the name of =
the program being executed.</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 </span>On =
some (read: not all) operating systems assigning to $0 modi-</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =
=A0 =A0 =A0 =A0 </span>fies the argument area that the "ps" program =
sees.<span class=3D"Apple-converted-space">=A0 </span>On some</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =
=A0 =A0 =A0 =A0 </span>platforms you may have to use special "ps" =
options or a differ-</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>ent "ps" to see the changes.<span class=3D"Apple-converted-space">=A0=
 </span>Modifying the $0 is more useful</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 </span>as =
a way of indicating the current program state than it is for</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =
=A0 =A0 =A0 =A0 </span>hiding the program you=92re running.<span =
class=3D"Apple-converted-space">=A0 </span>(Mnemonic: same as sh =
and</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>ksh.)</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =
=A0 =A0 =A0 =A0 </span>Note that there are platform specific limitations =
on the maxi-</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>mum length of $0.<span class=3D"Apple-converted-space">=A0 =
</span>In the most extreme case it may be limited</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =
=A0 =A0 =A0 =A0 </span>to the space occupied by the original =
$0.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =
=A0 =A0 =A0 =A0 </span>In some platforms there may be arbitrary amount =
of padding, for</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>example space characters, after the modified name as shown =
by</div><div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: =
0px; margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =
=A0 =A0 =A0 =A0 =A0 </span>"ps".<span class=3D"Apple-converted-space">=A0 =
</span>In some platforms this padding may extend all the way =
to</div><div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: =
0px; margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =
=A0 =A0 =A0 =A0 =A0 </span>the original length of the argument area, no =
matter what you do</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>(this is the case for example with Linux 2.2).</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>Note for BSD users: setting $0 does not completely =
remove</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>"perl" from the ps(1) output.<span =
class=3D"Apple-converted-space">=A0 </span>For example, setting $0 to =
"foo-</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>bar" may result in "perl: foobar (perl)" (whether both =
the</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>"perl: " prefix and the " (perl)" suffix are shown depends =
on</div><div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: =
0px; margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =
=A0 =A0 =A0 =A0 =A0 </span>your exact BSD variant and version).<span =
class=3D"Apple-converted-space">=A0 </span>This is an operating =
sys-</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>tem feature, Perl cannot help it.</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
min-height: 14px; "><br></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 </span>In =
multithreaded scripts Perl coordinates the threads so that</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><span class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =
=A0 =A0 =A0 =A0 </span>any thread may modify its copy of the $0 and the =
change becomes</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>visible to ps(1) (assuming the operating system plays =
along).</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>Note that the view of $0 the other threads have will not =
change</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>since they have their own copies of it.</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
min-height: 14px; "><br></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">Brian</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div> <blockquote =
type=3D"cite"><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0=A0 =A0 =A0 </span>/\-/\</div> =
<blockquote type=3D"cite"><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; ">( o.o )&lt;</div> =
</blockquote><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0 </span>_____&gt; <span =
class=3D"Apple-converted-space">=A0 =
</span>&lt;________fenn_____</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
">_______________________________________________</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">BLUG mailing list</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a =
href=3D"mailto:BLUG_at_linuxfan.com">BLUG_at_linuxfan.com</a></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><a =
href=3D"http://mailman.cs.indiana.edu/mailman/listinfo/blug">http://mailma=
n.cs.indiana.edu/mailman/listinfo/blug</a></div> </blockquote><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
">_______________________________________________</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">BLUG mailing list</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a =
href=3D"mailto:BLUG_at_linuxfan.com">BLUG_at_linuxfan.com</a></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><a =
href=3D"http://mailman.cs.indiana.edu/mailman/listinfo/blug">http://mailma=
n.cs.indiana.edu/mailman/listinfo/blug</a></div> =
</blockquote></div><br><div> <span class=3D"Apple-style-span" =
style=3D"border-collapse: separate; border-spacing: 0px 0px; color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant: normal; font-weight: normal; letter-spacing: =
normal; line-height: normal; text-align: auto; =
-khtml-text-decorations-in-effect: none; text-indent: 0px; =
-apple-text-size-adjust: auto; text-transform: none; orphans: 2; =
white-space: normal; widows: 2; word-spacing: 0px; "><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; =
border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; text-align: auto; =
-khtml-text-decorations-in-effect: none; text-indent: 0px; =
-apple-text-size-adjust: auto; text-transform: none; orphans: 2; =
white-space: normal; widows: 2; word-spacing: 0px; =
"><div>---</div><div>Andrew Poland &lt;<a =
href=3D"mailto:ajpoland_at_iupui.edu">ajpoland_at_iupui.edu</a>&gt;</div><div>Pr=
incipal Developer</div><div>UITS Course Management =
Systems</div><div>Indiana University</div><div><br =
class=3D"khtml-block-placeholder"></div><div>Join us in #sakai - =
irc.freenode.net</div><div><br =
class=3D"khtml-block-placeholder"></div><div><br =
class=3D"khtml-block-placeholder"></div><br =
class=3D"Apple-interchange-newline"></span></span> =
</div><br></body></html>=

--Apple-Mail-5--393849138--