Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Select a process... window is unusable #81

Open
webloft opened this issue Jul 23, 2022 · 3 comments
Open

Select a process... window is unusable #81

webloft opened this issue Jul 23, 2022 · 3 comments

Comments

@webloft
Copy link

webloft commented Jul 23, 2022

If I click on the menu 'Profile Process...' some window opens that lists the processes to select put the PID column is out of the viewport and the pid numbers are hidden under the scroll pane with some opacity.

There is some oder by Name-arrow(?) button but it has no function.

Clicking on the process to debug (if you finally can find it) crashes VS 2019

@tyoma
Copy link
Owner

tyoma commented Jul 26, 2022

Hi @webloft, the "profile process" is still in beta, as it only allows to attach to the processes of the bitness same with the Visual Studio you use (64 for 2022, 32 for everything older). Will be ready within a month, as i'm reorganizing table data internally.
Nonetheless, to attach you can just double-click the process in the list.
For functions to be able to hook to you'll need to set /hotpatch command line option in compiler settings and /functionpadmin:14 in linker command line. This is the safest way i came up with as of now, but this will become unnecessary with the new patcher (will be done later).

@webloft
Copy link
Author

webloft commented Jul 26, 2022

Thx for the info.

Is this patcher assumed to work as some injection-DLL? Because I want to profile a native build, not compile it again with VS. I have source and pdb-files.

@tyoma
Copy link
Owner

tyoma commented Jul 27, 2022

The profiler works only with native images (dll/exe). You're right - the patcher works through dll injection via CreateRemoteThread. As of now for the realtime patching to work, the image must be linked with enough space in-between functions (/functionpadmin) to allow the patcher thunks to be injected into that space. i experimented with different kind of thunking that moved function code away, but that way required much more effort.
having padding enabled can be permanent, as it marginally affects the performance.
the upside of profiling this way (comparing to the original penter/pexit approach) is that it allows you to define the scope of interest, w/o affecting the overall performance much.

tyoma added a commit that referenced this issue Aug 2, 2022
… container

- setup is now using process table instead of investigating the list of process by itself;
- attach_ui now uses process table provided to select and attach to a process (Attach button is now functional - see issue #81), multiple process attachments are possible;
- process_list is now a model-preparing function, rather than an unrelated model class.
tyoma added a commit that referenced this issue Aug 8, 2022
- issue #81 partially resolved - x64/x86 processes can be now attached to;
- injector functionality is moved to a separate DLL - an ipc server ran via sandbox;
- injector DLLs unloads itself upon completion;
- vsix installers updated;
- injector/process class is no longer an interface.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants