Artikash / Textractor

Extracts text from video games and visual novels. Highly extensible.
GNU General Public License v3.0
2.09k stars 203 forks source link

No Hook Found on New Unity Game #404

Closed transienteternity closed 4 years ago

transienteternity commented 4 years ago

https://vndb.org/v21289

The game use UnityPlayer as Engine. I tried to find code to hook game but failed. Is there how to hook unity engine?

Artikash commented 4 years ago

What's the console output when attaching to the game?

transienteternity commented 4 years ago

Textractor: pipe connected Textractor: hijacking process located from 0x000B0000 to 0x00150000 vnreng: Mono: INSERT Textractor: inserting hook: mono_string_to_utf8 vnreng: Mono: INSERT Textractor: inserting hook: mono_string_to_utf16 vnreng: Mono: INSERT Textractor: inserting hook: mono_string_intern vnreng: Mono: INSERT Textractor: inserting hook: mono_string_is_interned vnreng: Mono: INSERT Textractor: inserting hook: mono_marshal_string_to_utf16 vnreng: Mono: INSERT Textractor: inserting hook: mono_string_hash vnreng: Mono: INSERT Textractor: inserting hook: mono_utf8_from_external vnreng: Mono: INSERT Textractor: inserting hook: mono_string_from_utf16 vnreng: Mono: INSERT Textractor: inserting hook: mono_string_new_utf16 vnreng: Mono: INSERT Textractor: inserting hook: mono_unicode_from_external vnreng: Mono: INSERT Textractor: inserting hook: mono_unicode_to_external vnreng: Mono: INSERT Textractor: inserting hook: mono_string_new vnreng: Mono: INSERT Textractor: inserting hook: mono_string_new_len vnreng: Mono: INSERT Textractor: inserting hook: mono_string_new_wrapper Textractor: Mono Dynamic ENTER (hooks = brute force) Textractor: inserting hook: string:ToCharArray () Textractor: inserting hook: string:.cctor () Textractor: inserting hook: string:ToCharArray (int,int) Textractor: inserting hook: string:CharCopy (char,char,int) Textractor: inserting hook: string:ToLowerInvariant () Textractor: inserting hook: (wrapper managed-to-native) string:InternalAllocateStr (int Textractor: inserting hook: string:Replace (char,char) Textractor: inserting hook: string:IndexOfUnchecked (char,int,int) Textractor: inserting hook: string:op_Equality (string,string) Textractor: inserting hook: string:Equals (string,string) Textractor: inserting hook: string:Concat (string,string) Textractor: inserting hook: string:Format (string,object) Textractor: inserting hook: string:Format (System.IFormatProvider,string,object[]) + 0x Textractor: inserting hook: string:FormatHelper (System.Text.StringBuilder,System.IForm Textractor: inserting hook: string:CharCopy (string,int,string,int,int) Textractor: inserting hook: string:ParseFormatSpecifier (string,int&,int&,int&,bool&,st Textractor: inserting hook: string:ParseDecimal (string,int&) Textractor: inserting hook: string:ToString () Textractor: inserting hook: string:InternalSetLength (int) Textractor: inserting hook: string:IsNullOrEmpty (string) Textractor: inserting hook: string:Replace (string,string) Textractor: inserting hook: string:ReplaceUnchecked (string,string) Textractor: inserting hook: string:Contains (string) Textractor: inserting hook: string:IndexOf (string) Textractor: inserting hook: string:op_Inequality (string,string) Textractor: inserting hook: string:GetHashCode () Textractor: inserting hook: (wrapper managed-to-managed) string:.ctor (char,int,int) + Textractor: inserting hook: string:CreateString (char,int,int) Textractor: inserting hook: string:Concat (string,string,string,string) Textractor: inserting hook: string:Trim () Textractor: inserting hook: string:FindNotWhiteSpace (int,int,int) Textractor: inserting hook: (wrapper managed-to-managed) string:.ctor (char,int) Textractor: inserting hook: string:CreateString (char,int) Textractor: inserting hook: string:IndexOfAny (char[]) Textractor: inserting hook: string:IndexOfAnyUnchecked (char[],int,int) Textractor: inserting hook: string:IndexOf (char) Textractor: inserting hook: string:Substring (int,int) Textractor: inserting hook: string:SubstringUnchecked (int,int) Textractor: inserting hook: string:Split (char[]) Textractor: inserting hook: string:Split (char[],int) Textractor: inserting hook: (wrapper managed-to-native) string:InternalSplit (char[],in Textractor: inserting hook: string:TrimEnd (char[]) Textractor: inserting hook: string:Join (string,string[],int,int) Textractor: inserting hook: string:JoinUnchecked (string,string[],int,int) Textractor: inserting hook: string:LastIndexOfAny (char[]) Textractor: inserting hook: string:LastIndexOfAnyUnchecked (char[],int,int) Textractor: inserting hook: string:Equals (string) Textractor: inserting hook: string:Concat (object[]) Textractor: inserting hook: (wrapper managed-to-managed) string:.ctor (char[],int,int) Textractor: inserting hook: string:CreateString (char[],int,int) Textractor: inserting hook: string:ConcatInternal (string[],int) Textractor: inserting hook: string:Format (string,object[]) Textractor: inserting hook: string:CharCopy (string,int,char[],int,int) Textractor: inserting hook: string:Split (string[],System.StringSplitOptions) Textractor: inserting hook: string:Split (string[],int,System.StringSplitOptions) Textractor: inserting hook: string:IndexOf (string,int) Textractor: inserting hook: string:IndexOf (string,int,int) Textractor: inserting hook: string:Substring (int) Textractor: inserting hook: string:Compare (string,string,bool,System.Globalization.Cul Textractor: inserting hook: string:Equals (object) Textractor: inserting hook: string:ToLower () Textractor: inserting hook: string:ToLower (System.Globalization.CultureInfo) Textractor: inserting hook: string:InternalSetChar (int,char) Textractor: inserting hook: string:Concat (string,string,string) Textractor: inserting hook: string:StartsWith (string) Textractor: inserting hook: string:Concat (object,object) Textractor: inserting hook: string:Concat (object,object,object) Textractor: inserting hook: string:Concat (string[]) Textractor: inserting hook: string:IndexOfOrdinalUnchecked (string,int,int) Textractor: Mono Dynamic used brute force: if performance issues arise, please specify the correct hook in the game configuration

That is.. and whenever I search hook code for this game, there is 0 results.

Artikash commented 4 years ago

Click to advance the text in game then scroll through the text threads in top right dropdown of Textractor. Is there really not a single one that extracts the game text?

transienteternity commented 4 years ago

676 677 678 679 680

Oh.. I forgot default hook dropdown. Thanks. but I feel hard to find suitable regex filter. What thread do I select and which regex is suitable?

Artikash commented 4 years ago

The one in the first screenshot, regex filter .+\)$ should work.