Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CBulletin (0x3B)

Previous: CMessage | Client action index | Next: CPutToContainer

CBulletin is client-to-server action 0x3B in the 4.21 protocol.

Direction: client to server

Encrypted: Yes. See Sequence and XOR Transformation.

Payload offsets begin with the first byte after the action. The frame marker, frame length, action, sequence, and trailing zero are excluded.

Payload format

Every CBulletin payload begins with a one-byte command subtype.

SubtypePurposeConfirmed remaining payload
1Start bulletin sessionNone. The logical packet is [0x3B, 0x01].
2Request article or mail listTwo big-endian uint16_t values and one uint8_t. The concrete fields vary between board, article-list, and mail-list callers.
3Request one article or mailTwo big-endian uint16_t identifiers and one uint8_t.
4Post an articleBig-endian board identifier, one-byte title length and title, big-endian content length and content.
5Delete an article or mailTwo big-endian uint16_t identifiers, with an additional zero byte in two list-originated variants.
6Post mailBig-endian identifier, one-byte receiver length and receiver, one-byte title length and title, big-endian content length and content.
7Change article highlight stateTwo big-endian uint16_t identifiers.

Queue call sites

Queue callContaining IDA functionFunction address
Darkages.exe:0x0040ECE1net_c_send_bulletin_startDarkages.exe:0x0040ECA4
Darkages.exe:0x004109ECnet_c_send_bulletin_article_list_requestDarkages.exe:0x00410964
Darkages.exe:0x0041294Cnet_c_send_bulletin_mail_list_requestDarkages.exe:0x004128C4
Darkages.exe:0x004145B4net_c_send_bulletin_board_article_list_requestDarkages.exe:0x00414534
Darkages.exe:0x00415738net_c_send_bulletin_article_requestDarkages.exe:0x004156B4
Darkages.exe:0x00415934net_c_send_bulletin_article_highlightDarkages.exe:0x004158C4
Darkages.exe:0x0041715Cnet_c_send_bulletin_article_request_from_dialogDarkages.exe:0x004170D4
Darkages.exe:0x0041817Enet_c_send_bulletin_post_articleDarkages.exe:0x00417F94
Darkages.exe:0x004187E8net_c_send_bulletin_mail_requestDarkages.exe:0x00418764
Darkages.exe:0x0041A73Cnet_c_send_bulletin_mail_request_from_dialogDarkages.exe:0x0041A6B4
Darkages.exe:0x0041AE45net_c_send_bulletin_post_mailDarkages.exe:0x0041AB84
Darkages.exe:0x0041B4E4net_c_send_bulletin_delete_article_from_listDarkages.exe:0x0041B474
Darkages.exe:0x0041B60Bnet_c_send_bulletin_delete_articleDarkages.exe:0x0041B5A4
Darkages.exe:0x0041B8A8net_c_send_bulletin_delete_mail_from_listDarkages.exe:0x0041B824
Darkages.exe:0x0041BA1Bnet_c_send_bulletin_delete_mailDarkages.exe:0x0041B9B4

UI flow

Window button W creates BulletinSession and sends subtype 1. SBulletin subtype 1 creates BoardListDialog. Navigation, view, new, reply, delete, and highlight controls emit the later commands while the session remains registered. Server subtypes 1 through 5 replace the session’s active child with the matching board, article, or mail dialog.

The command field widths above are established at all 15 send sites. Some identifier meanings differ between board and mail contexts and remain unnamed until their server-side correspondence is confirmed.

See UI, Input, and Packet Flows.