Giter Club home page Giter Club logo

ue-explorer's Introduction

UE Explorer

UE Explorer is an easy-to-use browser and decompiler for Unreal Engine packages (.upk, .u).

app

Install

You can download and install UE Explorer for Windows using one of the following sources:

Features

  • UnrealScript decompilation with high accurracy
  • Package classes tree
  • Package dependencies tree
  • Package content tree
  • Hex Viewer with rich defined-structures to help with debugging and/or hex-modding
  • Specialized tokens output to help with hex-modding
  • Code export
  • ... TODO

It has support for:

  • Unreal Engine 1
  • Unreal Engine 2, UE2.5
  • Unreal Engine 3
  • UE2X and UE4/5 have not been supported as of yet.

However many games may have modified the engine to some extent.

A list of games that have been confirmed to work can be viewed here.

How to contribute

The project is built on the .NET Framework 4.8 WinForms library using C#.

If you want to contribute to the app you can do so by doing one of the following:

  • Open an issue
  • Or make a pull-request by creating a fork of this repository, create a new branch and commit your changes to that particular branch, so that I can easily merge your changes.

How do I add support for a game?

This is the repository for the UI which is using UELib to do most of its Unreal related work.

See the UELib for more.

Credits

ue-explorer's People

Contributors

eliotvu avatar rackover avatar un-drew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ue-explorer's Issues

[1.3.0] Administrator privileges are required

Currently to run the application administrator privileges are required. (See https://stackoverflow.com/questions/42212799/debug-application-without-admin-rights-in-visual-studio)

This is caused due the fact that the application needs file writing permissions such as to write the most recently used file paths, settings, and logs.

We should re-work the code base instead to work with a "proper" settings system such as the "Settings" class under "Resources" etc.

p.s. This wasn't much of an issue back in the Windows XP days when most of the code base was written and written for.

  • #26
  • Deprecate the XMLSettings class (this deals with the settings accessible within the options panel)
  • Re-work the log stream to write to a directory where we don't need admin rights? (Not so sure about this one!)

[1.3.1] Missing prerequisite WebView2 Runtime

The .msi setup for version 1.3.1 is missing a prerequisite for WebView2 Runtime leading to an unhandled exception upon launch.

Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.

The system cannot find the file specified. (Exception from HRESULT: 0x80070002).

Originally reported by RadiantBastard and [stephengillie](microsoft/winget-pkgs#94562 (comment))

Disable `unknown signature` warning for Killing Floor 1 packages.

image

We all can blame 200IQ devs for changing the package signature without any need, but this warning is bane of my existence ๐Ÿ˜‚ I use your app quite a lot, and this little window eats both time and some nerves each time it pops. Can you please add KF1 to exceptions and not show it?

Broken build

There are probably some missing files in the last commit 40529c8 to solve the scrolling issue of the HexViewer.
At first the build fails because of a missing HexViewerPanel.resx and then (when whichever icon is added to replace such missing one):

2>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.CSharp.CurrentVersion.targets(129,9): warning MSB3884: Could not find rule set file "AnalyzeRules.ruleset".
1> Eliot.UELib.Demo -> D:\UE-Explorer\UE-Explorer\Eliot.UELib.Demo\bin\Debug\Eliot.UELib.Demo.exe
2>CSC : error CS2001: Source file 'D:\UE-Explorer\UE-Explorer\UE Explorer\UI\Forms\HexViewerPanel.Designer.cs' could not be found.

Please check all (new/modified) files have been staged and committed.
TIA

HEX-viewer & Edit Cell

Hi. Regarding of HEX-viewer:
In v1.3.2 seems I can't edit any byte-cell anymore. I pick "Edit Cell" in context menu, or just using double mouse click - It is mark cell with black and after pressing keys (0-9, a-f, A-F) not make any effect.
In v1.3.0 (I just checked) HEX-viewer can edit any byte-cell without problems.

P.S.: In my tests I used same UE-file.

[Add]: a "Search in Classes" feature

Have a menu item "Search in Classes" in the packages explorer interface to do a search query on all classes.

[Issue created by eliotvu: 2012-11-07]
[Last updated on bitbucket: 2012-11-25]

[Comment created by eliotvu: 2012-11-25]
Added :)

[1.3.1 Hotfix] Errors while openning the app

Every time I open UE Explorer it throws:

Error No1

image

Error No2

image

Error message
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Runtime.InteropServices.COMException (0x8000FFFF): Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
   at Microsoft.Web.WebView2.Core.CoreWebView2Environment.<CreateCoreWebView2ControllerAsync>d__80.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Web.WebView2.WinForms.WebView2.<InitCoreWebView2Async>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at UEExplorer.UI.Panels.WebViewPanel.<WebViewPanel_Load>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9139.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
UE Explorer
    Assembly Version: 1.3.1.0
    Win32 Version: 1.3.1
    CodeBase: file:///C:/Program%20Files%20(x86)/Eliot/UE%20Explorer/UE%20Explorer.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9093.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9139.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 10.0.0.0
    Win32 Version: 14.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9139.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
Storm.TabControl
    Assembly Version: 1.0.0.0
    Win32 Version: 3.0.153.1
    CodeBase: file:///C:/Program%20Files%20(x86)/Eliot/UE%20Explorer/Storm.TabControl.DLL
----------------------------------------
PresentationCore
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9139.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
WindowsBase
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9139.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
Eliot.UELib
    Assembly Version: 1.3.1.0
    Win32 Version: 1.3.1
    CodeBase: file:///C:/Program%20Files%20(x86)/Eliot/UE%20Explorer/Eliot.UELib.DLL
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Eliot.Utilities
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Eliot/UE%20Explorer/Eliot.Utilities.DLL
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
AutoUpdater.NET
    Assembly Version: 1.7.6.0
    Win32 Version: 1.7.6.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Eliot/UE%20Explorer/AutoUpdater.NET.DLL
----------------------------------------
Microsoft.Web.WebView2.WinForms
    Assembly Version: 1.0.1462.37
    Win32 Version: 1.0.1462.37
    CodeBase: file:///C:/Program%20Files%20(x86)/Eliot/UE%20Explorer/Microsoft.Web.WebView2.WinForms.DLL
----------------------------------------
Microsoft.Web.WebView2.Core
    Assembly Version: 1.0.1462.37
    Win32 Version: 1.0.1462.37
    CodeBase: file:///C:/Program%20Files%20(x86)/Eliot/UE%20Explorer/Microsoft.Web.WebView2.Core.DLL
----------------------------------------
System.Deployment
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Deployment/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Deployment.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

When you hit continue, everything works fine except the homepage.

My System Specs

  • Windows 10 with latest updates / patches.
  • UE Explorer installed on non-admin user. Starting it with admin rights doesn't fix anything.

(UI Suggestion) Opened files tooltip with their path

I have examples, when simultaneously can be opened a few copies of file (with same names), but which lay in different places. So it is hard to tell which file is where from first sight. To find out their locations I need to go check option File > Recent Files and see the order.

My small UI suggestion is to add hover-tooltip (with file's path), when user is set the mouse above certain file tab. By that will be easy to recognize opened files with similar names.

P.S.: Also it would be cool to get hover-tooltop for every tab inside tabs vertical list (I mean arrow-button near button X)

example

[Fix]: Deserializing UT3 classes

Fix the deserializing of the following classes in UT3's Core.u:

  • DistributionFloat
  • DistributionVector

[Issue created by eliotvu: 2012-11-14]
[Last updated on bitbucket: 2013-02-02]

[Comment created by eliotvu: 2012-11-25]
[Fix]: fixes #7.
[Fix]: Support for Singularity specific class deserialization.

โ†’ <>

Exception after Upgrade to 1.3.1.0 - Microsoft.Web.WebView2.WinForms - Could not load file or assembly.

This happen after upgrading my UE Explorer to 1.3.1.0

Exception Details:
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Web.WebView2.WinForms, Version=1.0.1462.37, Culture=neutral, PublicKeyToken=2a8ab48044d2601e' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.Web.WebView2.WinForms, Version=1.0.1462.37, Culture=neutral, PublicKeyToken=2a8ab48044d2601e'
at UEExplorer.UI.Panels.WebViewPanel.InitializeComponent()
at UEExplorer.UI.Tabs.UC_Default..ctor()

image

[Fix]: Crash on Editor ContextMenu after double click selection

The software crashes when one opens the context menu right after making a selection using double click in the text-editor.

[Issue created by eliotvu: 2012-11-07]
[Last updated on bitbucket: 2013-02-02]

[Comment created by eliotvu: 2012-11-18]
[Fix]: fixes #1

โ†’ <>

(Bug) Reload package

Hey.

Pressing Ctrl+R (or selecting related menu "Reload Package") is show no effect. After activating this feature, the window "Buffer View" is closing, but content window is not reloading.

[Add]: new commandline options

Add the following commandline options:

  • %FilePath% -export=classes
  • %FilePath% -export=scripts

[Issue created by eliotvu: 2012-11-14]
[Last updated on bitbucket: 2013-02-02]

[Comment created by eliotvu: 2012-11-18]
[Fix]: fixes #5
[Add]: Contact shortcut to Help.

โ†’ <>

Exception Occurred (Tokens view)

Hey!

Bugs seems continue their resistance
There is "Exception Occurred" window appears, when you click on:
"View" > "View Tokens"
"View" > "View Disassembled Tokens"

Thrown by:WinIOError
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
   at System.IO.File.InternalReadAllText(String path, Encoding encoding, Boolean checkHost)
   at UEExplorer.UI.Tabs.UC_PackageExplorer.PerformNodeAction(Object target, String action)

Could not find a part of the path 'D:\Program Files (x86)\EliotVU\UE Explorer\Templates\struct.tokens.txt'.
Could not find file 'D:\Program Files (x86)\EliotVU\UE Explorer\Templates\struct.tokens-disassembled.txt'.

P.S.: I just checked v1.3.2 and both work without any issues.

Feature request + ?bug

Hey!
I have a few things toward UEE:

  1. [FEATURE // HEX-viewer] Inside the HEX-viewer it is really lack of jump (to certain offset) option. Yeah for small funtions/defaultprops it is not an issue, but I had examples when defaultprops were ~500kb and it is really hard work with searching inside the viewer (in that case I used 3rd party HEX-editor to be able to deal with defaultprop as a binary file).

  2. [FEATURE // HEX-viewer] It would be really helpful to get possibility to copy any data in bottom part of the HEX-viewer (Size, PositionStartDEC, PositionOffestDEC, PositionHex).

  3. [FEATURE // HEX-viewer] Inside the window of showing function's UnrealScript I suggest to add click or hover events. Click/hover on certain element of code will highlight it and will show it local tooltip with data of that element position/offset (HEX & DEC) inside the Buffer view. It will be opposite to what is currently UEE is showing inside the "View Buffer", when hover event make UEE to show this byte participation inside UnrealScript code.
    Regarding of "Click", probably it would be cool to make UEE to push inside Copy/Paste buffer all info about clicked part of the code (dec + hex info).

Example:
feature1_1

Especially such functionality will be very useful with working with defaultproperties. Because it is a real pain to work with massive defaultproperties and manually find their local offset via "View Buffer".

Example:
feature1_1

  1. [?BUG // HEX-viewer] Inside the HEX-viewer mouse wheel is not cause any action (inside HEX bytes container).
    IIRC that was working before. For now only helps using scrollbar. Maybe it is just only me.

Thanks!

Error

I would like to warn you that there is an error in the DMC game and also when you install the old version when you uninstall the new version, the error occurs in the old program and I would also like to know if you can edit in the program's txt mode

Accessing StaticSwitchParameterValues

Thanks for making this great tool!

I am current stuck trying to access the StaticSwitchParameterValues on MaterialInstanceConstant objects.

image

It does seem to list bHasStaticPermutationResource which indicates that the object has data for static flags.

Below is a snippet from MaterialInstance.h from the UE5 source which talks about this boolean.

	 * Material resources used for rendering this material instance, in the case of static parameters being present.
	 * These will always be valid and non-null when bHasStaticPermutationResource is true,
	 * But only the entries affected by CacheResourceShadersForRendering will be valid for rendering.
	 * There need to be as many entries in this array as can be used simultaneously for rendering.  
	 * For example the material instance needs to support being rendered at different quality levels and feature levels within the same process.
	 */
	TArray<FMaterialResource*> StaticPermutationMaterialResources;```

(Feature request) Recent history entries

Hey!

I suggest it would be nice to add small improvement for the existing "โ†" & "โ†’" history buttons. For example, add a history button that will display a modal window (or perhaps make it as a context menu) with list of previously visited classes/objects (or their methods/props). Regarding of max history entries, let's say 20-30 places.

Clicking on specific history entry will instantly take user to that place.

[Fix]: EmptyParmValue

An example of the empty parameter issue; the following bytes:
[code]1B 6E 04 00 00 00 00 00 00 2C 02 1D FF FF FF FF 4A 4A 1D FF FF FF FF 1D FF FF FF FF 4A 4A 4A 2C 25 16[/code]

Get decompiled as:
[code]BuildItem(2, -1, -1, -1, 37);[/code]
As you can see, the empty parameters (4A) are ignored.

I would expect something similar to:
[code]BuildItem(2, -1, null, null, -1, -1, null, null, null, 37);[/code]

This is the function being called:
[code]noexport function BuildItem(int iItem, optional int iCashCost, optional int iEleriumCost, optional int iAlloyCost, optional int iTime, optional int iMaxEngineers, optional XComGame.XGGameData.ETechType eTechReq, optional XComGame.XGGameData.EItemType eItemReq, optional XComGame.XGGameData.EFoundryTech eFTech, optional int EImage)[/code]

Reported by bokauk at http://eliotvu.com/forum/showthread.php?tid=47

[Issue created by eliotvu: 2012-12-08]
[Last updated on bitbucket: 2013-05-15]

[Comment created by eliotvu: 2013-05-15]
[Fix]: Skipped parameters are now decompiled properly for UE3 builds. fixes #11.

โ†’ <>

Update check won't trigger

Was trying out the "Check for Updates..." option in 1.3.1 to pull the latest hotfix but there's nothing happening visibly.

Export Disassembled Tokens [Feature Request]

Hi @EliotVU, I've used UE Explorer very often as a modder, and I find myself using it more and more, it's worked very well! I'd like to request a certain feature that I think would be very useful, and that is the ability to Export Disassembled Tokens scripts.

I've exported classes and scripts to better view them in Notepad++, and while that's wonderful, the ability to export disassembled tokens as well would be an amazing improvement. I only mention this as one of our primary methods of modding is through hex editing, and exporting all disassembled hex in a text format would be incredibly more efficient.

Thank you again for this awesome tool, along with UE Lib!
image

(UI Suggestion) Opening a class or function

Hey!

~ ~ ~

SITUATION1: Inside the search bar I inputted name of class InterpActor and pressed the enter. After that UEE is showing me the class's code.

Suggestion: It would be a nice addition if, in parallel with opening and showing the class content, on the left panel, UEE will open Object > Classes tab, and inside it window will focus and highlight the InterpActor class, with opening its menu [+].

Expectations: I assume that with this addition the user will have quick access to everything that belongs to the class (structures, variables, function, defaultvalues etc) in a few clicks. Also ready-made navigation menu.

class

~ ~ ~

SITUATION2: Inside the search bar I inputted name of function as InterpActor.FinishedOpen and pressed the enter. After that UEE is showing me function's code.

Suggestion: Here all almost the same, with only difference that menu "Functions" will be expanded and the function name will be highlighted.

Expectations: User can get fast access to other neighboring class functions, or get fast access to whole class structure.

class_function

[Fix]: the slow "Check for updates..."

Move the check for updates to its own thread and fix the very slow connection.

[Issue created by eliotvu: 2012-11-08]
[Last updated on bitbucket: 2013-02-02]

[Comment created by eliotvu: 2012-11-21]
[Fix]: About Dialog slow Get response. fixes #4
[Fix]: Check for updates, is now async.

โ†’ <<cset 6a024a5>>

"Array type was not detected."

Hi, again :)

I noticed that sinse 1.3.* versions, some UE-files, which earlier shown "/* Array type was not detected. */", now seems better and more properly handle the detection and parsing of Arrays/Objects.

But still, there are some UE-files, which are still show such messages. Here is an example of such file. There is property "B_Boss_AttackSets.DefaultAttackSet_Center" inside, and UEE v1.3.2 parse this partition like this:

begin object name=DefaultAttackSet_Center class=SwordBossAttackSet
    AttackSets=/* Array type was not detected. */
    AttackProgression=/* Array type was not detected. */
object end

As you see on picrel such array is not empty, there is data exists. So is it possible to make this structure parseable?
Just in case if you needed, mentioned UE-file is attached to the post.
Thanks!

file.zip

example

Installed Shortcuts are broken

The shortcuts are launching UE Explorer in Console mode.

Cause:Unknown

[Issue created by eliotvu: 2013-02-02]
[Last updated on bitbucket: 2013-02-03]

(Rocket League - Error) - exception when trying to load decrypted ProjectX.upk

I saw that this tool somewhat supports Rocket League so I decided to try it. I used your UPK decrypt tool for RL before trying to load into UE Explorer but had no success.

I did some digging and it's generating an exception while trying to deserialize Exports. Here's a screenshot of where the exception is generated:
image

Right after this call after trying to read ClassIndex at _ClassIndex = stream.ReadObjectIndex(); it generates this exception.

Do you have any insights on how to resolve this? I don't have much experience with UPK so I'm kinda lost. I appreciate any help, thank you!

EDIT1: Forgot to attach exception dump
EDIT2: Looks like it happens to any decrypted UPKs.

Thrown by:InitializeFromFile
   at UEExplorer.UI.Tabs.UC_PackageExplorer.InitializeFromFile(String filePath)
   at System.Windows.Forms.UserControl.OnLoad(EventArgs e)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.ControlCollection.Add(Control value)
   at UEExplorer.UI.ProgramForm.LoadFromFile(String filePath)UELib.UnrealException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at UELib.UExportTableItem.Deserialize(IUnrealStream stream)
   at UELib.UnrealPackage.Deserialize(UPackageStream stream)
   at UELib.UnrealLoader.LoadPackage(String packagePath, BuildName buildTarget, FileAccess fileAccess)
   at UEExplorer.UI.Tabs.UC_PackageExplorer.LoadPackage()
   --- End of inner exception stack trace ---
   at UEExplorer.UI.Tabs.UC_PackageExplorer.LoadPackage()
   at UEExplorer.UI.Tabs.UC_PackageExplorer.InitializeFromFile(String filePath)

(Feature request) Names export

Hey!

I want to mention issue, about getting index(es) for certain name(s).

Tab "Tables" > "Names": It is s only show all existing names and their flags. And I don't see much interaction with this list. And there is no local search bar, to find certain name asap.
Tab "Tables" > "Exports": There is no local search bar, to get to certain entity asap, to get it Table Index.

I think it would be great to have feature "Tools" > "Exporting" > "Names". I suppose it will create 2 files:

  • File1: List of all existing Names. With results saved as {index} = {name}. For example:
...
123 = __OnBackClick__Delegate
...
4321 = GetTurnOnSpawn
...
  • File2: List of all existing ExportTables. With results saved as {tableIndex} = {tableEntityName}. For example:
...
654 = Class'AIExtraAction'
...
2222 = Function'MissionPopup.OnStartButtonClicked'
...
9876 = Enum'CounterAction.CAType'
...

P.S.: I know that there is Gildor extract.exe exists, but it would be amazing to have all in one place (UEE), with less using 3rd party tools. Especially when UEE already knows all required data about UE-file.

Unhandled exception when clicking on tools tab (1.3.3 hotfix)

In 1.3.3 hotfix, UE Explorer now gives unhandled exception when clicking on the tools tab on the toobar

************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'UE Explorer, Version=1.3.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'UE Explorer, Version=1.3.1.0, Culture=neutral, PublicKeyToken=null'
   at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes)
   at System.Reflection.RuntimeAssembly.GetExportedTypes()
   at UEExplorer.UI.ProgramForm.InitializeExtensions()
   at System.Windows.Forms.ToolStripDropDownItem.OnDropDownShow(EventArgs e)
   at System.Windows.Forms.ToolStripDropDownItem.ShowDropDownInternal()
   at System.Windows.Forms.ToolStripMenuItem.OnMouseButtonStateChange(MouseEventArgs e, Boolean isMouseDown)
   at System.Windows.Forms.ToolStripItem.HandleMouseDown(MouseEventArgs e)
   at System.Windows.Forms.ToolStrip.OnMouseDown(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.MenuStrip.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9181.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
UEExplorer
    Assembly Version: 1.3.3.0
    Win32 Version: 1.3.3.0
    CodeBase: file:///C:/Program%20Files%20(x86)/EliotVU/UE%20Explorer/UEExplorer.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9181.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9220.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 10.0.0.0
    Win32 Version: 14.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9220.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Deployment
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9176.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Deployment/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Deployment.dll
----------------------------------------
PresentationCore
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9220.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
WindowsBase
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9220.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9214.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
Storm.TabControl
    Assembly Version: 1.0.0.0
    Win32 Version: 3.0.153.1
    CodeBase: file:///C:/Program%20Files%20(x86)/EliotVU/UE%20Explorer/Storm.TabControl.DLL
----------------------------------------
Eliot.UELib
    Assembly Version: 1.3.1.0
    Win32 Version: 1.3.1
    CodeBase: file:///C:/Program%20Files%20(x86)/EliotVU/UE%20Explorer/Eliot.UELib.DLL
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Eliot.Utilities
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/EliotVU/UE%20Explorer/Eliot.Utilities.DLL
----------------------------------------
Microsoft.Web.WebView2.WinForms
    Assembly Version: 1.0.2365.46
    Win32 Version: 1.0.2365.46
    CodeBase: file:///C:/Program%20Files%20(x86)/EliotVU/UE%20Explorer/Microsoft.Web.WebView2.WinForms.DLL
----------------------------------------
Microsoft.Web.WebView2.Core
    Assembly Version: 1.0.2365.46
    Win32 Version: 1.0.2365.46
    CodeBase: file:///C:/Program%20Files%20(x86)/EliotVU/UE%20Explorer/Microsoft.Web.WebView2.Core.DLL
----------------------------------------
AutoUpdater.NET
    Assembly Version: 1.8.5.0
    Win32 Version: 1.8.5.0
    CodeBase: file:///C:/Program%20Files%20(x86)/EliotVU/UE%20Explorer/AutoUpdater.NET.DLL
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.9037.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Eliot.Extensions.ExecGenerator
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/EliotVU/UE%20Explorer/Extensions/Eliot.Extensions.ExecGenerator.dll
----------------------------------------

Reload button duplicates the tab

Bug: Clicking on reload doesn't close the present tab after loading the package again.
Fix: Present tab has to be closed before loading the package again.

[Issue created by eliotvu: 2013-02-06]
[Last updated on bitbucket: 2013-03-02]

[Comment created by eliotvu: 2013-03-02]
[Fix]: Reload tab, duplicates the tab. fixes #18
[Fix]: Memory optimizations(Work in Progress)
[Rev]: All object buffers are now always closed and reopened as soon as necessary

Version: 1.2.3.0

โ†’ <<cset 0f808ae>>

Borderlands / Borderlands GOTY

Hello.

Tested latest UE Explorer 1.4.1 with Borderlands or Borderlands GOTY. I haven't read of any support for these games, just Borderlands 2, so maybe you can have a look into it? Below are the unpacked .u files from both builds.

BL.zip

Test scenarios:

  • with 1.3.0 I at least get error messages or unfinished "Linking Objects" operations with errors (the list of objects does become available, but trying to expand any tree leads to app freeze)
  • with 1.4.1 it gets stuck at "Deserializing Objects" and after a long while it throws a .NET error
  • tested only with GOTY Engine.u as the other one doesn't work at all

image

  • clicking OK on the above and inspecting the tree shows a super-partial listing of what could be deserialized:

image

High DPI Scaling Issues: Distortion in UI Elements and Overlapping Text in Buffer View

I've encountered distortion in several UI elements when running Unreal Engine Explorer on a high DPI display. Many of the distorted elements remain functional (such as the title bar and tabs), but the buffer view becomes largely unusable due to overlapping characters.

A temporary workaround I've found is to change the DPI scaling in Windows to 100%, launch Unreal Engine Explorer, and then revert the DPI scaling back to its previous value. This results in a blurry UI, but with no graphical distortion.

Attached are some images demonstrating said distortion.
UEE_DistortionTitleBar+Tabs
UEE_Distortion_BufferView

[Fix]: function virtual size in Medal of Honor: Airborne

Fix several tokens in Medal of Honor: Airborne to sync with the virtual script size of some structs.

[Issue created by eliotvu: 2012-11-14]
[Last updated on bitbucket: 2013-06-18]

[Comment created by eliotvu: 2013-06-18]
Seems to be resolved via an older update(I don't know which one!)

CTRL+SHIFT+F Broken when multiple files are open

Hello, I had to downgrade to 1.2.X because after trying 1.3.0 and 1.3.2, on those versions global search using CTRL+SHIFT+F seems broken. It doesn't find anything. Going through the menus to do View => Find In Classes works normally.

Kind regards

Error when opening Splinter Cell 1 package

Engine.u specifically.

Thrown by:LoadPackage
   in UEExplorer.UI.Tabs.UC_PackageExplorer.LoadPackage()
   in UEExplorer.UI.ProgramForm.LoadFile(String fileName)System.ArgumentOutOfRangeException: non-negative number required
Parameter name: capacity
   in System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   in System.Collections.Generic.List`1..ctor(Int32 capacity)
   in UELib.UnrealStreamImplementations.ReadArray[T](IUnrealStream stream, UArray`1& array, Int32 count)
   in UELib.UnrealPackage.Deserialize(UPackageStream stream)
   in UELib.UnrealLoader.LoadPackage(String packagePath, FileAccess fileAccess)
   in UEExplorer.UI.Tabs.UC_PackageExplorer.LoadPackage()

(UI Suggestion) Class content window

Hey!

SITUATION: Inside the search bar I inputted name of class InterpActor and pressed the enter. After that UEE is showing me the class code (variables, functions, events etc.)

I feel that inside the content window there is lack of some kind of interaction icons, which could be located before function/event/enum/defaultproperties name, and which will let user to open certain function instantly.

EXAMPLE1: I clicked on icon related to the function CreateCheckpointRecord and after that UEE redirect me to the browsing of InterpActor.CreateCheckpointRecord

EXAMPLE2: I clicked on icon related to the defaultproperties and after that UEE redirect me to the browsing of Default__InterpActor

P.S.1: Also in that case native button "โ†" will be a perfect synergy as a fast way to return to the content of the class structure.
P.S.2: I think this will be a very fast and intuitive way to open child's code and continue to work with it, without any addition actions from user side.

example

Streams are not closed

Bug: Streams are not closed when closing a tab/package.
Fix: Streams should be closed as early after deserialization.

[Issue created by eliotvu: 2013-02-06]
[Last updated on bitbucket: 2013-05-16]

[Comment created by eliotvu: 2013-05-16]
[Fix]: Temporary fix for non-closing streams. fixes #15.
[Fix]: Buffers of DefaultProperty containers are now ensured per property so that they can be properly decompiled individually through UE Explorer's classes treeview.

โ†’ <>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.