We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
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