Skip to content

Commit 5184f7c

Browse files
committed
Deploying to gh-pages from @ 433dd64 🚀
1 parent b9b918d commit 5184f7c

File tree

379 files changed

+46517
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

379 files changed

+46517
-2
lines changed

.github/workflows/publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ jobs:
2727
- name: Setup Pages
2828
uses: actions/configure-pages@v3
2929
- name: Upload artifact
30-
uses: actions/upload-pages-artifact@v1
30+
uses: actions/upload-pages-artifact@v3
3131
with:
3232
path: '.'
3333
- name: Deploy to GitHub Pages
3434
id: deployment
35-
uses: actions/deploy-pages@v1
35+
uses: actions/deploy-pages@v4

.nojekyll

Whitespace-only changes.

AdvancedAPI.html

Lines changed: 395 additions & 0 deletions
Large diffs are not rendered by default.

Basics.html

Lines changed: 444 additions & 0 deletions
Large diffs are not rendered by default.

GettingStarted.html

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5+
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
6+
<meta name="generator" content="Doxygen 1.13.2"/>
7+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
8+
<title>BNM: Getting Started</title>
9+
<link href="tabs.css" rel="stylesheet" type="text/css"/>
10+
<script type="text/javascript"></script>
11+
<script type="text/javascript" src="jquery.js"></script>
12+
<script type="text/javascript" src="dynsections.js"></script>
13+
<script type="text/javascript" src="clipboard.js"></script>
14+
<script type="text/javascript" src="headerToggler.js"></script>
15+
<link href="navtree.css" rel="stylesheet" type="text/css"/>
16+
<script type="text/javascript" src="navtreedata.js"></script>
17+
<script type="text/javascript" src="navtree.js"></script>
18+
<script type="text/javascript" src="resize.js"></script>
19+
<script type="text/javascript" src="cookie.js"></script>
20+
<link href="search/search.css" rel="stylesheet" type="text/css"/>
21+
<script type="text/javascript" src="search/searchdata.js"></script>
22+
<script type="text/javascript" src="search/search.js"></script>
23+
<script type="text/javascript">
24+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
25+
$(function() { init_search(); });
26+
/* @license-end */
27+
</script>
28+
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
29+
</head>
30+
<body>
31+
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
32+
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
33+
<div id="titlearea">
34+
<table cellspacing="0" cellpadding="0">
35+
<tbody>
36+
<tr id="projectrow">
37+
<td id="projectalign" style="position:relative">
38+
<div id="projectname">BNM<span id="projectnumber">&#160;2.3.0</span>
39+
</div>
40+
</td>
41+
</tr>
42+
<tr><td colspan="2"> <div id="MSearchBox" class="MSearchBoxInactive">
43+
<span class="left">
44+
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
45+
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
46+
onfocus="searchBox.OnSearchFieldFocus(true)"
47+
onblur="searchBox.OnSearchFieldFocus(false)"
48+
onkeyup="searchBox.OnSearchFieldChange(event)"/>
49+
</span><span class="right">
50+
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
51+
</span>
52+
</div>
53+
</td></tr>
54+
</tbody>
55+
</table>
56+
</div>
57+
<!-- end header part -->
58+
<!-- Generated by Doxygen 1.13.2 -->
59+
<script type="text/javascript">
60+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
61+
var searchBox = new SearchBox("searchBox", "search/",'.html');
62+
/* @license-end */
63+
</script>
64+
<script type="text/javascript">
65+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
66+
$(function() { codefold.init(0); });
67+
/* @license-end */
68+
</script>
69+
</div><!-- top -->
70+
<div id="nav-tree">
71+
<div id="nav-tree-contents">
72+
<div id="nav-sync" class="sync"></div>
73+
</div>
74+
</div>
75+
<div id="splitbar" style="-moz-user-select:none;"
76+
class="ui-resizable-handle">
77+
</div>
78+
</div>
79+
<script type="text/javascript">
80+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
81+
$(function(){initNavTree('GettingStarted.html',''); initResizable(true); });
82+
/* @license-end */
83+
</script>
84+
<div id="doc-content">
85+
<!-- window showing the filter options -->
86+
<div id="MSearchSelectWindow"
87+
onmouseover="return searchBox.OnSearchSelectShow()"
88+
onmouseout="return searchBox.OnSearchSelectHide()"
89+
onkeydown="return searchBox.OnSearchSelectKey(event)">
90+
</div>
91+
92+
<!-- iframe showing the search results (closed by default) -->
93+
<div id="MSearchResultsWindow">
94+
<div id="MSearchResults">
95+
<div class="SRPage">
96+
<div id="SRIndex">
97+
<div id="SRResults"></div>
98+
<div class="SRStatus" id="Loading">Loading...</div>
99+
<div class="SRStatus" id="Searching">Searching...</div>
100+
<div class="SRStatus" id="NoMatches">No Matches</div>
101+
</div>
102+
</div>
103+
</div>
104+
</div>
105+
106+
<div><div class="header">
107+
<div class="headertitle"><div class="title">Getting Started</div></div>
108+
</div><!--header-->
109+
<div class="contents">
110+
<div class="textblock"><p><a class="anchor" id="md_manual_2GettingStarted"></a></p>
111+
<ol type="1">
112+
<li>Clone repo and add it to your project.</li>
113+
<li>Set C++ version to 20 or higher.</li>
114+
<li>Add the code below depending on what builder you use:<br />
115+
Android.mk: <div class="fragment"><div class="line">BNM_PATH := $(LOCAL_PATH)/path/to/ByNameModding</div>
116+
<div class="line">LOCAL_C_INCLUDES += $(BNM_PATH)/include $(BNM_PATH)/external/include</div>
117+
<div class="line">LOCAL_STATIC_LIBRARIES += BNM</div>
118+
<div class="line"># ...</div>
119+
<div class="line">include $(BUILD_SHARED_LIBRARY)</div>
120+
<div class="line"># ...</div>
121+
<div class="line">include $(CLEAR_VARS)</div>
122+
<div class="line">include $(BNM_PATH)/Android.mk</div>
123+
</div><!-- fragment --> CMake (CMakeLists.txt): <div class="fragment"><div class="line">{CMakeLists.txt} </div>
124+
<div class="line"> add_subdirectory(path/to/ByNameModding EXCLUDE_FROM_ALL)</div>
125+
<div class="line"> get_property(BNM_INCLUDE_DIRECTORIES TARGET BNM PROPERTY BNM_INCLUDE_DIRECTORIES)</div>
126+
<div class="line"> </div>
127+
<div class="line"> # ...</div>
128+
<div class="line"> </div>
129+
<div class="line"> target_include_directories(</div>
130+
<div class="line"> # Your lib name</div>
131+
<div class="line"> PUBLIC</div>
132+
<div class="line"> ${BNM_INCLUDE_DIRECTORIES}</div>
133+
<div class="line"> # ...</div>
134+
<div class="line"> )</div>
135+
<div class="line"> target_link_libraries(</div>
136+
<div class="line"> # Your lib name</div>
137+
<div class="line"> PUBLIC</div>
138+
<div class="line"> BNM</div>
139+
<div class="line"> # ...</div>
140+
<div class="line"> )</div>
141+
</div><!-- fragment --></li>
142+
<li>Get Unity version of your target app and change <code>UNITY_VER</code> in GlobalSettings.hpp.</li>
143+
<li>Setup your desired hooking software in GlobalSettings.hpp.</li>
144+
<li>Use one of the loading methods of <a class="el" href="namespaceBNM.html" title="Main BNM namespace.">BNM</a> from <a class="el" href="namespaceBNM_1_1Loading.html">BNM::Loading</a> namespace.</li>
145+
<li>Done! </li>
146+
</ol>
147+
</div></div><!-- contents -->
148+
</div><!-- PageDoc -->
149+
</div><!-- doc-content -->
150+
<div id="nav-path">
151+
</div>
152+
</body>
153+
</html>

KittyMemoryFinder_8cpp-example.html

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5+
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
6+
<meta name="generator" content="Doxygen 1.13.2"/>
7+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
8+
<title>BNM: KittyMemoryFinder.cpp</title>
9+
<link href="tabs.css" rel="stylesheet" type="text/css"/>
10+
<script type="text/javascript"></script>
11+
<script type="text/javascript" src="jquery.js"></script>
12+
<script type="text/javascript" src="dynsections.js"></script>
13+
<script type="text/javascript" src="clipboard.js"></script>
14+
<script type="text/javascript" src="headerToggler.js"></script>
15+
<link href="navtree.css" rel="stylesheet" type="text/css"/>
16+
<script type="text/javascript" src="navtreedata.js"></script>
17+
<script type="text/javascript" src="navtree.js"></script>
18+
<script type="text/javascript" src="resize.js"></script>
19+
<script type="text/javascript" src="cookie.js"></script>
20+
<link href="search/search.css" rel="stylesheet" type="text/css"/>
21+
<script type="text/javascript" src="search/searchdata.js"></script>
22+
<script type="text/javascript" src="search/search.js"></script>
23+
<script type="text/javascript">
24+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
25+
$(function() { init_search(); });
26+
/* @license-end */
27+
</script>
28+
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
29+
</head>
30+
<body>
31+
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
32+
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
33+
<div id="titlearea">
34+
<table cellspacing="0" cellpadding="0">
35+
<tbody>
36+
<tr id="projectrow">
37+
<td id="projectalign" style="position:relative">
38+
<div id="projectname">BNM<span id="projectnumber">&#160;2.3.0</span>
39+
</div>
40+
</td>
41+
</tr>
42+
<tr><td colspan="2"> <div id="MSearchBox" class="MSearchBoxInactive">
43+
<span class="left">
44+
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
45+
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
46+
onfocus="searchBox.OnSearchFieldFocus(true)"
47+
onblur="searchBox.OnSearchFieldFocus(false)"
48+
onkeyup="searchBox.OnSearchFieldChange(event)"/>
49+
</span><span class="right">
50+
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
51+
</span>
52+
</div>
53+
</td></tr>
54+
</tbody>
55+
</table>
56+
</div>
57+
<!-- end header part -->
58+
<!-- Generated by Doxygen 1.13.2 -->
59+
<script type="text/javascript">
60+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
61+
var searchBox = new SearchBox("searchBox", "search/",'.html');
62+
/* @license-end */
63+
</script>
64+
<script type="text/javascript">
65+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
66+
$(function() { codefold.init(0); });
67+
/* @license-end */
68+
</script>
69+
</div><!-- top -->
70+
<div id="nav-tree">
71+
<div id="nav-tree-contents">
72+
<div id="nav-sync" class="sync"></div>
73+
</div>
74+
</div>
75+
<div id="splitbar" style="-moz-user-select:none;"
76+
class="ui-resizable-handle">
77+
</div>
78+
</div>
79+
<script type="text/javascript">
80+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
81+
$(function(){initNavTree('KittyMemoryFinder_8cpp-example.html',''); initResizable(true); });
82+
/* @license-end */
83+
</script>
84+
<div id="doc-content">
85+
<!-- window showing the filter options -->
86+
<div id="MSearchSelectWindow"
87+
onmouseover="return searchBox.OnSearchSelectShow()"
88+
onmouseout="return searchBox.OnSearchSelectHide()"
89+
onkeydown="return searchBox.OnSearchSelectKey(event)">
90+
</div>
91+
92+
<!-- iframe showing the search results (closed by default) -->
93+
<div id="MSearchResultsWindow">
94+
<div id="MSearchResults">
95+
<div class="SRPage">
96+
<div id="SRIndex">
97+
<div id="SRResults"></div>
98+
<div class="SRStatus" id="Loading">Loading...</div>
99+
<div class="SRStatus" id="Searching">Searching...</div>
100+
<div class="SRStatus" id="NoMatches">No Matches</div>
101+
</div>
102+
</div>
103+
</div>
104+
</div>
105+
106+
<div class="header">
107+
<div class="headertitle"><div class="title">KittyMemoryFinder.cpp</div></div>
108+
</div><!--header-->
109+
<div class="contents">
110+
<p>It shows how to use user's finder with <a href="https://github.com/MJx0/KittyMemory">KittyMemory</a> library as an example.</p>
111+
<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;BNM/Loading.hpp&gt;</span></div>
112+
<div class="line"> </div>
113+
<div class="line"><span class="preprocessor">#include &quot;KittyMemory.h&quot;</span></div>
114+
<div class="line"> </div>
115+
<div class="line"><span class="comment">// An example of replacing a method for searching methods using KittyMemory.</span></div>
116+
<div class="line">ElfScanner g_il2cppELF{};</div>
117+
<div class="line"> </div>
118+
<div class="line"><span class="keywordtype">void</span> *KittyMemoryFinder(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">void</span> *data) {</div>
119+
<div class="line"> <span class="keyword">auto</span> &amp;scanner = *(ElfScanner *) data;</div>
120+
<div class="line"> <span class="keywordflow">return</span> (<span class="keywordtype">void</span> *) scanner.findSymbol(name);</div>
121+
<div class="line">}</div>
122+
<div class="line"> </div>
123+
<div class="line"> </div>
124+
<div class="line"><span class="keywordtype">void</span> Example() {</div>
125+
<div class="line"> <span class="comment">// Tells BNM to use KittyMemoryFinder instead of BNM_dlsym.</span></div>
126+
<div class="line"> <a id="a0" name="a0"></a><a class="code hl_function" href="namespaceBNM_1_1Loading.html#ab977d2b3373dc8796784c126bd01fddd">BNM::Loading::SetMethodFinder</a>(KittyMemoryFinder, (<span class="keywordtype">void</span> *) &amp;g_il2cppELF);</div>
127+
<div class="line"> </div>
128+
<div class="line"> <span class="comment">// If loading happens later we enable LateInitHook</span></div>
129+
<div class="line"> <a id="a1" name="a1"></a><a class="code hl_function" href="namespaceBNM_1_1Loading.html#a9a98ca9ff7b3852a46cfacb3dcd24078">BNM::Loading::AllowLateInitHook</a>();</div>
130+
<div class="line"> </div>
131+
<div class="line"> <span class="comment">// Set g_il2cppELF in any way.</span></div>
132+
<div class="line"> <span class="comment">// g_il2cppELF = ...;</span></div>
133+
<div class="line"> </div>
134+
<div class="line"> <span class="comment">// Try to load BNM</span></div>
135+
<div class="line"> <span class="keyword">auto</span> result = <a id="a2" name="a2"></a><a class="code hl_function" href="namespaceBNM_1_1Loading.html#a7a6bc4dd7d3e72ddd8e75daf123f7d05">BNM::Loading::TryLoadByUsersFinder</a>();</div>
136+
<div class="line"> BNM_LOG_DEBUG(<span class="stringliteral">&quot;07: %d&quot;</span>, (<span class="keywordtype">int</span>) result);</div>
137+
<div class="line">}</div>
138+
<div class="ttc" id="anamespaceBNM_1_1Loading_html_a7a6bc4dd7d3e72ddd8e75daf123f7d05"><div class="ttname"><a href="namespaceBNM_1_1Loading.html#a7a6bc4dd7d3e72ddd8e75daf123f7d05">BNM::Loading::TryLoadByUsersFinder</a></div><div class="ttdeci">bool TryLoadByUsersFinder()</div><div class="ttdoc">Try load BNM using custom method finder.</div></div>
139+
<div class="ttc" id="anamespaceBNM_1_1Loading_html_a9a98ca9ff7b3852a46cfacb3dcd24078"><div class="ttname"><a href="namespaceBNM_1_1Loading.html#a9a98ca9ff7b3852a46cfacb3dcd24078">BNM::Loading::AllowLateInitHook</a></div><div class="ttdeci">void AllowLateInitHook()</div><div class="ttdoc">Allow BNM to load at any game state.</div></div>
140+
<div class="ttc" id="anamespaceBNM_1_1Loading_html_ab977d2b3373dc8796784c126bd01fddd"><div class="ttname"><a href="namespaceBNM_1_1Loading.html#ab977d2b3373dc8796784c126bd01fddd">BNM::Loading::SetMethodFinder</a></div><div class="ttdeci">void SetMethodFinder(MethodFinder finderMethod, void *userData)</div><div class="ttdoc">Set custom method finder.</div></div>
141+
</div><!-- fragment --> </div><!-- contents -->
142+
</div><!-- doc-content -->
143+
<div id="nav-path">
144+
</div>
145+
</body>
146+
</html>

0 commit comments

Comments
 (0)