100% found this document useful (1 vote)
13 views

Foundations of ARM64 Linux Debugging, Disassembling, and Reversing: Analyze Code, Understand Stack Memory Usage, and Reconstruct Original C/C++ Code with ARM64 1st Edition Dmitry Vostokov - Download the full set of chapters carefully compiled

The document promotes the book 'Foundations of ARM64 Linux Debugging, Disassembling, and Reversing' by Dmitry Vostokov, which focuses on analyzing code, understanding stack memory usage, and reconstructing original C/C++ code with ARM64. It includes links to download the book and other related titles, as well as a detailed table of contents outlining various topics covered in the book. The document emphasizes the importance of debugging and code analysis in programming.

Uploaded by

mansiajuste
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
13 views

Foundations of ARM64 Linux Debugging, Disassembling, and Reversing: Analyze Code, Understand Stack Memory Usage, and Reconstruct Original C/C++ Code with ARM64 1st Edition Dmitry Vostokov - Download the full set of chapters carefully compiled

The document promotes the book 'Foundations of ARM64 Linux Debugging, Disassembling, and Reversing' by Dmitry Vostokov, which focuses on analyzing code, understanding stack memory usage, and reconstructing original C/C++ code with ARM64. It includes links to download the book and other related titles, as well as a detailed table of contents outlining various topics covered in the book. The document emphasizes the importance of debugging and code analysis in programming.

Uploaded by

mansiajuste
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Visit ebookmass.

com to download the full version and


explore more ebook or textbook

Foundations of ARM64 Linux Debugging,


Disassembling, and Reversing: Analyze Code,
Understand Stack Memory Usage, and Reconstruct
Original C/C++ Code with ARM64 1st Edition Dmitry
Vostokov
_____ Click the link below to download _____
https://ebookmass.com/product/foundations-of-arm64-linux-
debugging-disassembling-and-reversing-analyze-code-
understand-stack-memory-usage-and-reconstruct-original-c-c-
code-with-arm64-1st-edition-dmitry-vostokov/

Explore and download more ebook or textbook at ebookmass.com


Here are some recommended products that we believe you will be
interested in. You can click the link to download.

Foundations of Linux Debugging, Disassembling, and


Reversing: Analyze Binary Code, Understand Stack Memory
Usage, and Reconstruct C/C++ Code with Intel x64 1st
Edition Dmitry Vostokov
https://ebookmass.com/product/foundations-of-linux-debugging-
disassembling-and-reversing-analyze-binary-code-understand-stack-
memory-usage-and-reconstruct-c-c-code-with-intel-x64-1st-edition-
dmitry-vostokov/

Foundations of ARM64 Linux Debugging, Disassembling, and


Reversing Dmitry Vostokov

https://ebookmass.com/product/foundations-of-arm64-linux-debugging-
disassembling-and-reversing-dmitry-vostokov/

Fundamentals of Trace and Log Analysis: A Pattern-Oriented


Approach to Monitoring, Diagnostics, and Debugging 1st
Edition Dmitry Vostokov
https://ebookmass.com/product/fundamentals-of-trace-and-log-analysis-
a-pattern-oriented-approach-to-monitoring-diagnostics-and-
debugging-1st-edition-dmitry-vostokov-2/

Fundamentals of Trace and Log Analysis A Pattern-Oriented


Approach to Monitoring, Diagnostics, and Debugging 1st
Edition Dmitry Vostokov
https://ebookmass.com/product/fundamentals-of-trace-and-log-analysis-
a-pattern-oriented-approach-to-monitoring-diagnostics-and-
debugging-1st-edition-dmitry-vostokov/
Python Debugging for AI, Machine Learning, and Cloud
Computing: A Pattern-Oriented Approach 1st Edition Dmitry
Vostokov
https://ebookmass.com/product/python-debugging-for-ai-machine-
learning-and-cloud-computing-a-pattern-oriented-approach-1st-edition-
dmitry-vostokov/

Visual Studio Code Distilled: Evolved Code Editing for


Windows, macOS, and Linux - Third Edition Alessandro Del
Sole
https://ebookmass.com/product/visual-studio-code-distilled-evolved-
code-editing-for-windows-macos-and-linux-third-edition-alessandro-del-
sole/

Visual Studio Code Distilled: Evolved Code Editing for


Windows, macOS, and Linux 3 / converted Edition Alessandro
Del Sole
https://ebookmass.com/product/visual-studio-code-distilled-evolved-
code-editing-for-windows-macos-and-linux-3-converted-edition-
alessandro-del-sole/

International Swimming Pool and Spa Code 2021 1st Edition


International Code Council

https://ebookmass.com/product/international-swimming-pool-and-spa-
code-2021-1st-edition-international-code-council/

International Fire Code (International Code Council


Series) 2021 1st Edition International Code Council

https://ebookmass.com/product/international-fire-code-international-
code-council-series-2021-1st-edition-international-code-council/
Foundations of ARM64
Linux Debugging,
Disassembling, and
Reversing
Analyze Code, Understand Stack
Memory Usage, and Reconstruct
Original C/C++ Code with ARM64

Dmitry Vostokov
Foundations of
ARM64 Linux
Debugging,
Disassembling, and
Reversing
Analyze Code, Understand
Stack Memory Usage,
and Reconstruct Original C/C++
Code with ARM64

Dmitry Vostokov
Foundations of ARM64 Linux Debugging, Disassembling, and Reversing:
Analyze Code, Understand Stack Memory Usage, and Reconstruct Original
C/C++ Code with ARM64

Dmitry Vostokov
Dublin, Ireland

ISBN-13 (pbk): 978-1-4842-9081-1 ISBN-13 (electronic): 978-1-4842-9082-8


https://doi.org/10.1007/978-1-4842-9082-8
Copyright © 2023 by Dmitry Vostokov
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Celestin Suresh John
Development Editor: James Markham
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image by Susan Wilkinson on Unsplash (www.unsplash.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY
10004, U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected],
or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member
(owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance
Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for
reprint, paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub (https://github.com/Apress). For more detailed information,
please visit http://www.apress.com/source-code.
Printed on acid-free paper
Table of Contents
About the Author���������������������������������������������������������������������������������ix

About the Technical Reviewer�������������������������������������������������������������xi

Preface����������������������������������������������������������������������������������������������xiii

Chapter 1: Memory, Registers, and Simple Arithmetic�������������������������1


Memory and Registers Inside an Idealized Computer������������������������������������������1
Memory and Registers Inside ARM 64-Bit Computer��������������������������������������������2
“Arithmetic” Project: Memory Layout and Registers��������������������������������������������3
“Arithmetic” Project: A Computer Program�����������������������������������������������������������5
“Arithmetic” Project: Assigning Numbers to Memory Locations���������������������������5
Assigning Numbers to Registers���������������������������������������������������������������������������8
“Arithmetic” Project: Adding Numbers to Memory Cells���������������������������������������9
Incrementing/Decrementing Numbers in Memory and Registers�����������������������12
Multiplying Numbers�������������������������������������������������������������������������������������������15
Summary������������������������������������������������������������������������������������������������������������18

Chapter 2: Code Optimization�������������������������������������������������������������19


“Arithmetic” Project: C/C++ Program�����������������������������������������������������������������19
Downloading GDB�����������������������������������������������������������������������������������������������20
GDB Disassembly Output – No Optimization�������������������������������������������������������21
GDB Disassembly Output – Optimization������������������������������������������������������������27
Summary������������������������������������������������������������������������������������������������������������28

iii
Table of Contents

Chapter 3: Number Representations��������������������������������������������������29


Numbers and Their Representations�������������������������������������������������������������������29
Decimal Representation (Base Ten)��������������������������������������������������������������������30
Ternary Representation (Base Three)������������������������������������������������������������������30
Binary Representation (Base Two)����������������������������������������������������������������������31
Hexadecimal Representation (Base Sixteen)������������������������������������������������������32
Why Are Hexadecimals Used?�����������������������������������������������������������������������������32
Summary������������������������������������������������������������������������������������������������������������34

Chapter 4: Pointers�����������������������������������������������������������������������������35
A Definition���������������������������������������������������������������������������������������������������������35
“Pointers” Project: Memory Layout and Registers����������������������������������������������36
“Pointers” Project: Calculations��������������������������������������������������������������������������38
Using Pointers to Assign Numbers to Memory Cells�������������������������������������������39
Adding Numbers Using Pointers�������������������������������������������������������������������������46
Incrementing Numbers Using Pointers���������������������������������������������������������������51
Multiplying Numbers Using Pointers�������������������������������������������������������������������54
Summary������������������������������������������������������������������������������������������������������������58

Chapter 5: Bytes, Halfwords, Words, and Doublewords����������������������59


Using Hexadecimal Numbers������������������������������������������������������������������������������59
Byte Granularity��������������������������������������������������������������������������������������������������60
Bit Granularity�����������������������������������������������������������������������������������������������������60
Memory Layout���������������������������������������������������������������������������������������������������61
Summary������������������������������������������������������������������������������������������������������������64

iv
Table of Contents

Chapter 6: Pointers to Memory�����������������������������������������������������������65


Pointers Revisited�����������������������������������������������������������������������������������������������65
Addressing Types������������������������������������������������������������������������������������������������65
Registers Revisited���������������������������������������������������������������������������������������������70
NULL Pointers�����������������������������������������������������������������������������������������������������70
Invalid Pointers���������������������������������������������������������������������������������������������������70
Variables As Pointers������������������������������������������������������������������������������������������71
Pointer Initialization��������������������������������������������������������������������������������������������71
Initialized and Uninitialized Data�������������������������������������������������������������������������72
More Pseudo Notation�����������������������������������������������������������������������������������������72
“MemoryPointers” Project: Memory Layout�������������������������������������������������������73
Summary������������������������������������������������������������������������������������������������������������87

Chapter 7: Logical Instructions and PC����������������������������������������������89


Instruction Format����������������������������������������������������������������������������������������������89
Logical Shift Instructions������������������������������������������������������������������������������������90
Logical Operations����������������������������������������������������������������������������������������������90
Zeroing Memory or Registers�����������������������������������������������������������������������������91
Program Counter�������������������������������������������������������������������������������������������������92
Code Section�������������������������������������������������������������������������������������������������������93
Summary������������������������������������������������������������������������������������������������������������94

Chapter 8: Reconstructing a Program with Pointers��������������������������95


Example of Disassembly Output: No Optimization����������������������������������������������95
Reconstructing C/C++ Code: Part 1��������������������������������������������������������������������98
Reconstructing C/C++ Code: Part 2������������������������������������������������������������������100
Reconstructing C/C++ Code: Part 3������������������������������������������������������������������102

v
Table of Contents

Reconstructing C/C++ Code: C/C++ Program��������������������������������������������������103


Example of Disassembly Output: Optimized Program���������������������������������������104
Summary����������������������������������������������������������������������������������������������������������106

Chapter 9: Memory and Stacks��������������������������������������������������������107


Stack: A Definition���������������������������������������������������������������������������������������������107
Stack Implementation in Memory���������������������������������������������������������������������108
Things to Remember�����������������������������������������������������������������������������������������110
Stack Push Implementation������������������������������������������������������������������������������111
Stack Pop Implementation��������������������������������������������������������������������������������111
Register Review������������������������������������������������������������������������������������������������111
Application Memory Simplified�������������������������������������������������������������������������112
Stack Overflow��������������������������������������������������������������������������������������������������113
Jumps���������������������������������������������������������������������������������������������������������������114
Calls������������������������������������������������������������������������������������������������������������������115
Call Stack����������������������������������������������������������������������������������������������������������116
Exploring Stack in GDB�������������������������������������������������������������������������������������118
Summary����������������������������������������������������������������������������������������������������������121

Chapter 10: Frame Pointer and Local Variables�������������������������������123


Stack Usage������������������������������������������������������������������������������������������������������123
Register Review������������������������������������������������������������������������������������������������124
Addressing Array Elements�������������������������������������������������������������������������������124
Stack Structure (No Function Parameters)�������������������������������������������������������126
Function Prolog�������������������������������������������������������������������������������������������������127
Raw Stack (No Local Variables and Function Parameters)�������������������������������127
Function Epilog�������������������������������������������������������������������������������������������������129

vi
Table of Contents

“Local Variables” Project����������������������������������������������������������������������������������130


Disassembly of Optimized Executable��������������������������������������������������������������133
Summary����������������������������������������������������������������������������������������������������������134

Chapter 11: Function Parameters�����������������������������������������������������135


“FunctionParameters” Project��������������������������������������������������������������������������135
Stack Structure�������������������������������������������������������������������������������������������������136
Function Prolog and Epilog�������������������������������������������������������������������������������138
Project Disassembled Code with Comments����������������������������������������������������139
Parameter Mismatch Problem��������������������������������������������������������������������������144
Summary����������������������������������������������������������������������������������������������������������145

Chapter 12: More Instructions����������������������������������������������������������147


PSTATE Flags�����������������������������������������������������������������������������������������������������147
Testing for 0������������������������������������������������������������������������������������������������������147
TST – Logical Compare�������������������������������������������������������������������������������������148
CMP – Compare Two Operands�������������������������������������������������������������������������149
TST or CMP?�����������������������������������������������������������������������������������������������������150
Conditional Jumps��������������������������������������������������������������������������������������������150
Function Return Value���������������������������������������������������������������������������������������151
Summary����������������������������������������������������������������������������������������������������������152

Chapter 13: Function Pointer Parameters����������������������������������������153


“FunctionPointerParameters” Project���������������������������������������������������������������153
Commented Disassembly���������������������������������������������������������������������������������154
Summary����������������������������������������������������������������������������������������������������������161

vii
Table of Contents

Chapter 14: Summary of Code Disassembly Patterns����������������������163


Function Prolog/Epilog��������������������������������������������������������������������������������������163
ADR (Address)���������������������������������������������������������������������������������������������������164
Passing Parameters������������������������������������������������������������������������������������������164
Accessing Saved Parameters and Local Variables��������������������������������������������165
Summary����������������������������������������������������������������������������������������������������������166

Index�������������������������������������������������������������������������������������������������167

viii
About the Author
Dmitry Vostokov is an internationally
recognized expert, speaker, educator, scientist,
and author. He is the founder of the pattern-
oriented software diagnostics, forensics,
and prognostics discipline and Software
Diagnostics Institute (DA+TA: DumpAnalysis.
org + TraceAnalysis.org). Vostokov has also
authored more than 50 books on software
diagnostics, anomaly detection and analysis,
software and memory forensics, root cause analysis and problem solving,
memory dump analysis, debugging, software trace and log analysis,
reverse engineering, and malware analysis. He has more than 25 years
of experience in software architecture, design, development, and
maintenance in various industries, including leadership, technical, and
people management roles. Dmitry also founded Syndromatix, Anolog.
io, BriteTrace, DiaThings, Logtellect, OpenTask Iterative and Incremental
Publishing (OpenTask.com), Software Diagnostics Technology and
Services (former Memory Dump Analysis Services; PatternDiagnostics.
com), and Software Prognostics. In his spare time, he presents various
topics on Debugging TV and explores Software Narratology, its further
development as Narratology of Things and Diagnostics of Things (DoT),
Software Pathology, and Quantum Software Diagnostics. His current
areas of interest are theoretical software diagnostics and its mathematical
and computer science foundations, application of formal logic, artificial
intelligence, machine learning and data mining to diagnostics and anomaly
detection, software diagnostics engineering and diagnostics-driven

ix
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
About the Author

development, and diagnostics workflow and interaction. Recent areas


of interest also include cloud native computing, security, automation,
functional programming, and applications of category theory to software
development and big data.

x
About the Technical Reviewer
Sundar Pandian has more than three
years of experience in embedded software
development, including development of device
drivers, middleware software, and application
services for the infotainment system on the
Android platform. He’s also developed CAN
protocol drivers for the automotive braking
system on the Autosar platform.
He’s developed software with C, C++,
and Java and worked in the automotive,
semiconductor, and telecom industries. He has
a bachelor’s in electronics and communication engineering. Currently, he
serves as a firmware/middleware engineer for audio DSPs.

xi
Preface
The book covers topics ranging from ARM64 assembly language
instructions and writing programs in assembly language to pointers, live
debugging, and static binary analysis of compiled C and C++ code.
Diagnostics of core memory dumps, live and postmortem debugging
of Linux applications, services, and systems, memory forensics, malware,
and vulnerability analysis require an understanding of ARM64 assembly
language and how C and C++ compilers generate code, including
memory layout and pointers. This book is about background knowledge
and practical foundations that are needed to understand internal Linux
program structure and behavior, start working with the GDB debugger, and
use it for disassembly and reversing. It consists of practical step-by-step
exercises of increasing complexity with explanations and many diagrams,
including some necessary background topics.
By the end of the book, you will have a solid understanding of how
Linux C and C++ compilers generate binary code. In addition, you will be
able to analyze such code confidently, understand stack memory usage,
and reconstruct original C/C++ code.
The book will be useful for

• Software support and escalation engineers, cloud


security engineers, SRE, and DevSecOps

• Software engineers coming from JVM background

• Software testers

• Engineers coming from non-Linux environments, for


example, Windows or Mac OS X

xiii
Preface

• Engineers coming from non-ARM environments, for


example, x86/x64

• Linux C/C++ software engineers without assembly


language background

• Security researchers without assembly language


background

• Beginners learning Linux software reverse engineering


techniques

This book can also be used as an ARM64 assembly language and Linux
debugging supplement for relevant undergraduate-level courses.

Source Code
All source code used in this book can be downloaded from ­github.com/
apress/arm64-linux-debugging-disassembling-reversing.

xiv
CHAPTER 1

Memory, Registers,
and Simple Arithmetic
 emory and Registers Inside an
M
Idealized Computer
Computer memory consists of a sequence of memory cells, and each cell
has a unique address (location). Every cell contains a “number.” We refer
to these “numbers” as contents at addresses (locations). Because memory
access is slower than arithmetic instructions, there are so-called registers
to speed up complex operations that require memory to store temporary
results. We can also think about them as stand-alone memory cells. The
name of a register is its address. Figure 1-1 illustrates this.

© Dmitry Vostokov 2023 1


D. Vostokov, Foundations of ARM64 Linux Debugging, Disassembling, and Reversing,
https://doi.org/10.1007/978-1-4842-9082-8_1
Chapter 1 Memory, Registers, and Simple Arithmetic

Figure 1-1. Computer memory represented as a sequence of memory


cells and locations

 emory and Registers Inside ARM


M
64-Bit Computer
Here, addresses for memory locations containing integer values usually
differ by four or eight, and we also show two registers called X0 and X1.
The first halves of them are called W0 and W1 as shown in Figure 1-2.

2
Chapter 1 Memory, Registers, and Simple Arithmetic

Figure 1-2. Typical ARM 64-bit memory and register layout

Because memory cells contain “numbers,” we start with simple


arithmetic and ask a processor to compute the sum of two numbers to see
how memory and registers change their values.

“ Arithmetic” Project: Memory Layout


and Registers
For our project, we have two memory addresses (locations) that we call
“a” and “b.” We can think about “a” and “b” as names of their respective
addresses (locations). Now we introduce a special notation where (a)

3
Chapter 1 Memory, Registers, and Simple Arithmetic

means contents at the memory address (location) “a.” If we use the C


or C++ language to write our project, we declare and define memory
locations “a” and “b” as

static int a, b;

By default, when we load a program, static memory locations are filled


with zeroes, and we can depict our initial memory layout after loading the
program, as shown in Figure 1-3.

Figure 1-3. Initial memory layout after loading the program

4
Chapter 1 Memory, Registers, and Simple Arithmetic

“Arithmetic” Project: A Computer Program


We can think of a computer program as a sequence of instructions for
the manipulation of contents of memory cells and registers. For example,
addition operation: add the contents of memory cell №12 to the contents
of memory cell №14. In our pseudo-code, we can write

[14] <- [14] + [12]

Our first program in pseudo-code is shown on the left of the table:

[a] <- 1 Here, we put assembly instructions corresponding to


[b] <- 1 pseudo-code.
[b] <- [b] + [a]
[a] <- [a] + 1
[b] <- [b] * [a]

“<-” means moving (assigning) the new value to the contents of a


memory location (address). “//” is a comment sign, and the rest of the line
is a comment. “=” shows the current value at a memory location (address).
To remind, a code written in a high-level programming language is
translated to a machine language by a compiler. However, the machine
language can be readable if its digital codes are represented in some
mnemonic system called assembly language. For example, ADD X1, X1, #1
is increment by one of what is stored in the register memory cell X1.

“ Arithmetic” Project: Assigning Numbers


to Memory Locations
We remind that “a” means the location (address) of the memory cell,
and it is also the name of the location (address) 00000000004b2b00 (see
Figure 1-3). [a] means the contents (number) stored at the address “a.”

5
Chapter 1 Memory, Registers, and Simple Arithmetic

If we use the C or C++ language, “a” is called “the variable a,” and we
write the assignment as

a = 1;

In ARM64 assembly language, we write several instructions for that:

adr x0, a
mov w1, #1
str w1, [x0]

In the GDB disassembly output, we may see the following code:

adrp    x0, 0x4b2000
add     x0, x0, #0xb00
mov     w1, #0x1
str     w1, [x0]

We show the translation of our pseudo-code into assembly language in


the right column:

[a] <- 1          // x0 = a adr  x0, a


// w1 = 1 mov  w1, #1
// [a] = 1 str  w1, [x0]
[b] <- 1          // x0 = b adr  x0, b
// w1 = 1 mov  w1, #1
// [b] = 1 str  w1, [x0]
[b] <- [b] + [a]
[a] <- [a] + 1
[b] <- [b] * [a]

adrp x0, 0x4b2000, and subsequent add x0, x0, #0xb00 is how the
compiler generates code to calculate the address “a” instead of specifying it
directly. Such code is required for addressing large regions of memory, and

6
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Other documents randomly have
different content
He looked straight at her now as if she were his strength, his
refuge. His eyes were haggard, strained. “Go on, what is it?” he
said.
As if in reward for his docility she closed her hand again on his
where it rested on the rock. It seemed to give him strength—
strength to follow, to obey.
“Listen, Tom; are you listening? An indictment—you know what an
indictment is, don’t you?” she said kindly. “It’s an accusation—by the
state. You and I are part of the state; do you see? It’s our
accusation—no, no no, please don’t be angry, Tom—I just mean that
it isn’t a question between you and Mr. Whalen and the state, see?
Because we’re a part of the state—you and I.”
It cheered and consoled him to hear her couple their two names
in this way. It made them seem like—like partners.
“That indictment stands, Tom; it stands until it’s answered.
Running away and hiding somewhere else doesn’t answer it. Don’t
you see? And it is not for you and me to set ourselves up as judges.
It’s just a question of good citizenship, Tom, that’s all. I wish now
you had read the book I asked you to read.
“You have to go to Kingston and tell them, the authorities;
because there’s a stigma on you till you do. You have to think of
your highest duty and that is your duty as a citizen. Then when they
—when the case comes to trial you have a right to help him all you
can. And you will try to, I know you will. I just thought that if you
took the two thousand dollars you could hire a lawyer with it maybe
—because I know he’s poor.”
“Poor,” Tom whispered in pitiful, broken tones; “Yop.”
“You can be a good citizen if you will, and then a good friend if
he’ll let you. Please don’t, Tom—oh please—no, no, listen, Tom. I
just want you to do your duty. Listen,” she pled. “I will have the
money that Niel pays me for helping him—about three hundred
dollars—and you can have that too. We’ll chip in to help him, Tom.
And then—maybe—he’ll be freed—he’ll have his freedom in the right
way. Free just like you and me. Don’t you see, Tom?”
He nodded his head in reluctant assent.
“You must go and tell them, Tom, you must tell them that he is
here. If we disrespect the law we can’t expect the law to protect us.
Do you know what an indictment says, Tom? How it begins? It says,
‘We the people.’ Tom—poor Tom—I’m sorry, oh, so sorry. But you’ll
do what’s brave and right, won’t you? Yes, you will. You came to ask
me and I have to tell you. It’s just like—I know—it’s just like going to
war and shooting mothers’ sons, Tom. But you were a soldier and a
scout and that means you’re a citizen. Aren’t you, Tom? And you’ll
do your plain duty, won’t you? You asked me, Tom, and I’m telling
you—you’ll—I knew you would....”
Yes, she knew he would because he hung his head, then of a
sudden clasped his hands before his face. It was only for just a
moment....
CHAPTER XXX

THE DEPARTURE

And now, in addition to Audry’s intelligence, was her kindness.


Even in her firmness and certainty she had been kind. Of course she
was right, poor Tom saw that. The only rebellion that still persisted
in him was rebellion against a fate which could contrive two diverse
obligations. But he knew now that the kindly obligations of
friendship are as nothing where stern duty is concerned. It was odd
how he kept wishing that Whalen were not concerned in this matter,
so that he might ask him what he thought about it. He had such a
regard for Whalen’s opinions, for the little things Whalen had said in
his quizzical way....
Tom passed a restless night, feeling troubled and contemptible. He
knew that he would never himself have resolved upon the course
which Audry advised, and the more he realized this the deeper was
his regard for her nature and her intelligence. She seemed to him to
have a kind of second sight, a clear vision which saw things in their
true light.
He was going to do as she said. Moreover, her suggestion about
the reward had given him a fine idea, an idea which soothed his
conscience somewhat and made him feel less despicable. He was
going to think of his whole mean performance as something done
for Whalen’s sake. He would have felt a little better about this if he
could have honestly believed that there was any chance at all of
Whalen being innocent. Well, anyway, he would do his stern duty—
Audry was right.
And he would take the reward, too. Every cent of that money
would go to help Whalen— Dyker—in his trial. If he refused help
coming from such a source, well then, Tom would—no he wouldn’t—
yes he would—he would buy the Goodfellow and use it for charity.
There were lots of scout troops of poor boys; he would take them on
outings; it should be their boat, not his....
He asked Ferris’ permission to be absent for a day, perhaps a
couple of days. It made him feel mean, contemptible, to see Ferris
so generous, and friendly and openhearted; it seemed a reproach.
He went into the kitchen of the cottage to say “So long,” to Miranda,
and he envied her that she was so carefree, crooning an outlandish
song. He loitered and balked at starting. Audry was there, hustling
about with graceful, girlish efficiency, putting away dishes. She
seemed not to notice him, but Tom construed this as a sign of the
confidence she reposed in him.
He spoke as if they had had no talk the night before. “I’m going
down the mountain,” he said; “going to take a day or two off.”
“Are you going to Temple Camp?”
“Maybe, I don’t know. I’ll be back to-morrow night, I guess.”
She held out her hand cordially and said goodbye. “You’ve got a
nice day for a tramp,” she said.
He started down the south slope of the mountain intending to go
through Woodstock and trust to getting a lift to Kingston. He balked
at forming any further plan in his mind. He would probably go to a
police station, maybe to the prosecutor’s office, he did not know. All
he knew was that it was low, contemptible, this being a good citizen.
Maybe he would go on to Albany and call on Mr. Borden Merrick,
nephew of the murdered man, who had continued the offer of a
reward. Perhaps he would—no, the matter wasn’t in his hands. Well,
he guessed he would go to a police station....
Down the mountainside he came on Whalen and Fairgreaves.
They were standing near a hole which had been dug for a pole. He
had thought they were working elsewhere.
Sitting with his back against a tree nearby was Billy the sailor
smoking a pipe, preliminary to starting work. His absurd little hat
was cocked forward and it gave him a look of swaggering
indifference, which bespoke his liberal code of conduct. He looked
too seasoned and sophisticated to be subjected to arguments by
young ladies. It made Tom feel a little mean and false to look at him.
Whalen wore his canvas smock. He looked up at Tom with his weary,
pleasant smile. Fairgreaves delivered himself of a magnificent
gesture of salutation. “Going forth into the world upon your travels?”
he asked.
“Just for a day or so,” Tom said. He did not pause for he could not
speak with Whalen. The pleasant little group made him sick at heart.
As he tramped down the road he thought, perhaps he only fancied,
that Whalen’s gaze followed him curiously, inquiringly.
“Don’t take any bad money from good people,” Billy the sailor
called....
It was a hot, dry day, just past the zenith of summer. The dust
was thick on the stony road and the bordering woods showed the
effects of the drought which had continued from the day of the
memorable storm. A few withered leaves had fallen before their time
as a result of the arid spell. The grassy ridges along the narrow,
enclosed road looked rusty. Tom’s shoes were gray with dust as he
made his way disconsolately down the mountain.
After a little while he came to Mead’s Mountain House, spacious,
white and cool looking in its pleasant clearing on the mountainside.
Summer boarders sat upon its spacious veranda and children played
about the grounds. The fine old place seemed high enough without
going higher.
A man in a golf suit called to Tom and asked him how the work
was going up the mountain and he answered half-heartedly that
things were going all right.
“They going to be open for business next season?” the man
persisted.
“Guess so,” called Tom abstractedly.
Another seemingly interminable stretch of steep and dusty
mountain road brought him to Reynolds’ at the foot of the mountain.
Here an elderly woman with bobbed hair and a young man in a blue
velveteen jacket and a streaming yellow scarf bespoke the proximity
of Woodstock.
He saw more of these artists and intellectual lights as he passed
through the village and he was guilty of a momentary treason in
wondering what on earth they did to justify the homage of Audry
Ferris. They seemed a queer lot, to be cited as “worth while” and
constructive. Tom wondered what they constructed.
One of them who stood in the village square gloried in
irreconcilable socks, one green and one red. In one of the shop
windows he saw specimens of pottery and outlandish pictures. He
supposed these were the things they constructed. He thought that
cultured Woodstock was a false alarm. Then he bethought him that
Audry knew more than he did about such things. And that he ought
to be thankful to know such a girl....
CHAPTER XXXI

TIME

Tom got a lift to Kingston and here he weakened. He would wait a


little before calling at a police station. They would probably be busy
just then; he did not tell himself why. He strolled about the hot,
parched city, watched the traffic, looked in shop windows. In many
of these, newspapers had been spread over the goods to protect
them from the merciless sun, and he read the headings of stale
news—anything to give him an excuse not to hurry.
He paused and looked at churches and public buildings. He
watched a man lettering a name on a window. He loitered to
examine a Ford tractor outside a hardware store, and he inspected
some axes and spades which stood in an empty flour barrel. They
spoke of the mountains and reminded him of the fraternal little
group up there. He thought of those three, his good friends,
lowering the pole into the earth. They would be sitting around eating
their lunch by then....
A Ford business car with SHADYSIDE DAIRY printed on it stopped,
and an aggressive looking young fellow with red hair swung out of
it, hustled into the hardware store and out again. He had a
handkerchief tucked in around his neck in deference to the heat.
“Where’s the police headquarters?” Tom asked him.
“Well, you go down three blocks—jump in, I’m going that way.”
“Some heat,” said the young fellow as they rode along the bricked
thoroughfare. “If we don’t get some rain pretty soon there’s going to
be trouble. Whew, but it’s hot. There’s a lot of wells drying up where
I come from.”
“You belong here?” Tom asked.
“Near Catskill.”
“You going there?”
“Yop.”
“I’ll go along if you don’t mind.”
The young fellow glanced at Tom rather curiously, which was
natural, seeing that he had asked for police headquarters and ended
by wanting to go to Catskill. But he did not trouble himself further
with the ins and outs of such a matter.
“Did you think I was going to give myself up?” Tom laughed. It
was a nervous, forced laugh.
The young fellow seemed not to care for he only said, “Look at
that blamed radiator steam, will you? That’s the worst of a Ford.
Puts you in mind of a geyser. Can you beat it?”
“You’ll have to put in some water,” said Tom. “They’ll be charging
for water pretty soon, I’m thinking, if this blamed weather keeps up.”
Tom’s suddenly revised plan was to go to Temple Camp for the
night. He wanted to visit camp and so far as Whalen was concerned
a day one way or the other wouldn’t make any difference. Then, as
he got to thinking, he realized the dilemma he was in. How could he
go back up the mountain? He certainly wouldn’t accompany the
detectives there and witness the arrest of his friend. Yet he had not
said that he would not return. Was he, then, to be like all the other
irresponsible, undependable recruits who had deserted Ferris?
Well, anyway, he would spend the night at Temple Camp, then in
the morning he would go down to Kingston by train and call at police
headquarters there. He would feel fresh in the morning. And so on
and so on....
He was aroused out of his musing by his companion’s voice, “I
came near getting held up on this road one night, came near being
touched for three hundred bills. But I got by with Lizzie all right. I
had to laugh; they got a blow-out. Did I duck! I thought it was a
gun.”
“I guess there are a lot of hold-ups,” Tom said. His interest was
only passive, his mind preoccupied and troubled.
The young fellow rattled on, “There was a big truck along here
last night—broke down. Some load of hootch, oh boy!”
“Yes?” said Tom in a way of half-interest.
“I’ll say so. One case was all over the road—puddles, broken glass
—I gave ’em the lend of a wrench.”
“Did you report them?” Tom asked.
“Naaah, I should worry. I wouldn’ do the bulls out of a job. I never
kidnap nobody else’s job.”
Tom seemed interested. Here, at last, was a unique view of law
breaking and of detecting and apprehending.
“Not for mine,” said the young fellow. “That’s what we pay ’em for
and they’re loafin’ most of the time.”
Tom reflected. Here was a young fellow, evidently honest. He
could be trusted with three hundred dollars. He seemed to be a
wholesome, right thinking young fellow. Yet he would not report
what he had seen. Was he really an accomplice then? He seemed
very rough and crude and vulgar in contrast to Audry Ferris....
“Yer goner get out at Catskill?” he asked.
CHAPTER XXXII

ALONE

It was late in the afternoon when Tom alighted at Catskill. It


seemed good to see the familiar surroundings in the riverside town
which was so much frequented by the scouts from Temple Camp.
There was Sholsen’s Sweet Shop where they bought sodas and
cones. There was the platform outside the grain and feed store
where they waited for the bus and jollied Pee-wee. It was all like a
balm to Tom’s troubled mind.
He soon forgot his red-headed companion of the ride and thought
of Audry and felt ashamed of his dilly-dallying. A fine mess he had
made of it so far. Twenty miles or more above Kingston! The whole
day had gone for nothing.
He felt weak, inefficient. And he had an unpleasant feeling of
being an idle wanderer. He was ashamed of his aimlessness, the
very quality which Audry had such a high contempt for in the men.
That made him think of the men, of the inventor and the chauffeur
without a license and Fairgreaves and all of them. And Whalen. He
wondered what they were doing at that minute....
He was not in a hurry to go to Temple Camp. He had an odd
feeling that they would wonder why he came, and suspect
something amiss. Besides he wished not to face old Caleb Dyker. He
thought he would wait until after dark before starting. Then by the
time he reached camp, old Caleb would be in bed.
It did not increase his self esteem thus to loiter and kill time in
order to avoid some one. He felt rather shiftless to have to hang
around Catskill for three or four hours. What would Audry think of
such a thing? Why had he not gone about his stern duty in Kingston
instead of coming way up here?
He strolled down to the river where he thought it would be cooler.
A little north of the Day Line landing was an old float from which the
scouts had sometimes fished for killies. A fishing skiff was drawn
partway on it. It belonged to Louis who lived in the little house
nearby. That was the only name he had—Louis.
Tom sat on an old water-soaked crate that had been rescued from
the river. He felt tired now—and lonesome. And utterly miserable.
Near him stood a small rusty can and he kicked it idly with his foot
and knocked it over. As it rolled away over the float it left a little
scattered pile of damp earth full of wriggling angleworms. He
watched one of these squirm a yard or two. Then a swallow
swooped gracefully down and picked it up. He wondered about the
bird which Whalen had befriended and whether it had flown away.
The gathering twilight increased his disconsolate feeling. But it
was cooler by the river, or else the weather was changing. A
freshening breeze blew in his face and he opened his shirt front and
clutched his shirt away from his chest and shoulders so as to enjoy
the fullest measure of relief the welcome breeze afforded. A single
cloud appeared in the sky. The boat began bobbing and made a
clamorous noise as its stern beat the water and its bow knocked
against the float.
Out in the middle of the river, and bathed in the rich glow of the
sunset, was his friend the Goodfellow. She was dancing in the
choppy water and her glazed port-holes shone golden. She seemed
sportive and carefree. A shimmering path ran from her almost to
Tom’s very feet as if to give him safe conduct to her hospitable deck.
It was funny how this sunlit way ran straight from him to her. And
now she turned about, her graceful prow straight toward him, and
seemed to bow a kind of welcome to him.
The Goodfellow!
The cloud in the sky grew larger and darker. This unbearable day
had tempted the storm demon. Relief, if only for a short while, was
coming at last.
It was not now in the spirit of covetousness that Tom longed to be
upon the trim little cruiser. He would not think of buying her, not
unless Anson Dyker, answering the charge of murder, should refuse
the money which he, Tom, would, oh so gladly, proffer. But it
seemed isolated out there, and that accorded with his mood. He was
overwhelmed and borne down by the grim duty, which was his. How
could a thing which made him feel so contemptible, so despicable,
be a good thing to do. “It is your, accusation, you’re a part of the
state.” How logical, clear, true, was Audry’s reasoning. Of course she
was right. She had read books and all that and she knew.
Tom wondered what Whalen—Dyker—would say, and how he
would act, when they went up there to get him. Tom thought he
would just give that weary look, lay down his axe and follow the
men, the detectives. Perhaps it would even be a relief to him. Would
he have to know that Tom was the one—the good citizen? He would
just say good-bye to the men in that taciturn way of his; he could
never be excited, he could never be otherwise than brave—never.
Tom was glad to think that there was one up there who would be
loyal, elegantly loyal, and try to cheer him. Fairgreaves. He was all
right, Fairgreaves. Cutaway coat and derby hat and royal manner,
but he was all right.
He hardly saw where he was going, so deep and vivid was his
musing. And so utterly wretched was he. In a kind of trance he went
to the little house and asked if he might use the boat. Louis knew
him and gave a ready consent. He was proud to be of service to the
young assistant at Temple Camp. Then the next thing he knew, he
was out upon the river rowing toward his first love, the Goodfellow.
His going was not quite so aimless as his journey away from
Kingston, for now he had an hour or two that must be passed
somehow. And he wanted to be alone. It seemed to him like a night
before execution. Out there he would decide just what he would say
in Kingston—the very first thing in the morning. It had to be done so
he might as well do it early.
But now he wanted to be alone.
CHAPTER XXXIII

GOODFELLOW

He liked rowing in the choppy water. It meant the first energetic


work he had done all day. For just ten or fifteen minutes he put all
his fine vigor into his encounter with the wind-blown river. It would
be easier rowing back, he thought.
It was dusk when he tied the skiff to the Goodfellow’s rail and
climbed into the cockpit. The gay, striped awning which had covered
this at the time of his first visit was blown to shreds which fluttered
in the breeze like a dozen or more forlorn pennants. One faded
remnant had wound itself like a bandage around one of the nickeled
stanchions.
The boys of the neighborhood had evidently used the boat to fish
from, for several rusty bait cans rolled about the deck as the
Goodfellow rode the choppy water. The noise they made was
emphasized by the surrounding stillness. A little leaden sinker
hurried back and forth and here and there in a kind of bewildered
way, rolling under seats and out again, as if it had lost its way.
Tom rested on the long seat which ran around the deck with the
rail for its back. The little sliding cabin door was closed and its rusty
rollers creaked as the boat rocked. On the bulkhead at either side of
this tiny door hung a circular life preserver. On each of these was
printed Goodfellow. In his abstraction and distress of mind, he
thought wistfully how Pee-wee Harris had once likened such a life
preserver to a doughnut. It is odd how such irrelevant thoughts flit
through a troubled mind.
As he gazed at the name printed in black letters, he recalled how
he had first been captivated by it. Goodfellow. Not good scout, not
good citizen. But just goodfellow. He mused upon the name. And
from musing upon the name he came to think of Whal—Anson
Dyker. He had been a mere boy when he did that rash, insane thing.
Tom’s heart went out to him now. There was something touching
about the man. Must he die? Die! He, Tom’s rescuer and friend?
Must he sit in a chair and....
He tried to think, tried to think all by himself. With his simple,
honest mind, he tried to think—out there in the boat that he loved.
He had no book knowledge to help him, no fine spun principles. He
had gone to Audry in his trouble and perplexity and she had shown
him the way. And now, in the deepness of his sorrow, he had braved
the rising wind and come out here to his first love—just to be alone.
And she, too, helped him. Here in the little cruiser, where Audry
would not have dared to venture on such a night, surrounded by the
dark water and enveloped by the solemn twilight, Tom Slade found
himself. With the mighty mountains flanking him on either shore, the
towering, rugged heights clothed in the dim silent forests that he
loved, he thought—in his own simple, boyish way. These things, the
water, the woods, the mountains, were his books....
“There is a law—capital punishment,” he mused. “But if a man, a
citizen, doesn’t believe in that, they can’t make him serve on a jury.
It—it isn’t just the same—maybe—but I won’t—I can’t do anything
that makes me feel mean. They can’t make a man testify against his
wife. Or a woman testify against her husband. That shows that love
and all things like that are stronger than citizenship—that shows
they admit it themselves. They make allowance for human nature.
We didn’t send German Americans to the front—I know because I
was there. They let people think they did, but they didn’t. Stern duty
—yes. Talk is cheap. Goodfellow, that’s—that’s one good word—if—if
anybody should ask you....”
Tom Slade could lift any small scout at Temple Camp by the collar
and hold him out straight with one arm. And the squirming
youngster would always wriggle his neck afterward from that iron
clutch. The hand which was accustomed to doing this now tightened
on the rail against which he leaned. And the power of a resolution
which Audry Ferris dreamed not of, was in that brown hand. And his
eyes, inscrutable and grim, looked straight at the name Goodfellow,
on one of the life preservers before him. Half-closed, grimly
determined, they looked.
And the frowning mountains on either side of the darkening river
were no stronger nor more immovable than Tom Slade, scout. No
maid (unless it were the Goodfellow) and no scout organization with
all its fine program of character building and citizenship could feel
the blame, or perchance take the credit, for his towering, defiant
resolve.
It was just Tom Slade of Barrel Alley who once upon a time had
knocked a city marshal flat with a quick right-handed violation of the
law, because that dignitary had set a beer can on his mother’s
picture. It was that same right hand which struck the railing now.
Tom Slade of Barrel Alley.
“If anybody thinks,” said he, “that I’m going to squeal on a friend,
they’ve got—one—more—good—long—think. Maybe I might give
away the one that saved my life—some day—maybe I might. But not
while I’m conscious!”
Thus this good fellow came through the storm, just as the gallant
little Goodfellow, his first love, had braved so many storms out there
in the wide river, neglected and alone.
CHAPTER XXXIV

THE BOAT ROCKS

And now a quick exhilaration seized Tom; the tempest was over. It
was a pity that Audry Ferris could not be there to feel the full force
of his breezy air of emancipation. To see him come swaggering up
out of the valley of the shadow. To take note of that careless,
independent whistling of a song, which seemed to proclaim to the
world, “I should worry.” But these things would keep. His spirit
seemed likely to last a day or two—oh, goodness, yes.
He was just going to celebrate his emancipation by getting up and
throwing those boisterous tin cans overboard when the boat lurched
enough to cause him to keep his seat. Just in that moment his
exhilaration was chilled by a blighting thought. If he did not tell,
perhaps Audry would. The secret was between these two.
Presently something happened which startled him. Simultaneously
with a lurch of the boat came a sound from within the cabin, a
sound as of someone falling. Then the sliding-door rolled slowly
open. A can rolled across the deck, making a clanking sound as it
struck an iron cable cleat.
In the dim light within the cabin, Tom could see a hand; it seemed
very white in the gathering darkness. It was on the floor and the
arm extended past the opening, so that all Tom could see was just
this hand and arm. It seemed to him as if the hand belonged to one
crouching, and who had cautiously rolled the door open for him to
enter.
He went in, then paused aghast at what he saw. If the hand had
started the door, then it had been hospitably opened by a dead man.
In the lurching of the boat the figure, apparently, had rolled out of
the starboard bunk. It was in a sunken, half-sitting posture against
the bunk. The head hung sideways, the glazed eyes leering at Tom
as in ghastly welcome. He could not get it out of his startled senses
that this thing had gotten out of the bunk, pushed the door open,
and sat there on the floor in an affected attitude of subservient
greeting. It seemed to say, “Here I am at your feet; walk in, won’t
you?”
Tom was startled, agitated. But he was not panic-stricken. He laid
the body decently upon the floor, crossways so it would not roll with
the rocking of the boat. It was the body of a man under middle age,
partly clothed. He had been for many days unshaven, and was in a
pitiful state of emaciation. Tom thought he had been dead for only a
day or two. He pulled some shreds of awning from across the port-
holes, threw open the heavy brass-bound glass disks, and let in the
fresh evening air and such light as the late twilight afforded.
He was too perturbed to see or think of anything outside the
tragic circumstance of death, but a hasty glance about the cabin
showed all too plainly that the boat had been the lonely refuge of
this wretched, gaunt creature for many days. Whether anybody
knew of his refuge Tom could not conjecture. He supposed that the
owner was still abroad. No doubt the dead man had been fully
cognizant of the measure of safety he enjoyed. Tom thought he
might have died of consumption; he could not bear the thought that
he had died of starvation.
The walls of the cabin were very much besmeared with soot from
a smelly, filthy oil stove. There were a very few odds and ends of
food. Fishing tackle lay about and an old crab net. It was the lonely
tenant of the Goodfellow, and not boys, who had fished, probably in
the shelter of the darkness.
On the little table a few papers were in a pasteboard box. An
empty soup-can had been fastened to the slab by a tack driven
through the bottom. In this stood a fountain pen. A bottle of ink had
slid off on the floor. Among the papers was a queer pasteboard
device, with a disk that turned; it was some kind of an elaborate
weather chart. There were many clippings about the weather stuck
on a nail in the bulkhead.
An unfinished manuscript of yellow paper was hanging in a large
fish-hook also fastened to the bulkhead. Tom glanced at this, read a
few lines, took it out into the better light of the cockpit and read
more. When it was too dark to see he tiptoed into the chamber of
death and sought amid the squalid disorder of alien paraphernalia
for a lantern, but could find none. Nor could he find any matches.
He thought these might be in the dead man’s pocket. He did not
search for them. He folded the loose pages, put them in his pocket,
and tiptoed out into the cockpit again. The moon was coming up full
and glinting the water which still rippled, sometimes into whitecaps,
in the fresh breeze. The threat of storm had passed. The night was
clear and cool.
He rolled the little cabin door shut and fastened it. He picked up
the cans which were rolling and clanking about the deck and cast
them in the water. It was very still then. He could not remain here.
Even the sound of his own footfalls on the deck startled him. He
tiptoed to the rail, climbed over and into the little waiting, bobbing
skiff, and rowed for the shore. Once away from the boat he was glad
for the companionable clanking of the oar-locks; it was a good
wholesome, cheery sound.
Tom rowed for the shore after finding the man’s
body.

The port-holes of the Goodfellow were golden in the moonlight.


The sordid, makeshift camp in the cabin must be bathed in the
moonlight now, he thought. As he gazed back at the little cruiser it
was hard to believe that in her cosy cabin, death, solemn,
unexplained, held her solitary vigil.
CHAPTER XXXV

LAST WORDS

It was in the light of a store window in Catskill that he read


hurriedly the few pages which he had found in the cabin of the
Goodfellow. The first three or four were written in a firm hand, the
rest were scrawled, and evidently written under stress. The writing
had been left unfinished. He could hardly credit his senses as he
read:
“As long as I can’t do what I intended or get away from here I
might as well confess. I would of confessed long ago to clear an
innocent man only I heard he was killed in the war and charges
against him can’t hurt him. I want to say I tried to go to but they
wouldn’t take me on account of my hart. I tried in Denver. I killed
Henry Merrick in 1908. It wasn’t Anson Dyker. First he told me how
he hated Merrick that was the day him and me tramped up Overlook
Mountain we were pals. He says he would kill Merrick for what he
was going to do if he done it the next year when they would be
clearing the valley. I says he better look out how he talked. He says
he would do it anyway and I says yes you will you talk big.
The day Uncle Caleb sent him to pay old Merrick in Kingston I was
just out of Elmira a week and I was shuting craps with coreys
farmhand near his house so he asks me to go with him to Kingston
to the old mans and I says no I wouldn’t. Anyways I follered him. I
knowed he had over a hundred dollars. I caught up with him an I
says tell your granfather yer lost it an we’ll go out west I dare you.
He says no he wouldn so I follers him and went in the cellar way of
Merricks by the window that was busted. It was all in the bushes
like. I hered him payin Merrick upstairs and he gives Merrick the
devil talkin like a regler kid. He got so mad when he couldn get out
the kitchen door he climed out the winder then I went up and soked
old Merrick with the iron and took the money that was in a onvelop
and a tin box to. There was papers I didn know how I culd get
money on them so I buried them in our old well in West Hurley.
Anyways I had near two thousand ter go out west with en I sends
money back sos they’ll think im all right and workin. I sends my
mother five hundred. She thot I was married en working en
everything.
Las year I was took sick with my hart en couldn work no more en
I was in hard luck. I reads in a paper how old Hurley is all so yer can
see it in dry weather en I come east ter get the papers I left in the
well sos I could turn em inter money, but thats all bunk anyways it
ain’t dry long enough for the old village ter show yet. I waited all
this time en go there every night till I get sick. Now its a month it
ain’t rained en nothing doing yer cant see a thing so I says its all
bunk.
When I didn have no more money left I come here. I guess Im a
goner now I have to spells yesterday. I couldn go ashore since the
first one I had while I was swimming out but that wasn much. Now I
got em all the time anyways the game is up but if anybody says Im
lying they can see fer thereselves what I hid if it ever gets dry
enough.
Joe Ganley.
P S it was me killed old Merrick.
As long as my mother is dead please notify Al Burnam 82 Kent St
Dawson Ohio why I didn come back en tell him he can have my
things in the room en he can tell Doc Conway in the hospital he was
right I gotter hand it to him.
Sent word ter Alice Darrel too she lives at 407 Harrison street
Dawson. I gotter sit up it hurts when I lay down and it hurts ter
write. P. S. its straight about the—”
Here the narrative broke off. Tom paused, too dumbfounded to
replace the pages in his pocket. For a few seconds he was like a
statue. Then he moved along the street in a kind of trance, bumped
into a man, was vaguely conscious of saying “Excuse me.” And just a
trifle more conscious of asking someone else where the police
station was.
It cannot be said that he seemed happy, the whole thing was too
solemn and grim for happiness. But beneath his excitement was a
deep, abounding joy, a joy not prejudicial to his pity for the poor
wretch who had penned those lines in remorse and bitter
disappointment and lonely suffering.
It was not the man’s crime-stained history which Tom thought of
now, only the heartrending tragedy of his awful end. And in his
grateful joy he was sobered and subdued by the solemnity of death
which neither crime nor sordid environment can destroy. And so this
returned native lying stark out there on the moonlit river was
respected as he had never deserved to be. For men are known by
the company they keep. And that night he was in company with the
Angel of Death.
CHAPTER XXXVI

HOMEWARD BOUND

Tom’s sensational discovery seemed to take the edge off his new
resolve in the matter of his duty. Kind fate had taken the matter out
of his hands. But he had made his resolve before that discovery. And
right or wrong he gloried in his independent decision. He thought of
Audry with a kind of bravado.
But all thoughts now were subservient to his new and urgent duty.
Hurrying to the local headquarters of police, he told hurriedly of his
harrowing discovery, laying the manuscript before the official on
duty.
For a few terrible minutes he thought they were going to hold
him. But they seemed in the end to be impressed with the
straightforwardness of his narrative and let him go after taking his
name and address. One of them recognized him as assistant at
Temple Camp and doubtless that fact saved him the exasperation of
being detained. He said nothing about Whalen for he saw no reason
to do so. He would bring Whalen into the light, but in his own way.
He wished to manage that end of it. His brain was seething with
plans.
Now that he had gotten the burden of his discovery and its
startling revelation off his mind and into the proper hands, his one
thought was to reach the mountain before the countryside was
ringing with the news. The officials had darkly warned him that they
might want him any time.
He caught a train down to Kingston, had a bite to eat there, then
started for the mountain on foot. It is a long walk over the fine
highway from Kingston to West Hurley, but he was accustomed to
long hikes, and his excitement gave him an elastic energy. He
recalled that Billy the sailor had tramped all the way from
Poughkeepsie. His tumultuous thoughts beguiled the journey like a
circus. He seemed to be on springs. Twin lights came rapidly along
from both directions, now and then a horn honked its warning, once
he called asking for a lift but got no answer; he did not care.
“They, the powers that be,” he panted, “know where the culprit—
the real culprit—is, and I’ll take care of my end of it—all right, all
right.” In his exhilaration it never occurred to him that he had
revealed the whereabouts of the murderer of Henry Merrick and
might, technically, be entitled to the reward. He was, at least, the
means of exposing the ultimate sequel of that old crime.
But he did think of the—thing out there on the river, lying face
upward. And he could not repress a certain measure of pity when he
thought of those days of wistful waiting; waiting for the drought to
bring the ghost of old West Hurley once again to light.
But these were not pleasant thoughts for a lonely wayfarer at
night. So he thought of Mr. Fairgreaves, the courtly, the magnificent
Mr. Fairgreaves. Well, he would see them all in the morning....
It was midnight when he reached West Hurley and he was not yet
tired. He realized how futile was his steady, rapid stride. He could
not sleep when he reached the cottage. And he could not see any
one before morning. Why hurry? He conquered his nerves and
resolved not to hurry.
While West Hurley slept, Tom walked down to the shore of the
reservoir. The moon shone upon it and the shimmering area of the
vast storage lake looked like a golden island. Not a sound was there.
If the water was low, he could see no sign of it on the near shore.
Somewhere under that water, in old ruined masonry, was a box
with valuable papers. It seemed preposterously romantic—like buried
treasure. And a poor stricken wretch with the stigma of old crime
upon him had waited and waited for the stubborn water to subside—
and had died waiting.
Three deaths so far—and sorrow and homelessness. And folks
away off in the great city of New York turning on their faucets, and
watering their lawns, and putting out their fires with this same
water, and never thinking, never knowing....
CHAPTER XXXVII

THE BRIGHT MORN

The long tramp up the mountain proved to Tom that he was


weary. It seemed as if he would never reach Mead’s. Oh, for Mead’s!
Then he would know that another hour’s climbing would bring him
to the summit. No more landmarks to watch for, just the unbroken
stretch of woods road, up, up, up....
He entered the cottage like a thief in the night and was soon
stretched upon his ugly little iron couch. But he was too tired and
excited to sleep. His knees ached. He lay listening to the safety
cables clanking in the wind.
Far off in the woods he could hear the call of a wildcat. And the
cheery little crickets nearby beguiled him with their soothing
orchestra. A katydid soloist entertained him. Well, one thing he
would do, he would arouse Anson Dyker—Whalen—out of that
blamed sarcastic calm of his. Oh yes, he would do that. He had the
ammunition.
Early in the morning he went down into the deserted kitchen and
made himself a cup of coffee. He had never before seen the kitchen
quiet and deserted. A holy calm pervaded it, and it seemed
unnatural not to hear the clatter of dishes, the vocal accompaniment
by Miranda, and the emphatic voice of Audry edifying her with her
theories and conclusions. The kitchen was not kitchen without Audry
in the full swing of debate.
It seemed good to be out in the fresh, early morning. He felt no ill
effects of his long tramp except that his knees ached. He was not
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookmass.com

You might also like