Recent Posts

Pages: 1 2 3 4 5 6 7 8 9 10
1
Developers' Blog / [Coding] Taskbar internals (part 3)
« Last post by fixer on February 17, 2018, 02:00:01 pm »
In the previous taskbar internals parts we talked about how taskbar shows tabs and how taskbar chooses the main window.

You probably noticed that taskbar is usually shown above all windows. Even if you try to drag some window over taskbar, the window'll be displayed below. But if you open some full-screen application like a game or a video player, taskbar magically goes away letting the application take the whole screen and you to enjoy it. So how does it work?

Actually all the magic does taskbar, applications don't have to do practically anything especially some weird stuff like trying to hide taskbar themselves. So how does taskbar detect should it hide or not and how does it hide?

Hiding and reverting back is pretty simple, it uses SetWindowPos API with flags HWND_BOTTOM and HWND_TOPMOST to hide (actually to place taskbar below other windows) and to show back respectively.

Taskbar also gets notifications on different events like windows being activated. It then makes several checks including is this window visible, if window style includes WS_CAPTION or WS_THICKFRAME (depending on this check it checks either full screen rectangle or client-area rectangle equals full monitor size), is it the same monitor taskbar is on and some additional checks like is it not desktop or live preview window. And there is one more additional check here as follows:

Code: [Select]
HWND hFGWindow=GetForegroundWindow();
if(GetWindowThreadProcessId(hWnd,NULL)==GetWindowThreadProcessId(hFGWindow,NULL))
    return TRUE;
else if(SHIsParentOwnerOrSelf(hWnd,hFGWindow)==S_OK)
    return TRUE;
return FALSE;

The last check is more for not to show taskbar when some subwindows of full-screen window are opened.
So basically taskbar checks if the active window wants to take the whole monitor area and if it does just goes to the bottom not to interfere.
2
ReHIPS / Re: Запуск Bitcoin Core в виртуальной среде
« Last post by fixer on February 15, 2018, 02:01:55 pm »
Доброго времени суток.
1. Какая версия ReHIPS используется?
2. Какой режим работы ReHIPS используется, Эксперт или Стандартный?
3. Какая ОС установлена?

Я подозреваю, что в настройках изолированной среды не разрешён доступ к сетевым носителям или к сети, что-нибудь такое.
3
ReHIPS / Запуск Bitcoin Core в виртуальной среде
« Last post by Jesprit on February 15, 2018, 09:55:04 am »
Приветствую.

Пытаюсь запустить Bitcoin Core через reHIPS.
Делаю это в VirtualBox`е и папка с Bitcoin Core подключена как общая папка.

В итоге получаю следующую ошибку:

В мануале не особо понятно что конкретно можно сделать при такой ошибке.
С настройками ReHIPS как только не игрался, не удается побороть проблему.
Подскажите, как все же запустить Bitcoin Core через ReHIPS в VirtualBox`е.

4
Developers' Blog / [BUG] Different client areas
« Last post by fixer on February 11, 2018, 04:58:23 pm »
Not sure if it's a bug or a feature. It's not critical, but may be interesting to know anyway.

Looks like Windows developers have different opinions on "client area".
https://msdn.microsoft.com/en-us/library/dd162743(v=vs.85).aspx this description of nonclient area says
Quote
nonclient area of the window, such as the title bar, menu bar, or window frame
And for example this PrintWindow function https://msdn.microsoft.com/en-us/library/windows/desktop/dd162869(v=vs.85).aspx operates in agreement with the description above. With PW_CLIENTONLY flag it indeed doesn't include menu bar in the screenshot.
And GetClientRect function https://msdn.microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx also agrees with the description, it doesn't include menu bar in the RECT.
But looks like DWM thumbnails https://msdn.microsoft.com/en-us/library/windows/desktop/aa969502(v=vs.85).aspx were developed by a different team of people who have their own opinion on nonclient area. So using fSourceClientAreaOnly flag includes menu bar in the thumbnail treating it as a client area.
5
Developers' Blog / [BUG] Shutdown and shell-less session
« Last post by fixer on February 05, 2018, 11:58:36 am »
Shell usually handles things like desktop, taskbar, etc. Explorer.exe is the default shell for Windows. But actually it can be some other program or no shell at all (the simplest way-explorer.exe unexpectedly crashed).

Sometimes when you try to shutdown, some programs complain they have unsaved data or something like this and prevent shutdown. Then Windows shows a window like this and that program are blocking shutdown, do you want to cancel it or forcefully stop them and shutdown.

The issue happens when you don't have a shell running (or on a different desktop with no shell) and shutdown while some program tries to block it. You'll see a window asking whether to force stutdown or to cancel it. The problem is you can't cancel it. The call goes to csrss.exe into winsrv.dll, it calls GetShellWindow API and just does nothing if returned value is NULL (no registered shell on current desktop). So clicking Cancel just does nothing, you can only force shutdown loosing all unsaved data. While this bug is not that easy to trigger, the outcome may not be a pleasant one.

P.S. This behavior is observed on Windows 7. Looks like later releases like Windows 10 being shutdown in shell-less session don't bother to show warning window at all, they just forcefully close all applications loosing all unsaved data.
6
Other / Re: Low participation/participants in Russian forums
« Last post by JackC on February 03, 2018, 07:59:48 pm »
I can confirm, Russians don't bother protecting their computers. They just fight off attackers themselves.
7
ReHIPS / Re: Blocked apps should be easier to see and manage
« Last post by fixer on February 03, 2018, 01:15:58 pm »
Could you please remember or find in logs the process that was blocked from parenting? Was it BitLockerWizardElev.exe ? So we could fix it in initial rules.
There is a system ReHIPS log, it can be opened via Log tab or in Event Log. It logs all the events there, so this blocked event should also be there.
Thank you for your time and help.
8
ReHIPS / Re: Blocked apps should be easier to see and manage
« Last post by bootguardian on February 03, 2018, 12:35:56 am »
I understand. I was able to fix it because I found one of the processes that was blocked - a Bitlocker wizard exe. I don't remember the name, and now I think I don't have those logs anymore. I also had to reboot first before I could see a Manage Bitlocker option in the right-click menu.
9
ReHIPS / Re: Blocked apps should be easier to see and manage
« Last post by fixer on February 02, 2018, 11:27:13 pm »
Thank you for your feedback.

I guess the problem you experienced is not quite with blocked apps. There are several layers of checks that take place when some process is started. They're described in detail in this blogpost https://forum.rehips.com/index.php?topic=9609.0

Very few programs are blocked by themselves. Most of these blocking come from parenting. That's why it isn't shown in Blocked programs. When we add a new program to initial rules, we try to find out if it creates child processes. If yes, we allow it. Otherwise we block it, just in case. The problem is even with thorough testing we can't tell for sure that the program never spawns any children. So sometimes we make mistake and block something that should be allowed, it happens. Could you please show the log with the blocked process? We'll fix our rules. And you can manually allow it in your rules to fix it on your side.

BTW, Lock-Down Mode is a tricky one. It isn't recommended to use on first runs or for unexperienced users. It was mostly designed for corporate environments to create a closed environment with a whitelist of programs blocking all other.

I'm not sure bringing list of Blocked programs to the main window will help as it's not about blocked programs, but most likely it's about blocked parenting, which is a bug in initial rules and will be fixed. But adding a list of blocked events from log may be useful, we'll think about it, thanks for the hint.
10
ReHIPS / Blocked apps should be easier to see and manage
« Last post by bootguardian on February 02, 2018, 09:32:51 pm »
I'm a new user of ReHIPS, and I like it quite a bit so far, but I see at least one major pain point in terms of UX so far: managing blocked apps.

I think it takes too many clicks to get to blocked apps/files. They should be somewhere on the main screen with a link to the page that manages them, or something. Comodo Firewall does something like this, where it shows you how many apps it blocked and then gives you a link to the page managing them. However, even Comodo's interface could be improved. For instance, ReHIPS takes half the screen to show the disabling of camera and microphone. Is that really necessary? Maybe show a list of blocked apps or something there.

I think this is a problem because some people may not even notice when an app was blocked or which one was blocked, and so on, especially if the app was in lock-down mode. So there needs to be a very easy at-a-glance interface to check them out.

One other problem I've just had right now, is that I had ReHIPS in Learning mode, and then I tried to encrypt using Bitlocker. But ReHIPS blocked it - is that intended? Like it's a feature against ransomware? If it is, then fair enough, but would think it still shouldn't happen in the learning mode.

However, I have a second problem, too - although the blocking appears in the log, it doesn't appear in the blocked apps section. In other words, I can't unblock it right now, and Bitlocker encryption also disappeared from the right-click context menu. So how do I fix that now?
Pages: 1 2 3 4 5 6 7 8 9 10