RISCY BUSINESS»Episode Guide
Searching Raw Memory for Unix Timestamps
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:06Recap and set the stage for the day1
📖
0:06Recap and set the stage for the day1
📖
0:06Recap and set the stage for the day1
📖
0:40Enable print_instructions() to print the board_id as a dereferenced int pointer
0:40Enable print_instructions() to print the board_id as a dereferenced int pointer
0:40Enable print_instructions() to print the board_id as a dereferenced int pointer
2:34Run the program to see our possible board_id
🏃
2:34Run the program to see our possible board_id
🏃
2:34Run the program to see our possible board_id
🏃
4:28Read man 3 printf
4:28Read man 3 printf
4:28Read man 3 printf
5:01Enable print_instructions() to print the board_id as a %X
5:01Enable print_instructions() to print the board_id as a %X
5:01Enable print_instructions() to print the board_id as a %X
5:28Run the program to see the same number
🏃
5:28Run the program to see the same number
🏃
5:28Run the program to see the same number
🏃
6:08Enable print_instructions() to print the board_id cast to a short
6:08Enable print_instructions() to print the board_id cast to a short
6:08Enable print_instructions() to print the board_id cast to a short
7:29Run the program to see a different board_id
🏃
7:29Run the program to see a different board_id
🏃
7:29Run the program to see a different board_id
🏃
8:52hossein1387 The print for clock frequency is also bad
🗪
8:52hossein1387 The print for clock frequency is also bad
🗪
8:52hossein1387 The print for clock frequency is also bad
🗪
9:43hossein1387 No, I meant when the board printed out the value, the frequency was 600MHz
🗪
9:43hossein1387 No, I meant when the board printed out the value, the frequency was 600MHz
🗪
9:43hossein1387 No, I meant when the board printed out the value, the frequency was 600MHz
🗪
10:10Run the program to confirm the core frequency
🏃
10:10Run the program to confirm the core frequency
🏃
10:10Run the program to confirm the core frequency
🏃
11:34Consult man 3 printf, and wonder whether the instability of the core frequency causes problems
📖
11:34Consult man 3 printf, and wonder whether the instability of the core frequency causes problems
📖
11:34Consult man 3 printf, and wonder whether the instability of the core frequency causes problems
📖
13:00Hazard a guess as to what the Unix timestamp for our board may be
13:00Hazard a guess as to what the Unix timestamp for our board may be
13:00Hazard a guess as to what the Unix timestamp for our board may be
14:55Enable print_instructions() to print the board_id cast to an int
14:55Enable print_instructions() to print the board_id cast to an int
14:55Enable print_instructions() to print the board_id cast to an int
15:39Run our program to view the output, and compare it with our guess
🏃
15:39Run our program to view the output, and compare it with our guess
🏃
15:39Run our program to view the output, and compare it with our guess
🏃
17:45hossein1387 I am getting around the same numbers
🗪
17:45hossein1387 I am getting around the same numbers
🗪
17:45hossein1387 I am getting around the same numbers
🗪
18:22hossein1387 I am getting ed93db27
🗪
18:22hossein1387 I am getting ed93db27
🗪
18:22hossein1387 I am getting ed93db27
🗪
18:54Consult the table for the OTP Contents2 and see if the board_id is documented in the Freedom E310-G000 Manual3
18:54Consult the table for the OTP Contents2 and see if the board_id is documented in the Freedom E310-G000 Manual3
18:54Consult the table for the OTP Contents2 and see if the board_id is documented in the Freedom E310-G000 Manual3
21:55hossein1387 I used uint64 and I got 12 Jun 1976
🗪
21:55hossein1387 I used uint64 and I got 12 Jun 1976
🗪
21:55hossein1387 I used uint64 and I got 12 Jun 1976
🗪
22:56Try to convert ED93 to human date4
22:56Try to convert ED93 to human date4
22:56Try to convert ED93 to human date4
23:58hossein1387 Oh, that's the Unix base date. January 1 1970, isn't it?
🗪
23:58hossein1387 Oh, that's the Unix base date. January 1 1970, isn't it?
🗪
23:58hossein1387 Oh, that's the Unix base date. January 1 1970, isn't it?
🗪
24:22Consult Wikipedia on Unix time5
📖
24:22Consult Wikipedia on Unix time5
📖
24:22Consult Wikipedia on Unix time5
📖
26:32Consult the table for the OTP Contents6
📖
26:32Consult the table for the OTP Contents6
📖
26:32Consult the table for the OTP Contents6
📖
28:38Enable print_instructions() to print the address and value of everything from 0x1004 to 0x1FE4
28:38Enable print_instructions() to print the address and value of everything from 0x1004 to 0x1FE4
28:38Enable print_instructions() to print the address and value of everything from 0x1004 to 0x1FE4
32:28Run our program and view the output
🏃
32:28Run our program and view the output
🏃
32:28Run our program and view the output
🏃
33:39Pass both parameters to the printf() call in print_instructions()
33:39Pass both parameters to the printf() call in print_instructions()
33:39Pass both parameters to the printf() call in print_instructions()
34:45Run our program to view the correct output, and attempt to spot a plausible Unix timestamp amongst it
🏃
34:45Run our program to view the correct output, and attempt to spot a plausible Unix timestamp amongst it
🏃
34:45Run our program to view the correct output, and attempt to spot a plausible Unix timestamp amongst it
🏃
40:14Ask hossein1387 to print the hex value at 0x1634
40:14Ask hossein1387 to print the hex value at 0x1634
40:14Ask hossein1387 to print the hex value at 0x1634
40:33Convert our value into a timestamp7 and consider this to be too early
40:33Convert our value into a timestamp7 and consider this to be too early
40:33Convert our value into a timestamp7 and consider this to be too early
42:05hossein1387 I have the exact same value as you
🗪
42:05hossein1387 I have the exact same value as you
🗪
42:05hossein1387 I have the exact same value as you
🗪
42:30Enable print_instructions() to print from 0x1FE4 to 0x1FEC
42:30Enable print_instructions() to print from 0x1FE4 to 0x1FEC
42:30Enable print_instructions() to print from 0x1FE4 to 0x1FEC
44:21Run our program and see the output from one iteration
🏃
44:21Run our program and see the output from one iteration
🏃
44:21Run our program and see the output from one iteration
🏃
46:41Try to enable print_instructions() to print further
46:41Try to enable print_instructions() to print further
46:41Try to enable print_instructions() to print further
47:13Run our program to see less output
🏃
47:13Run our program to see less output
🏃
47:13Run our program to see less output
🏃
48:17Enable print_instructions() to print further
48:17Enable print_instructions() to print further
48:17Enable print_instructions() to print further
49:28Run our program to see a little more
🏃
49:28Run our program to see a little more
🏃
49:28Run our program to see a little more
🏃
50:34hossein1387 I can print from 0x0004 up to 0x2000, but 5714ae28 is the only valid one from what I can see
🗪
50:34hossein1387 I can print from 0x0004 up to 0x2000, but 5714ae28 is the only valid one from what I can see
🗪
50:34hossein1387 I can print from 0x0004 up to 0x2000, but 5714ae28 is the only valid one from what I can see
🗪
51:13Make clean, and run our program to see two iterations, 16 bytes apart
🏃
51:13Make clean, and run our program to see two iterations, 16 bytes apart
🏃
51:13Make clean, and run our program to see two iterations, 16 bytes apart
🏃
54:12Try printing the lower end
54:12Try printing the lower end
54:12Try printing the lower end
54:48Run our program to see that it was also printing 16 bytes apart there
🏃
54:48Run our program to see that it was also printing 16 bytes apart there
🏃
54:48Run our program to see that it was also printing 16 bytes apart there
🏃
56:34Increment the board_id pointer by one byte
56:34Increment the board_id pointer by one byte
56:34Increment the board_id pointer by one byte
57:47Run the program to view our more complete output, and attempt to spot a plausible Unix timestamp amongst it
🏃
57:47Run the program to view our more complete output, and attempt to spot a plausible Unix timestamp amongst it
🏃
57:47Run the program to view our more complete output, and attempt to spot a plausible Unix timestamp amongst it
🏃
59:44Enable print_instructions() to only print out values between 0x57000000 and 0x58000000, but from a larger range in memory
59:44Enable print_instructions() to only print out values between 0x57000000 and 0x58000000, but from a larger range in memory
59:44Enable print_instructions() to only print out values between 0x57000000 and 0x58000000, but from a larger range in memory
1:03:10A few words on the value of what we're doing, including pointer arithmetic
1:03:10A few words on the value of what we're doing, including pointer arithmetic
1:03:10A few words on the value of what we're doing, including pointer arithmetic
1:04:09Run the program to view our one hit, conclude that we do not have a reasonable Unix timestamp in that memory region, and report this on the forums8
🏃
1:04:09Run the program to view our one hit, conclude that we do not have a reasonable Unix timestamp in that memory region, and report this on the forums8
🏃
1:04:09Run the program to view our one hit, conclude that we do not have a reasonable Unix timestamp in that memory region, and report this on the forums8
🏃
1:07:37We are out of time for today
1:07:37We are out of time for today
1:07:37We are out of time for today