From 1aa7b089c0d395bf5d9998e10b1c161f316d7421 Mon Sep 17 00:00:00 2001
From: ghidra1 The Active Project view shows your programs and datatype archives in a tree view or a
- table view. The tree view is useful for organizing your files into folders and sub-folders.
+ The Active Project view shows the various files associated with the current
+ project which has been open for update. Project files generally consist of programs and
+ datatype archives but may also be related to other Ghidra content.
+ The tree view is useful for organizing your files into folders and sub-folders.
The table view is useful for sorting all your files on some particular attribute such as
size, processor, or modification date. In either view, you open and perform various
actions on program files or datatype archives. The data tree shows all files in the project orgnanized into folders and sub-folders.
- Icons for files
- indicate whether they are under Icons for files indicate whether they are under version control and whether
you have the file checked out.
- Open this view by activating the "Tree View" tab.Active Project
-
Although Ghidra allows a folder and file within
+ the same parent folder to have the same name, it is recommended this be avoided if possible.
+ Allowing both a folder and file to have the same pathname can result in ambiguous path problems
+ when using link files and/or Ghidra URLs where only a path is used to identify either a project
+ resource.
+
To create a new folder,
You cannot create
- a sub-folder of a folder that you do not own.
++A Link may be created within the active project to a file or folder within the + same project (internal) or to a viewed project/repository (external). + Internal links may be defined using either a relative path or an absolute path. Once + a link is created its stored path will not change. The link will need to be replaced + should the referenced path need to be changed. In addition, file-links are specific + to the content-type of the referenced file at the time of link creation (e.g., + ProgramLink). +
+To create a Link use the following steps from the source project data tree:
++
+ +- Select a single file or folder, right mouse click and choose the Copy option.
+ +- Select a destination folder within the active project data tree.
+ +- Right mouse click and choose the Paste as Link or Paste as Relative-Link + option.
+See Create Linked Folder or File for more information + about links and creating external links. +
+ +An internal link in the project tree may indicate a "broken" status for + various reasons, including:
++
+- The referenced file or folder does not exist,
+- the content-type at the referenced location does not match the link type, or
+- a folder-link results in a circular path reference.
+A broken link will have an icon which conveys its type but with a jagged red line + through it and a tooltip which conveys the issue detected.
+ ++ +
External links will never show a broken + link state since they are not evaluated for such conditions.
@@ -182,7 +234,7 @@+ file that is in use or a folder that contains a file that is in use.
You cannot move a - file that is in use.
You cannot move a
+ file that is in use or a folder that contains a file that is in use.
If a folder or file
@@ -241,6 +296,24 @@
+Select the internal or external folder or file referenced by a selected link-file. + While internal folders may be expanded directly from a folder-link, following a link + to the actual referenced location may be useful at times. +
+ ++
+ +- + Select a file-link or folder-link, right mouse click and choose the Follow Link + option. The referenced file or folder will be selected if possible. If associated + with an external project or repository the selection will occur in a READ-ONLY + project view once opened.
+
@@ -421,9 +494,9 @@
-+
Ghidra URL Formats
+ +The format of a remote Ghidra Server URL is distinctly different from a + Local Ghidra Project URL. These URLs have the following formats:
+ +Remote Ghidra Server Repository
+ +
+++ ++
++ ++ ghidra://<hostname>[:<port>]/<repository_name>[/<folder_or_file_path>]If the default Ghidra Server port (13100) is in use it is not specified by the URL. + The hostname may specify either a Fully Qualified Domain Name (FQDN, e.g., + host.abc.com) or IP v4 Address (e.g., 1.2.3.4).
+ +Local Ghidra Project
+ +
+++ ++
++ ++ ghidra:[/<directory_path>]/<project_name>[?/<folder_or_file_path>]For local project URLs, the absolute directory path containing the project + *.gpr locator file is specified with the project name but excludes any .gpr/.rep suffix. + The folder or file path within the project is conveyed with a URL query so the '?' is required.
+
diff --git a/Ghidra/Features/Base/src/main/help/help/topics/FrontEndPlugin/images/AbsoluteBrokenFileLinkIcon.png b/Ghidra/Features/Base/src/main/help/help/topics/FrontEndPlugin/images/AbsoluteBrokenFileLinkIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb3254f074c5fc2b52684df09c023b682b65616 GIT binary patch literal 1540 zcmV+f2K)JmP)This feature allows you to create a folder or file link in your active project to a - corresponding folder or file within a read-only viewed project. - This is done using a Ghidra URL which references the - file in its local or remote storage location. If the viewed project corresponds to a - viewed repository a remote URL will be used, while other cases will refer to the - locally viewed project. It is possible for links to become broken if the referenced - repository, local project or file location are changed.
+ corresponding folder or file within your project or to a read-only viewed project. + External links are established using a Ghidra URL which references a + file or folder in its local or remote storage location. An external Ghidra URL will + be used if a link refers to a viewed project or repository. It is possible for internal links to + become broken if the referenced file or folder location has changed (e.g., no longers exists + or has the wrong content type). External links may become invalid for various reasons + but will not convey an issue until the link is used. The broken link icon does not apply + to external link files. + +To create an external folder or file link the following steps may be used:
-
- Select a single folder or file from a viewed READ-ONLY Project Data tree.
- Right mouse click on the selected tree node and choose the Copy option.
-- Select a destination folder in the active project tree.
-- Right mouse click on the folder and choose the Paste as Link option. -
+-
Currently, linked-file types are - currently limited to Program and Data Type Archive files - only. The Past as Link menu item will be disabled for - unsupported file content types or for other unsupported situations such as internal - linking within the same project.
- Select a destination folder in the active project data tree.
+- Right mouse click on the folder and choose the Paste as Link option.
A linked-file may be opened in a tool via the project window in the same fashion that +
It is important to note that the resulting link is always stored as a file within the + project. With the exception of external links to local project content, a link may be + added to version control so that it may be shared. Once added to version control it cannot + be checked-out, since they are immutable, however they can still be deleted.
+A file-link may be opened in a tool via the project window in the same fashion that a normal file is opened (e.g., double-left-mouse-click or drag-n-drop onto a tool box icon). Such a project file may also be opened within a Tool using its File->Open... action and selected from the resulting project file selection dilaog. - Clicking on a linked-folder in the active project window will open that location in a + Clicking on an external folder-link in the active project window will open that location in a READ-ONLY Project Data tree. The user may be prompted for a shared repository - connection password when accessing a linked folder or file.
-Within a project file chooser dialog a linked-folder may be expanded in a similar fashion + connection password when accessing an external folder or file link.
+Within a project file chooser dialog a folder-link may be expanded in a similar fashion to local folders provided any neccessary repository connection can be completed.
--
Add to Version Control... is supported - for repository folder and file links only and will be disabled for links to a - local project.
+
Currently, linked-files only provide access - to the latest file version and do not facilitate access to older file versions.
+
Currently, external file-links only provide access + to the latest file version and do not facilitate access to older file versions. An external + folder-link will allow access to file versions contained within such a folder. +
Some file chooser use cases, including the + GhidraScript API, are restricted to selecting files and folders within the active + project only and will hide all external links. +
The project window below shows a Program file-link "Program1" which is linked to the - same file in the viewed project. Hovering the mouse over a linked-file will show the URL - of the linked file or folder. The chain-link icon decoration indicates such a linked - file or folder.
+ same file in the viewed project.+ ![]()
A folder or file link will show its referenced location with either + same file in the viewed project.
+ +
t6l!mF#F6oWi1LW54kKoqrNAOes5_ELV
z!R3}2V&Bl+=EYm{@k>-sF&GeA4g= cpj2^7c-AU_83V1GJTm4HINDNahZ_%91`1Ci`Qp&{`$`#fP1pkp5vx
z{3ix9vp91_!ZL~~15YA_F+@;LepP6i1KJKcB$i%T4(m`Hc~q~zBPURbE9AS`7)@Is
zj%twGE3RO0B%{jP0fhkr#kC?ejGJlc8=prv+8AkQUF%a_ZC% 0(bD~T8u7+hSuUC|s&_4M&6yH+-3lL{m#gYCL!FssI8M+~f^t({h_xDPqpsG&>3
z(4Hr5!_$wg(XrY99Ik?m^4fPF^@NMk`R8@}?pQ?}I
z>8>IS1(cqi4z;zle7&x&j@US`pQWWG`1trhS67$7URqiTo}QlI?(PmvO-)c-TntW5
zPQ=#H(IN0HDJcOL7Z-?#h=A$oX+ayu;^HF2#>Rr3ogIXRhQi?BAm2t)US2L*t>|KF
zYYSSfmhC10pJ#mhaqci4j0@w#IN4lD<$xVi&X
U1nrb^H@IG@k#USmux*`FxC
zuBb-fVN`XBOH6G5Lu$L3?BKzJlAr7*#LJg2XJEN|Z*TAM
kW_2ddWuuz%@v`DZ)h=RS_F%h+vgk;2!z-lFAd|yVLxw
zwLrdCI#AiQi-Mzq4q_Pq4OeWs9^wF(7vYg*9qkg0$EL4YUKDFiCpL(j)oLULwp^ld
zO;J%n>cx7=Vf*}usi)vDf@f33nSpH+rb%Fmq8HrJ8JozZQreXei>r1quG1_;VQzp^
zPOGGCqbaFyMa%RY-7C7yY-dj+-k5;T&h@OH^wPTEjgWQ8Zno
z|6wF6nV_>;dbCz>2LoVK36Y`bld=BY$OB7yqVMK_^93$5mwx^&=f-;_nH5s4>syiQ
zd=^XAn~_v&u%!)md7`H-|MW~dTnV6;|3>xv-_lwySs-_{Dkm2#EH?T-j`>v&`tJ4v!8kQg#5=IDfj3okiY77c-ujtIcQplB=#An~>pPf;t
zD;j%p&ju$OO9$f*?)QKh7^jKEEKqbnCE2v+7g_Syw(w#TZZwx(9~k&x!o$%L(X==|
zWlED$KEHV%lSz++wtEDF64fhl(rsY0P3o4Os~9Tda90GLQ8|*-jOy&EgPh5#4z~#w
zQwb)hNw$}gxk?1&OlDtyI}Q1UIpMwrEsnjqE1g+gE{U~`F=gRdUAEbTM_yFb7ULeX
z#uE|b#52$SH98Hrjl}Qd{lSh^O|(!?ZK!aLb_nf-yiT)+Bo!FVoARFjczOmA$o
zO)=1~_hqg=Fr}rCjt~30jfClHAl64GFO2}!6e0dUgBH`{k~?z%*?z+hoT}a(I#@$
zjZB~l^z}Lx;PyHGb`YG3J3wlbK}fgEN?}!N=n#@A96xNa*xO0KPvlE%U?yGE+&YW`
zgSE7@pmGzvW-OP4L&zVTt;2gwW))WOxF1D;BP%%j{^VC+>E@H>#;M-tt2kL|R-F4%=
zVGF#k3GtW@m#40d@y++@?iU{!t=8jsqv=mH5y_N2%&bSt?0cJen{Pf&-o(HP(yK|}
z@~TSh$OsCFLcs>>GSvC2QH9td@T?y4oWUH7U;^5ttI7MIzc+j~T$4ItLmIJJoLibI
zR=W$k3Gii70D