PDA

View Full Version : The tools we use....


Agilis
2008-07-30, 14:15
As a number of you probably know, I'm always plotting new articles to write, and one is getting to the point where it's almost pen to paper time --- the tools that we use on projects. Use the right tool for the job, that's how it's supposed to be. The trick is, how do you know you've found the right tool, how do you know if there's something better if you get too settled down?

Now the obvious way (to me) to frame the article is move from what I use right now, figure out what needs they fill, why those needs are applicable to others, and what influenced me to select that one tool over all the others out there.

But depending on the project, the needs change. Depending on the user, the selection process is different. So, I put the question to you guys. What tools do you use to get your project work done. There are general themes to things, we need to work with text, or communicate, or hack an engine, etc. However, the way they are expressed differs from person to person.

I'm particularly interested in developers, since besides IDA, hex editors, and general purpose programming languages, I have no clue what the specifics are.

Hopefully, as I see more responses, I get a sense of whether the notion I have in my head that I'll write about is close, or wildly different. Either way, an article will be coming in a week or two probably.

In broad categories (don't let my categories restrict your responses), for me:

Version control/remote storage
Subversion
TortoiseSVN on win32, straight svn on *nix

Script/text editing
vim/gVim for plaintext scripts
Texniccenter + XeLaTeX for novelizations and related "print" work

Dictionaries/References
EPWING based Green Goddess on ebView
Yahoo's Kokugo dictionary
Wikipedia/Google

Communication
Email
IRC
Subversion (commit log comments work for tiny teams of 2 >_> )

Asceai
2008-07-30, 14:20
Executable reverse-engineering
nasm
ollydbg
xvi32/khexedit/heme/vim(using-xxd)

File format reverse engineering
xvi32/khexedit/heme/vim(using-xxd)

Tool creation
C (gcc)
Python (less often)
Perl (less often)

Version control/remote storage
FTP

Script/text editing
vim
gVim
kwrite
scite

Dictionaries/References
edict
dic.yahoo.co.jp
en.wiktionary.org, ja.wiktionary.org
ja.wikipedia.org (occasionally)
Google (occasionally)

Communication (actually, I haven't done a collab translation project, so uh...)
XMPP (incl. AIM, MSN, Y!)
IRC

Rasqual Twilight
2008-07-30, 16:13
An extra requirement when looking at scripts, when trying to figure out the opcodes, or at least digging out a preliminary, rough version of the script, is to be able to detect pieces of text.
Those are, most of the time, encoded using Shift-JIS, or more precisely, CP932.

An editor I'd recommend is Madedit (http://madedit.sourceforge.net/), an open-source hex editor with East-Asian users in mind. It can interpret hex bytes using several encodings, and has been ported to a handful platforms, including Windows, Linux and FreeBSD, using the wxWidgets library.
Its weak point is the lack of byte-to-byte comparison, which is often used when recompiling scripts and repacking game archives.
For this purpose, I recommend commercial software 010 Editor, by sweetscape, which also has other nice features such as finding in files, searching for patterns with generic wildcards, and a binary structure highlighter language.


PHP is my prime language for pet projects, although Python has the great advantage to be able to turn .py source into binaries (.exe). I also find that Ruby has a sexy syntax, but I don't master it yet to be able to do interesting things.



C:
-Handling files :: fopen, fread, fseek, fclose
-Encoding conversion :: iconv or Win32 API
-Compiling :: several options, pcre ?

C++:
Mostly same as above, but with more syntactic niceties such as RIAA memory buffers.
Visual C++ recommended for ASM compilation, if applicable. Also needed for heavier development, such as game engine hooking.

PHP:
Has a lot of very useful libraries bundled out of the box. Hard to setup an efficient debugging environment, however.
-Handling files :: fopen, fread, fseek, fclose for mostly blob copy operations; file_get|put_contents otherwise
-Encoding conversion :: iconv
-Parsing binary data :: pack/unpack, substr
-Compiling :: (built-in)pcre, trim
-Debugging :: var_dump, bin2hex

KawatoriShinji
2008-07-30, 18:26
An editor I'd recommend is Madedit (http://madedit.sourceforge.net/), an open-source hex editor with East-Asian users in mind.

That's been useful when browsing script files, since I can see the indexes...took me a while to find it though.

editing:
vim/grep/sed (depends on whether or not I have vim open already...)

hacking:
hexdump
madedit
python
(IRC)

version control:
...directories on reiserfs? (we all love data loss)
(git)

translation (in order of increasing laziness):translation (in order of increasing laziness):
dead tree dic (kenkyusha's..so I had it lying around!)
yahoo dic
edict
excite trans
google trans
(IRC)

images:
gimp

communication:
IRC

dsp2003
2008-07-30, 21:51
Ahem... ^__^

Executable reverse-engineering
OllyDbg (http://home.t-online.de/home/Ollydbg/)
HIEW32 (built-in disassembler)
WinHEX (direct application memory access :) )
ResHacker

File format reverse engineering
HIEW32
WinHEX
FAR (http://rarlab.com) + HEX Plugin

Tool creation
Object Pascal (Delphi 7 & FreePascal, most of time)
CMD Shell (often)
C++ (very less often)

Version control/remote storage
none

Graphics
Jasc (Corel) Paint Shop Pro 7 ESD
Jasc (Corel) Paint Shop Pro 9
IrfanView (http://www.irfanview.net)
@icon sushi (http://www.towofu.net/soft-e/) (Kewl icon creator tool)
MS Paint (yup :P)

Audio/SE recording/processing
GoldWave (http://www.goldwave.com)
Orangator 2
ModPlug Tracker (http://www.modplug.com)
Cakewalk Pro Audio 9

Script/text editing
Notepad2 (http://www.flos-freeware.ch/)
Uniqway Poetic (http://www.uniqway.com/)
Djinn Notepad (http://magicteam.emu-land.net/utils.htm) (forces Shift-JIS encoding by default, allows to convert between SJIS and Unicode)
FAR (http://rarlab.com)

Dictionaries/References
LogoMedia Translate Suite Retail
Abbyy Lingvo 12 ML Retail
Atlas v11 Retail
Google (occasionally)

Communication
ICQ
Jabber
IRC (rarely)

Serke
2008-07-31, 07:35
Reverse engineering:
IDA Pro
OllyDbg
HIEW (has built-in disassembler and assembler)

Tool creation (and patch prototyping):
MinGW
Borland C++
(GNU) Flex
(GNU) Bison

Patch creation:
FASM (the best assembler since TASM and especially good for writing patches)
GromPE FASM patching macros
OllyDbg (debugging)