Skip to content

Instantly share code, notes, and snippets.

@cfrank
cfrank / webpack.config.js
Last active July 23, 2018 13:47
Webpack initial version
const config = {
context: path.resolve(__dirname, 'src'),
entry: {
app: './index.jsx',
},
resolve: {
modules: [
path.resolve(__dirname, 'src'),
@cfrank
cfrank / .bashrc
Created December 6, 2018 12:53
Initialize ssh-agent
# Functions
function init_ssh_keys {
echo "Initializing ssh-agent..."
eval $(ssh-agent -s)
for filename in ~/.ssh/id_rsa*; do
# Only want private keys
[[ $filename == *.pub ]] && continue
@cfrank
cfrank / atom-ids.txt
Created May 18, 2020 00:20
XCB EWMH Atom Ids
state->ewmh->_NET_SUPPORTED = 245
state->ewmh->_NET_CLIENT_LIST = 246
state->ewmh->_NET_CLIENT_LIST_STACKING = 247
state->ewmh->_NET_NUMBER_OF_DESKTOPS = 248
state->ewmh->_NET_DESKTOP_GEOMETRY = 249
state->ewmh->_NET_DESKTOP_VIEWPORT = 250
state->ewmh->_NET_CURRENT_DESKTOP = 251
state->ewmh->_NET_DESKTOP_NAMES = 252
state->ewmh->_NET_ACTIVE_WINDOW = 253
state->ewmh->_NET_WORKAREA = 254
#include <iostream>
class CopyMe {
public:
CopyMe(std::string name)
: m_name(name)
{}
CopyMe(const CopyMe& other)
@cfrank
cfrank / 592-loader-file-sha1.java
Last active January 18, 2022 07:23
SHA1 hash of all files requested by the 592 revision of the RS loader
import java.math.BigInteger;
/*
unpacker fd98bd647e9ad299f82e548d12ee29ee01768759
runescapePack200 ec95e23db0322a6e8741ba3a5ff3a25744f1a20e
runescapeJS5 7ad533cd18eb9bd9f5a3ac43573ceee1227bbd7
jaggl_0 83206de67f09cba8ad9fe4fe746df7dca84ba504
jaggl_1 fc13e94a9ea0b1e5f6444b790d8855fe6873bdc2
jaggl_2 93836bb56b47536c17c935959bce0c3de2f86091
jaggl_3 22aea028d0efd4d45126ca0e4255ed3853f5002f
@cfrank
cfrank / 592-jav_config.ws
Last active April 10, 2024 08:58
592 jav_config.ws file - Will update as more debugging / deobfuscating is done on applications.
title=RuneScape
viewerversion=100
serverlist=http://127.0.0.1:8000/jav_config_serverlist.ws
cachesubdir=runescape
codebase=http://127.0.0.1:8000/
browsercontrol_win_x86_jar=browsercontrol_0_-1928975093.jar
browsercontrol_win_amd64_jar=browsercontrol_1_1674545273.jar
loader_jar=loader.jar
advert_height=96
window_preferredwidth=1024
@cfrank
cfrank / kotlin-event-bus-playground.kt
Last active July 5, 2022 09:03
Kotlin event bus playground
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.*
sealed class AppEvent {
data class Initialized(val timestamp: Long) : AppEvent()
class Bootstrapped() : AppEvent()
data class Loaded(val timestamp: Long) : AppEvent()
}
class EventBus {
@cfrank
cfrank / 592-game-applet-html-block.html
Last active August 17, 2022 07:07
HTML of the <applet> code block for the 592 revision of Runescape
<!--
This is the <applet> block for the 592 revision of RuneScape as it appeared on:
16:13:13 Feb 25, 2010
Some of these values are dynamic and determined by the URL being requested, the browser, and the JavaScript which
gets executed after the HTML is loaded. Because of this you can't use these as a source of truth for the final
parameters without taking that into account.
-->
@cfrank
cfrank / jagex-appletviewer-compile.md
Last active October 9, 2022 08:23
Compile jagexappletviewer on Java 1.6

These are not the original file paths. Adapt the file locations to something that matches what you have.

C:\Program Files (x86)\Java\jdk1.6.0_45\bin\javac.exe' -cp .\src\main\java\ -d .\tmp-cmd-dir-cl\ .\src\main\java\com\open592\appletviewer\*.java .\src\main\java\com\open592\jagexappletviewer\*.java .\src\main\java\com\open592\nativeadvert\*.java

C:\Program Files (x86)\Java\jdk1.6.0_45\bin\jar.exe' -cvfe jagexappletviewer.jar com.open592.jagexappletviewer.jagexappletviewer .\com\open592\jagexappletviewer\*.class .\com\open592\appletviewer\*.class .\com\open592\nativeadvert\*.class

$env:JAVA_TOOL_OPTIONS = '-Dcom.jagex.config=http://localhost:8000/jav_config.ws'

C:\Program Files (x86)\Java\jdk1.6.0_45\bin\java.exe' -jar .\jagexappletviewer.jar runescape

@cfrank
cfrank / ContainerWindow.cpp
Last active May 1, 2023 08:12
Implementation of a container window for the CEF browser window - In the end this was not needed.
// SPDX-License-Identifier: BSD-2-Clause
#include <iostream>
#include <sys/select.h>
// #include "ContainerWindow.hpp"
class ContainerWindow {
public:
struct Delegate {
virtual void OnContainerWindowCreate(xcb_window_t) const = 0;