Jump to content
⚠ Known Issue: Media on User Profiles ×

[WIPz] Skyrim Script Extender (SKSE64)


behippo

Recommended Posts

  • Replies 885
  • Created
  • Last Reply

Top Posters In This Topic

You could say that into eternity, right?

 

Someone earlier in the thread said that they had the skill-set and interest in helping. Some here reacted so hysterically that he probably doesn't even follow the thread any more. Great job!

Edited by waterlogic
Link to comment
Share on other sites

 

Has there been any thought to opening up the project in git (or whatever code repository is being used)? I bet there are several people watching this thread who have the necessary tools and reverse engineering experience to help move this along. In addition there are a bunch of excellent programmers here who can help with adding functions.

We get request emails quite frequently, but we haven't had anyone with the motivation AND the skill set requirements. Programming isn't what we need for SKSE64, we need reverse engineers who understand x86/x64 assembly and C++ structure alignment. I don't believe switching to git would bring anymore people in. It would likely just bring in more need for management (i.e. Peer Reviews).

 

If you're interested in contributing your reverse engineering skills, all you have to do is submit a few alignment fixed classes to show us that you're capable. You don't even need to know x64/x86 for this, you just need to understand structure alignments and C++, this is essentially where I started 6 years ago.

 

Here's some classes I'm confident are broken strictly from alignment shifts:

EffectSetting

TESRace

TESNPC

TESObjectWEAP

TESObjectARMA

ActiveEffect

You don't need to fix any utility classes e.g. tArray, these are already fixed, you should correct the offsets in the comments on the right as is our convention.

 

 

That is awesome you listed what needs to be done : ) Now those who have said they want to help and know how to help will be able to :D

Link to comment
Share on other sites

You could say that into eternity, right?

Â

Someone earlier in the thread said that they had the skill-set and interest in helping. Some here reacted so hysterically that he probably doesn't even follow the thread any more. Great job!

You could say the same for the SKSE team and all the negativity that's been spewed around about them.
Link to comment
Share on other sites

ClassInformer does not work very well for x64 RTTI. I ended up reading clang's MSVC codegen code. Also IDA is not something I can afford.

 

Also it's not like I'm trying to make my own version of skse. I'm trying to find offsets and send them to the skse team.

Link to comment
Share on other sites

I think the posts from schlangster and expired6978 (first quote) really started something.
Finally the people who want to help know how.
However it can be difficult finding important posts in this thread, which is why I collected all the posts (and added some links) that might help people interested in contributing below:

Packaged with the latest OldRim version of SKSE comes a source code directory.
Email to submit alignment fixed classes can be found here: http://skse.silverlock.org/ under "Contact the SKSE Team".

We get request emails quite frequently, but we haven't had anyone with the motivation AND the skill set requirements. Programming isn't what we need for SKSE64, we need reverse engineers who understand x86/x64 assembly and C++ structure alignment. I don't believe switching to git would bring anymore people in. It would likely just bring in more need for management (i.e. Peer Reviews).

If you're interested in contributing your reverse engineering skills, all you have to do is submit a few alignment fixed classes to show us that you're capable. You don't even need to know x64/x86 for this, you just need to understand structure alignments and C++, this is essentially where I started 6 years ago.

Here's some classes I'm confident are broken strictly from alignment shifts:
EffectSetting
TESRace
TESNPC
TESObjectWEAP
TESObjectARMA
ActiveEffect
You don't need to fix any utility classes e.g. tArray, these are already fixed, you should correct the offsets in the comments on the right as is our convention.

 

 

In other words, working with both MS Visual Studio for the source coding and whatnot & using Hex Ray's IDA Pro for the (legal) reverse engineering...


I tried loading up the free version of IDA Pro yesterday and it was crash central on Windows 10. I suspect there's some dependencies that are not specified on the download page.

 

 

There is no free version of IDA Pro

IDA Free is for 32 bit binaries only.

 

I've been using x64dbg. I found the type descriptors for those classes but they are not pointing me to the vtbls, I'm trying to follow the first pointer in the type descriptor though, tonight I'm going to try following it backwards.

Edit: nope I'm an idiot and assumed the placeholder pointer at the start of the vtbl was the end of the vtbl

Edit2: there's several approaches to verifying offsets but I'm going to go with finding the vtbl then finding instances of said object by finding references to it.

 

I started a thread on Reddit 2 days ago on schlangster's recent post and the status of SKSE64. Here it is:

https://www.reddit.com/r/skyrimmods/comments/6cbmw9/pc_skse64_update_of_sorts/

People might want to contact Qazyhn
He / she seems to be a main contact, here is their post on that thread:

We have plenty of offers, but we have yet to have anyone with the actual skill set and motivation we need. The skill bar is higher than some actual development jobs out there so it's not easy to get people who are interested and obviously won't be paid. Knowing C++ is a basic requirement, but it's not going to help with the development of SKSE64.
The C++ code is already all there, what we need someone who can:

  • decode classes (from memory)
  • verify class alignments (and fix them)
  • update addresses (this is actually easier than alignment fixing)
SKSE64 isn't something that can be realized by throwing developers who lack the required skills at it. Additionally these skills aren't something you can just learn in a few days like transferring to a new programming language. I can point people with prior C++ experience in the right direction for getting started but none of us really have the time to teach.

 

 

 

I think I'll just decode at least one class and email the new offsets to the team email address.

Edit for anyone else attempting to help: the base type descriptor has a pointer to *its* vtbl, not the vtbl of the described type. *facepalm*

 

If you are looking at the RTTI info, IDA_ClassInformer on GitHub [Note: I think it's this] has the RTTI structure definitions for Win64 (or look at the source of my forks of that plugin https://github.com/Hugues92 )

 

ClassInformer does not work very well for x64 RTTI. I ended up reading clang's MSVC codegen code. Also IDA is not something I can afford.

Also it's not like I'm trying to make my own version of skse. I'm trying to find offsets and send them to the skse team.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...