Giter Site home page Giter Site logo

elbowbaggins / ginsoraudiotool2plus Goto Github PK

View Code? Open in Web Editor NEW
35.0 7.0 7.0 1.74 MB

Ginsor's Audio Tool 2 for Destiny, now open and improved!

License: GNU General Public License v3.0

C# 60.20% C++ 39.62% C 0.18%
destiny ginsor audio wwise wem ogg

ginsoraudiotool2plus's Introduction

GinsorAudioTool2Plus

Ginsor's Audio Tool 2 for Destiny, now open and improved!

We're back!

Onward!

Hello all, I have fixed Ginsor's Audio Tool 2 such that it should no longer trigger virus warnings when you download it. I have also fixed a couple of bugs that would keep databases from generating correctly on first use (making the app unusable). I have also fixed an issue that would cause the audio to crackle during playback. Also, the database files are now processed as JSON and are relatively human-readable.

The latest available GitHub release should reflect the contents of master.

Read on for more technical details

The virus alert was happening because the executable Ginsor distributes is not the 'real' executable. It is just a stub program that decrypts a very large (and very obvious) encrypted payload embedded within the executable, which is actually a .NET assembly (in this case a .dll file), loads this assembly, and then loads the real application out of this. Most antivirus systems very logically flag "big encrypted payload that gets executed" as "very bad".

This annoys me. As such, I've used dnSpy to extract the actual main assembly. This is fairly straightforward. You simply open Ginsor's original tool in DnSpy and look in the entry point for calls to Decrypt() and LoadAssembly(). My approach was to add a breakpoint on the LoadAssembly() line and dump the decrypted byte array to disk with the extension .dll. Then you just open said DLL in DnSpy, give it an entry point and convert assembly type to an executable and, just like that, it's suddenly not a virus anymore!

I also fixed an issue where filenames (specifically the newer pkg files that have the region in the filename) could be incorrectly calculated, causing the database building stage to fail. The generated database files are now JSON instead of Ginsor's proprietary (and, weirdly, encrypted format)

I have additionally corrected the stuttering/crackle that would occur in basically every audio clip. The crackle was occurring due to an apparent bug in WEMSharp, Ginsor's chosen Audiokinetic Wwise decoder. To get around this, I acquired the source code for the tool 'ww2ogg', rebuilt it as a library, and used its decoder instead. Now, the resulting Ogg isn't actually quite playable yet, (ww2ogg's author is actually very forthcoming about this, however >_>)

To make it playable, it needs to be fixed with a 3rd party tool called "ReVorb". Ginsor was actually running this tool on any clips that you saved, but this naturally has no effect on playback within the app. As such, I tracked down the source code for ReVorb and have packaged it as a library alongside the tool. The cleaned up audio is now the only audio you'll get, which should be a more pleasant experience.

But why the tricks?

Frankly, I don't know. This endeavor has really left me with more questions than answers. Based on Ginsor's failed DMCA takedown request I assume he feels he has some right to keep his secrets.

On some level I understand this mentality, after all, he did do quite a lot of the original work. On the other hand, I personally consider his approach to be in incredibly poor taste (I know, pot, meet kettle). There's a few reasons for my opinion.

First (and certainly not least) of which is his use of a modified (and bundled) WEMSharp build. WEMSharp is a GPL3 library. As such, his use of a self-modified version requires that he release its source as well as his tool's source. Instead, it seems he took great lengths to hide this fact from us which is mad sketchy, yo. Ginsor's approach also leads to an "Ivory Tower" effect where knowledge is needlessly kept only in the hands of a chosen few. (Does he want to be the only one that knows how .pkg files work or something? Very odd.)

I think this should be for everyone. It is now. I hope it stays that way.

ginsoraudiotool2plus's People

Contributors

elbowbaggins avatar kanetw avatar nblockbuster 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ginsoraudiotool2plus's Issues

Broken after the release of Season of the Splicer.

You are amazing for supporting and iterating on this tool, thank you for doing that. Bungie changed something when they released this season, and now when trying to play any voiceline after rebuilding the DB it says "No Audiofile for selected Transcript." in the console.

what do
image_2021-05-12_174218

not really an issue, but-

In this github readme, there seems to be about 30% useful information and 70% hostility towards this Ginsor guy. Is it really necessary? I find myself not wanting to read the whole thing because it just sounds like a personal vendetta. Its a shame because i feel that the technical side is interesting, but i just cant help but feel a wave of hate hitting me while reading. I hope you can change this sometime because it is honestly a good rework of the tool

Needs Update

Hopefully you will be updating for after Beyond Light compatibility?

Still broken and DCV is about to consume more

ok look m8.
yes I shoudn't be making this issue since the other one exists
but I have to at least get some answer in some way.
you said it yourself.
"A minor fix"
yet an entire season and a half has passed, still broken.
DCV is happening, half of Forsaken is being removed.
this is the only tool of this kind that would allow people to easily archive sound files before they dissapear forever

all I ask for is any kind of answer. of course I hope the answer will be "yes yes fixing it" but I at least want to know should I just wait, or start seeking places to fix it myself/have someone else fix it. at least leave some compilation instructions in the readme for anyone wanting to dabble in this mess themselves

Require .net

I downloaded x86 .net 5, still thinks i need .net
image_2022-07-22_145741872

"Generating string database"

Whenever I try opening the executable with the program, it just shows this constantly. I've left it for an entire day and it just keeps doing it. Am I doing anything wrong? Or is it just broken?

image

"Save All From Character functionality?"

Hello!

First off, thanks so much for fixing this for the Beyond Light release.

Now, this is a feature request and not an issue but I don't know where that would go - is it possible to save an entire collection at a time, or even an entire character at a time?

For example, I filter to "Ghaul", and it's not a big deal to save the 11 or so voicelines from there, but if I filter to say "Hawthorne", there's a lot more clicking and saving needed, it would be great if I could right click and save an entire collection, or character..

Thanks for your work so far in the update, even if it's warranted a little bit of backlash from the original creator, amazingly useful.

Tool takes an unreasonably long time to load anything

title
for me the tool is stuck at the "Generating PKG Database. Please wait..." step
I can see CPU usage from it in the task manager, so it's doing something, but I'm not seeing usage of anything else
left it running for... I dunno, 20 minutes? more? and it still hasn't loaded anything
I made sure that antivirus isn't blocking it, and ran it with admin perms
any ideas?

support other Language.

Hi. I'm a Korean Destiny user.
First, I wrote it using a translator. I'm sorry, but please understand.
I used Audio Tool v1 until the first week of the release of Beyond the Light, but it no longer works and I was looking for another tool, and I found your file. However, It doesn't support Korean, so I'm looking for another way, but after looking at your reply left by reddit to Syscache, I knew there was a way.
But, I can't understand how to do it. Could you please let me know, if this is the way I can do it?

String Decryption Update

TLDR: See https://github.com/andrewathalye/destiny-string-tool/blob/master/src/string_tool.adb

It looks like string decryption occurs by converting the raw string to utf 32 and adding the obfuscation to each utf32 character. There is also a mode where the raw string is directly interpreted as utf-16le (no obfuscation) if the obfuscator value is 0 or Decode_Mode is 240 (this value is not handled by PkgText.)

Changing the string decode to work like this should reduce complexity and also make languages like Japanese, Russian, French, Korean, and both forms of Chinese no longer corrupted.

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.