Some notes, tools, and techniques for reverse engineering Golang binaries.
import collections, random, sys, textwrap | |
# Build possibles table indexed by pair of prefix words (w1, w2) | |
w1 = w2 = '' | |
possibles = collections.defaultdict(list) | |
for line in sys.stdin: | |
for word in line.split(): | |
possibles[w1, w2].append(word) | |
w1, w2 = w2, word |
const userIdsThatCanCall = []; | |
const client = Roblox.RealTime.Factory.GetClient(); | |
client.Subscribe("CallNotification", callDetail => { | |
if (callDetail.Type === "NewCall" && | |
(callDetail.CallerId !== Roblox.CurrentUser.userId && !userIdsThatCanCall.includes(callDetail.CallerId)) | |
) { | |
CoreUtilities.httpService.post({ | |
url: "https://apis.roblox.com/call/v1/decline-call", | |
withCredentials: true |
Wack. Welcome back, and thank you all for one year of Heliodex project updates!
Fun fact: Today (or tomorrow) is the 10th anniversary of the release of the Mercury client. yippee
Development on Mercury has slowed significantly after hitting a roadblock in getting RCCService (2015) working, shortly after we re-issued keys to beta testers. It periodically returns garbled responses to the server for clothing renders, and dealing with gzipped responses is also a pain.
Bootstrap is a CSS component library/framework/frontend toolkit/stylesheet set and Javascript plugin collection. It's the most popular CSS framework used on the web, and is a popular choice for many Roblox revival websites.
After writing, modifying, and looking at the source code of many revivals written with Bootstrap and other CSS frameworks, I've come to the conclusion that in it's current state (v5.3.2), I don't like Bootstrap and I don't think it's a good choice for revivals, and perhaps not for a lot of web developers in general.
Here's a list of my biggest pain points with Bootstrap:
Welcome to 2024! Here's an update to what I did in the last part of 2023.
If it wasn't clear by my previous gist, I'm not the biggest fan of Bootstrap as it is currently, and I wanted to leave it in 2023. The removal of Bootstrap from Mercury at the beginning of 2024 serves as the clean slate to build the highly anticipated frontend rewrite upon. Navigation and readability need to be improved across the site, and enhancing the ways members can communicate with each other on site is important as well.
At the beginning of the year, Mercury barely even had a proper backend, and now it's flourishing into a near full-fledged revival with industry-leading features and web design. I've been focussing heavily on code quality and maintainability, as we want to open-source Mercury once it's complete.
// Mercury Setup Deployer 3, now in Go | |
// goroutines make it run fast as FUCK | |
package main | |
import ( | |
"archive/zip" | |
"fmt" | |
"io" | |
"os" |
That's 2024 off to... a start. Here's what I've been up to during the first month of the year!
Improvements continue to be made to Mercury. Changes have been made to some UI and form elements to make them work better with JS enabled, optimisations to corescripts and better library support, and the generic major updates of dependencies.
Go has been making its way into the Mercury codebase, including the new client deployer found in my previous gist. It has helped to greatly improve efficiency and speed of many processes.
Welcome back! Here's another late-but-still-slightly-less-late-than-last-time update.
Mercury has entered the release candidate stage! This means that we're making the previously-closed beta more open, and making it much easier to obtain an invite key. We're working on a Discord bot that, instead of going through an arduous exam process, and complete what's been referred to as an "ORC Resume" (lmao), you can fill out a few fields and get accepted for a key.
Work on the avatar shop and Discord integration will continue, and a database reset will be performed before the bot is released.
local function getOptimizeLevel() | |
local function dupclosure() | |
return function() end | |
end | |
local O0 = dupclosure() ~= dupclosure() | |
local function inlinefunction() | |
return debug.info(1, "f") | |
end |