0

Because of some reason I had to use another web browser than my main which I use daily and I chose a small browser which I installed long time ago. This brower is called Dooble, version 0.07 (dooble-0.0+svn874) and I have been using it about 2 weeks.

In this period of time I opened a lot of sites which I need to open again in future so I need a browsing history. I checked before start of using it that it keeps this history. Now I would like to get an access to the history and save it or export or just look at it. But there is a problem with it.

The history is shown on a list, which is in menu bar, like File, Edit or Help. The list is too large to display it on the visible workspace. It rolls down to the end of the workspace and then to the right with no limit (just go out from the screen) and about 95% of content is outside of the visible part of the workspace, so I can't see the history although the browser keeps it.

I decided to get it in other way. I was looking for the history on the disk, because I suspected that it may be stored in a file. I checked the list of files it using/generated with command "lsof" and there is no file connected with Dooble.

I also searched in ram memory, I copied an image of ram and opened in hex editor and looked for appropriate string with no results.

The idea to take a screenshot of the active window is also wrong because it takes only the visible part. There is no possibility to change a resolution of a display in my case. I suppose that browser may encrypt the history stored in ram, like it does in the current version, but my version is very old (2008 probably) and I have no documentation or help files to this with specification.

Moreover I use swap, but I can't read its contents. The swap is a file and when I copy it and open like the image of ram there is nothing inside except zeros - the file is full of zeros although swap is full in some part which I can see typing "free" in terminal.

Here is the source of this version: http://dooble.sourcearchive.com/documentation/0.0plus-psvn874-0ubuntu2/dir_9cc8d803eb63e208c05c995ec1941f6c.html , I'm not programmer and don't understand it but maybe it would be helpful in finding any solution, if so tell me please how can I use it.

I use Ubuntu and Gnome. I can't close the browser and obviously system because the history will be deleted permanently. I really believe that there are people here who know what to do in my case. I'm not good in IT, so I will appreciate every hint.

Anthon
  • 79,293
  • If you checked that the browsing history is kept between sessions of using this browser than it should be in a file. However this might be read once on startup and written/closed on each access. Have you used find with the -newer option to find any recently updated/created files? – Anthon Oct 24 '13 at 13:36
  • 1
    Please don't cross-post. SU, AU – gertvdijk Oct 24 '13 at 13:54
  • @Anthon: Thanks for a good idea. I just checked this out and there's no interesting result (just other files not connected with the browser). – user49847 Oct 24 '13 at 14:31
  • Search in the process's memory instead of the whole RAM and swap: http://unix.stackexchange.com/questions/6301/how-do-i-read-from-proc-pid-mem-under-linux – Gilles 'SO- stop being evil' Oct 24 '13 at 23:25
  • @Gilles: Thanks for hint, but it seems a little too hard for me. Is this better and can be more effective than the method mentioned below by jofel (about GDB)? Is there a sense to try both? – user49847 Oct 25 '13 at 16:13

3 Answers3

0

Dooble's history seems to be stored in a SQLite database named history.db located under ~/.dooble or %userprofile%\.dooble

From http://sourceforge.net/p/dooble/code/HEAD/tree/trunk/browser/Source/dhistory.cc

tamarintech
  • 350
  • 1
  • 4
  • I really appreciate your answer, but there is not such a file in my case - I guess this is the part of code of current version. Anyway thanks a lot! – user49847 Oct 24 '13 at 15:05
  • Looks like older versions use QWebHistory. I looked through the source linked above but I can't find any usage of saveState() or loadState().

    If you aren't having any luck with finding where the history might be saved and other answers aren't getting you anywhere.... have you considered just vising the pages in your history so that you can cut and paste those items elsewhere for safekeeping?

    – tamarintech Oct 24 '13 at 15:40
  • I would really do it with method suggested by you, if only it were possible. But it's not-as I mentioned above I can't see the list with visited pages because it's much larger (actually longer) than my visible workspace - it goes outside the display. So I can't click on address or even see it. I check the RAM memory and files on disk and in both cases I found no results, so where is it? I think it's not a secret, because the browser is open source, but there is only the code of the current version available. I'm using the version from about 2008 (the only in package manager). Thanks again. – user49847 Oct 24 '13 at 17:06
  • Dooble is based on Qt which suggests the proper way to extract the history data from the program is to serialize it to a QDataStream. You would have to build that into the program before running it.

    The actual logistics of where and how this data is stored wasn't clear when I visited the Qt documentation. There may be reasons you can't find it in memory based on how Qt is managing the data - for example, it may all be stored in a different encoding or even split apart by domain, path, etc which might explain why your grep isn't working from jofel's answer. Maybe try grep'ing for domain?

    – tamarintech Oct 24 '13 at 17:15
  • Ok, I got it. But even if the browser keeps addresses splited, it also has to keep somewhere the information how to merge it. Obviuosly I'm aware that looking for it has no sense because it's not known how it looks like and where it is (unlike webpages addresses which are regular expressions). I'm still trying, thanks for your support. – user49847 Oct 25 '13 at 23:48
0

At least the version of Dooble you uses has no history saving at all implemented. The related options in the settings window are only stubs.

Extracting the history from the memory is very difficult. What you can do, is at least get some list of URLs from the memory. As URLs may be split in the memory into different locations and there are much more URLs in the memory from other sources (cache, libraries etc.), you get only a partial results and much "trash".

Assuming the PID of Dooble is 21059 (use pgrep Dooble to get it):

$ gdb -p 21059
(gdb) generate-core-file
Saved corefile core.21059
(gdb) detach
(gdb) quit

Then you can search in the core file e.g. with

$ strings core.21059 -n 8 --encoding=l | grep "^http://" | 

or

$ strings core.21059 -n 8 --encoding=l  | grep "^https://"

for URLs. Removing the ^ (matches start-of-line) from the grep expressions gives more results, but also more uninteresting output.

jofel
  • 26,758
  • Thanks a lot. I will try it once again - with ram and swap. What if the history in ram is encrypted? In that case I suspect I would get no results... Should I search when the history is open and visible (then it should be stored as plain text)? – user49847 Oct 24 '13 at 15:10
  • @user49847 The information is usually not encrypted in the RAM, but this means not that it is easy to find the URLs. I do not expect, that the core dump changes much if you open the history menu. – jofel Oct 24 '13 at 15:18
0

I know I shouldn't answer my question, but I found some useful solution so in this case I hope I'm allowed.

There is a file that I previously skipped because of its name - 'WebpageIcons.db". It was about 2MB so I checked the contents and this is a SQLite database with web icons which are connected to one of almost every or literally every visited webpage. Exporting one of database's tables maybe is not actual history but it can be used as this because looks just like a list which includes all visited pages.

Incidentally I would like to say thank you to @esnyder, @Anthon, @Gilles and especially @jofel who gave me the best, because almost working solution.

I did it also according to jofel's suggestion and in the output I can see addresses of sites I visited and it's even in very readable format - with markups, so searching for <a href> was enough to get a list of sites. It's hard to ensure if there is everything there but it seems to be not - just a great part of sites. It's a little illogical why only some part of sites and not all of them are stored there and where is the rest from the history list, but it's a detail.

Can I ask you about something else? How is it possible that the history is in core file generated with GDB and is not in /proc/kcore file? Could you or anyone explain me that, please?