Program, processing device, and method
Patent Information
- Application Number
- PCT/JP2024/008757
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-07
- Publication Date
- 2025-10-02
AI Technical Summary
Existing software inspection technologies struggle to efficiently understand process flows, making it difficult to improve the efficiency of software testing.
A program and processing device that displays target software with variables linked to endpoints of processing flows in a distinct mode, allowing easy identification of data flow and security-sensitive processes.
Enhances software inspection efficiency by clearly highlighting variables and endpoints, facilitating better understanding of process flows and security measures.
Smart Images

Figure JP2024008757_02102025_PF_FP_ABST
Abstract
Description
Program, processing device, and method
[0001] The present disclosure relates to a program, a processing device, and a method.
[0002] Japanese Patent Application Laid-Open No. 2006-124499 discloses a technique for displaying a file in a source code display area from a file path included in the attribute information of a selected variable when the variable is selected. The technique of Japanese Patent Application Laid-Open No. 2006-124499 highlights the location where the selected variable is written when displaying the file.
[0003] JP 2013-156786 A
[0004] When inspecting software, it is necessary to understand each process flow to be analyzed and the variables contained in each process flow. A process flow is a series of processes that are composed of information that indicates the dependencies between variables in the target software. A process flow includes a process that is the starting point of the process flow and a process that is the end point of the process flow.
[0005] However, although the technology of Patent Document 1 highlights selected variables in the displayed code, it may be difficult to easily understand the process flow that includes the highlighted variables, and therefore the technology of Patent Document 1 may not be able to improve the efficiency of software inspection.
[0006] An object of the present disclosure is to provide a program, a processing device, and a method that can improve the efficiency of software testing. It should be noted that this object is only one of multiple objects that the multiple embodiments disclosed in this specification aim to achieve. Other objects or problems and novel features will become apparent from the description of this specification or the accompanying drawings.
[0007] The program disclosed herein causes a processing device to perform a process including acquiring target software that includes code corresponding to a processing flow, and executing control to display part or all of the target software, together with information related to an endpoint of the processing flow, in a state in which variables in the target software that are linked to the endpoint are displayed in a first display mode and parts other than the variables are displayed in a second display mode that is different from the first display mode.
[0008] The processing device according to the present disclosure includes an acquisition unit that acquires target software including code corresponding to a processing flow, and a display control unit that executes control to display part or all of the target software together with information related to the endpoints of the processing flow, in a state in which variables in the target software linked to the endpoints are displayed in a first display mode and parts other than the variables are displayed in a second display mode that is different from the first display mode.
[0009] The method disclosed herein is a method executed by a processing device, and includes acquiring target software including code corresponding to a processing flow, and executing control to display part or all of the target software, together with information related to an endpoint of the processing flow, in a state in which variables in the target software linked to the endpoint are displayed in a first display mode and parts other than the variables are displayed in a second display mode different from the first display mode.
[0010] The present disclosure can provide a program, a processing device, and a method that can improve the efficiency of software testing.
[0011] 1 is a block diagram illustrating an example of a processing device of the present disclosure. FIG. 2 is a flowchart illustrating an example of processing operation of the processing device of the present disclosure. FIG. 3 is a block diagram illustrating another example of a processing device of the present disclosure. FIG. 4 is a flowchart illustrating an example of processing operation of the processing device of the present disclosure. FIG. 5 is a diagram illustrating an example of target software. FIG. 6 is a diagram illustrating an example of a processing flow. FIG. 7 is a diagram illustrating an example of a processing flow. FIG. 8 is a diagram illustrating another example of display selection control of the processing device of the present disclosure. FIG. 9 is a block diagram illustrating another example of a processing device of the present disclosure. FIG. 10 is a flowchart illustrating another example of processing operation of the processing device of the present disclosure. FIG. 11 is a diagram illustrating another example of display selection control of the processing device of the present disclosure. FIG. 12 is a block diagram illustrating another example of a processing device of the present disclosure. FIG. 13 is a diagram illustrating an example of display control of the processing device of the present disclosure. FIG. 14 is a diagram illustrating an example of display control of the processing device of the present disclosure.
[0012] Hereinafter, embodiments will be described with reference to the drawings. In this disclosure, the drawings may relate to one or more embodiments. Furthermore, each element in the drawings may apply to one or more embodiments. Furthermore, in the embodiments, identical or equivalent elements are given the same reference numerals, and redundant description will be omitted.
[0013] First Embodiment Configuration Example of Processing Device Fig. 1 is a block diagram showing an example of a processing device according to the present disclosure. In Fig. 1, a processing device 10 includes an acquisition unit 11 and a display control unit 12.
[0014] The acquisition unit 11 acquires target software (e.g., software to be inspected) that includes information related to a process flow. Here, a process flow refers to a series of processes configured by information indicating dependencies between variables in the target software. The process flow includes a process that is the starting point of the process flow and a process that is the end point of the process flow.
[0015] The display control unit 12 executes control to display part or all of the target software on a display device (not shown) together with "information related to the endpoints of the processing flow," with variables linked to the endpoints of the processing flow in the target software in a first display mode and portions other than the variables in a second display mode different from the first display mode. In other words, the display control unit 12 executes control to highlight variables linked to the endpoints of the processing flow in the target software by displaying them in a display mode different from portions other than the variables.
[0016] "Information related to the end point of a process flow" refers to one or both of information related to the starting point of a process flow and information related to the end point of a process flow. The starting point of a process flow may be a data entry process in the target software. This data entry process in the target software may be, for example, a process in which another software on the same server on which the target software is running relays communication from the Internet and passes data to the target software. Furthermore, this data entry process in the target software may be a process in which the target software obtains data from the Internet.
[0017] The end point of a process flow may also be a security-sensitive process. Here, a security-sensitive process refers to a process that could cause a vulnerability if executed carelessly. For example, a process that outputs an HTML document can be considered a security-sensitive process because it can cause a cross-site scripting vulnerability if data that has not been properly escaped is output. Alternatively, a process that issues an SQL query can be considered a security-sensitive process because it can cause an SQL injection vulnerability if the SQL query is issued without proper sanitization. Alternatively, a process that executes an arbitrary command can be considered a security-sensitive process because it can cause an arbitrary command execution vulnerability if the conditions for executing the process are not properly implemented.
[0018] The "information related to an endpoint of a process flow" may be information indicating a function corresponding to the endpoint of a process flow. The information indicating a function corresponding to the endpoint of a process flow may be, for example, the name of the function corresponding to the endpoint of the process flow.
[0019] Alternatively, the "information related to an endpoint of a process flow" may be information indicating a software portion that calls a function corresponding to an endpoint of a process flow. The information indicating a software portion that calls a function corresponding to an endpoint of a process flow may be, for example, a source file, a line number, a class, a function name, a code block, a statement, an instruction, an address, or any combination thereof, at the location where the function corresponding to the endpoint of the process flow is called.
[0020] Furthermore, the display control unit 12 may, for example, display "information related to the endpoints of the processing flow" before the target software (e.g., above a portion of the target software that corresponds to the starting point of the processing flow). Alternatively, the display control unit 12 may, for example, display "information related to the endpoints of the processing flow" after the target software (e.g., below a portion of the target software that corresponds to the end point of the processing flow). Alternatively, the display control unit 12 may, for example, display "information related to the endpoints of the processing flow" both before and after the target software.
[0021] Here, the process flow can be identified by an existing method for identifying a process flow. For example, an analysis unit (not shown) may hold a first list that holds candidate functions that are the starting point of the process flow and a second list that holds candidate functions that are the ending point of the process flow. The analysis unit (not shown) may then analyze the target software to identify the starting function and the ending function included in the target software, and identify the process flow by identifying the dependency relationships (data dependency, control dependency) between the starting function and the ending function. The acquisition unit 11 may acquire information about this identified process flow along with the target software.
[0022] <Example of Processing Device Operation> FIG. 2 is a flowchart showing an example of processing operation of the processing device of the present disclosure.
[0023] The acquisition unit 11 acquires the target software including the code corresponding to the processing flow (step S11).
[0024] The display control unit 12 executes control to display part or all of the acquired target software together with "information related to the end points of the processing flow" in a state in which variables linked to the end points of the processing flow in the acquired target software are displayed in a different manner from the display manner of parts other than the variables (step S12).
[0025] As described above, according to the first embodiment, the acquisition unit 11 acquires target software that includes code corresponding to a process flow in the processing device 10. The display control unit 12 executes control to display part or all of the target software together with information related to the endpoints of the process flow, in a state in which variables in the target software that are linked to the endpoints of the process flow are displayed in a first display mode and portions other than the variables are displayed in a second display mode that is different from the first display mode.
[0026] The configuration of the processing device 10 allows all variables associated with the beginning or end of a processing flow to be highlighted, thereby enabling a display that allows easy understanding of the data flow in the processing flow. As a result, the work efficiency of software inspectors can be improved. Furthermore, the configuration of the processing device 10 displays information related to the endpoints of the processing flow along with variables associated with the beginning or end of the processing flow, enabling a display that allows easy understanding of which processing flow the displayed variables are associated with. As a result, the work efficiency of software inspectors can be improved. In other words, the software inspection efficiency can be increased. For example, if the starting point of a processing flow is the input of data received from the Internet, this data must be properly sanitized. On the other hand, if data is read from a trusted file, sanitization is not as necessary. Or, for example, if the ending point of a processing flow is the output of an HTML document, escaping of HTML special characters is required within the processing flow. On the other hand, if the ending point of a processing flow is the issuance of an SQL query, countermeasures against SQL injection are required within the processing flow. The processing device 10 allows easy confirmation of these required processes and the actual implementation status.
[0027] Second Embodiment Configuration Example of Processing Device Fig. 3 is a block diagram showing another example of a processing device according to the present disclosure. In Fig. 3, a processing device 20 includes an acquisition unit 21, a display control unit 22, and a selection control unit 23.
[0028] The acquisition unit 21 acquires target software that includes a first code corresponding to a first process flow and a second code corresponding to a second process flow. That is, the acquisition unit 21 acquires target software that includes multiple codes that respectively correspond to multiple process flows. Note that, similar to the acquisition unit 11, the acquisition unit 21 may acquire information about the process flows identified by the analysis unit (not shown) along with the target software.
[0029] The display control unit 22 executes control to display part or all of the target software together with information related to the endpoint of the first process flow, in a state in which variables in the target software linked to the endpoint of the first process flow are in a first display mode and portions other than the variables are in a second display mode different from the first display mode. Furthermore, the display control unit 22 executes control to display part or all of the target software together with information related to the endpoint of the second process flow, in a state in which variables in the target software linked to the endpoint of the second process flow are in the first display mode and portions other than the variables are in the second display mode.
[0030] Here, the selection control unit 23 may execute control to display a "selection display" for selecting either displaying the variables linked to the endpoint of the first processing flow in the first display mode, or displaying the variables linked to the endpoint of the second processing flow in the first display mode.
[0031] For example, the selection display may include a "first selection button" for selecting to display variables linked to the endpoint of the first processing flow in the first display mode, and a "second selection button" for selecting to display variables linked to the endpoint of the second processing flow in the first display mode.
[0032] The selection control unit 23 may then execute control to display the first selection button and the second selection button on a display screen different from the display screen of the target software.
[0033] Then, the selection control unit 23 may notify the display control unit 22 whether the first selection button or the second selection button has been selected by the user.
[0034] The display control unit 22 may then display the target software in a manner that highlights the variables in the target software that are linked to the end points of the processing flow, along with information related to the end points of the processing flow that correspond to the selection button selected by the user.
[0035] <Example of Processing Device Operation> FIG. 4 is a flowchart showing an example of processing operation of the processing device of the present disclosure.
[0036] The acquisition unit 21 acquires target software including a first code corresponding to a first process flow and a second code corresponding to a second process flow (step S21).
[0037] Fig. 5A is a diagram showing an example of target software. Figs. 5B and 5C are diagrams showing examples of processing flows. The target software shown in Fig. 5A includes processing flow 1, which starts at the function "fgets" shown in Fig. 5B and ends at the function "system(buf1)", and processing flow 2, which starts at "read" and ends at the function "system(buf2)" shown in Fig. 5C.
[0038] 4, the selection control unit 23 executes control to display a first selection button and a second selection button on a display screen different from the display screen of the target software (step S22). The first selection button is a button for selecting to display variables linked to endpoints of the first process flow in the first display mode. The second selection button is a button for selecting to display variables linked to endpoints of the second process flow in the first display mode.
[0039] The selection control unit 23 waits until the user presses the first selection button or the second selection button (step S23 NO), and if the first selection button or the second selection button is pressed (step S23 YES), it notifies the display control unit 22 of the identification information of the processing flow corresponding to the pressed selection button (step S24).
[0040] The display control unit 22 displays part or all of the target software, highlighting the variables in the target software that are linked to the end points of the processing flow corresponding to the notified identification information, along with information related to the end points of the processing flow corresponding to the notified identification information (step S25).
[0041] 6 is a diagram illustrating an example of display selection control of the processing device of the present disclosure. For example, when the processing step of step S22 is executed, a screen such as that shown in the upper diagram of FIG. 6 is displayed. This screen displays a selection button labeled "read," which is the starting function of process flow 2 for selecting the above process flow 2, and a selection button labeled "fgets," which is the starting function of process flow 1 for selecting the above process flow 1.
[0042] For example, if the user presses the selection button labeled "fgets" corresponding to process flow 1, a screen like the one shown in the lower part of Figure 6 is displayed. This screen displays the target software, and above the target software, "variables propagated by fgets" is displayed as information related to the endpoint of process flow 1. This screen also highlights the variables linked to the endpoint of process flow 1.
[0043] As described above, according to the second embodiment, the acquisition unit 21 in the processing device 20 acquires target software including a first code corresponding to a first process flow and a second code corresponding to a second process flow. The display control unit 22 executes control to display part or all of the target software together with information related to the endpoints of the first process flow, with variables in the target software linked to the endpoints of the first process flow in a first display mode and portions other than the variables in a second display mode different from the first display mode. Furthermore, the display control unit 22 executes control to display part or all of the target software together with information related to the endpoints of the second process flow, with variables in the target software linked to the endpoints of the second process flow in the first display mode and portions other than the variables in the second display mode.
[0044] With this configuration of the processing device 20, the target software can be displayed with information related to the end points of the processing flow and variables linked to the end points of the processing flow in the target software highlighted for each processing flow contained in the target software.
[0045] In addition, the selection control unit 23 in the processing device 20 executes control to display a selection display for selecting either displaying the variables linked to the endpoint of the first processing flow in the first display mode, or displaying the variables linked to the endpoint of the second processing flow in the first display mode.
[0046] This configuration of the processing device 20 allows the user to select the processing flow for which variables are to be highlighted.
[0047] In the above description, two end points, namely, the end point of the first process flow and the end point of the second process flow, have been used as an example, but this is not limiting. That is, the number of end points of the process flow may be three or more. In this case, the same can be said about any two end points of the three or more process flows as about the end points of the first process flow and the end point of the second process flow.
[0048] <Modification of the Second Embodiment> FIG. 7 is a diagram illustrating another example of display selection control of the processing device of the present disclosure. In the example display screen shown in FIG. 7 , for example, when the processing step S22 is executed, a screen such as that shown in the left diagram of FIG. 7 is displayed. On this screen, a selection button (radio button) for process flow 1 is displayed next to information related to the endpoint of process flow 1 (i.e., "Display variables propagated by fgets"). Also, on this screen, a selection button (radio button) for process flow 2 is displayed next to information related to the endpoint of process flow 2 (i.e., "Display variables propagated by read"). That is, in this example, the selection control unit 23 executes control to display a first selection button and a second selection button on the same display screen as the target software. Note that, as shown in this example screen, the selection button (radio button) for process flow 2 may be automatically selected. At this time, the variables associated with the endpoint of process flow 2 are highlighted.
[0049] That is, when the processing step of step S22 is executed, a screen such as that shown in the left diagram of Fig. 6 is displayed. Then, the selection control unit 23 first automatically selects the selection button (radio button) for process flow 2. Then, in step S24, the selection control unit 23 notifies the display control unit 22 of the identification information for process flow 2. In step S25, the display control unit 22 displays the target software with the variables linked to the endpoints of process flow 2 in the target software highlighted.
[0050] When the user presses the selection button (radio button) for process flow 1, the selection control unit 23 notifies the display control unit 22 of the identification information for process flow 1. Then, in step S24, the selection control unit 23 notifies the display control unit 22 of the identification information for process flow 1. In step S25, the display control unit 22 displays the target software with the variables linked to the endpoints of process flow 1 in the target software highlighted.
[0051] In the above description, two end points, namely, the end point of the first process flow and the end point of the second process flow, have been used as an example, but this is not limiting. That is, the number of end points of the process flow may be three or more. In this case, the same can be said about any two end points of the three or more process flows as about the end points of the first process flow and the end point of the second process flow.
[0052] Third Embodiment Fig. 8 is a block diagram showing another example of a processing device according to the present disclosure. In Fig. 8, a processing device 30 includes an acquisition unit 31, a display control unit 32, and a selection control unit 33.
[0053] Similar to the acquisition unit 21, the acquisition unit 31 acquires target software including a first code corresponding to a first process flow and a second code corresponding to a second process flow. That is, the acquisition unit 31 acquires target software including a plurality of codes corresponding to a plurality of process flows. Similarly to the acquisition unit 21, the acquisition unit 31 may acquire information about the process flow identified by the analysis unit (not shown) along with the target software. Here, the information about the process flow acquired by the acquisition unit 31 may further include information indicating in which function each process in the process flow is implemented.
[0054] The selection control unit 33, like the selection control unit 23, controls the display of a "selection display" for selecting either displaying variables linked to endpoints of the first process flow in a first display mode or displaying variables linked to endpoints of the second process flow in a first display mode. Specifically, the selection display controlled by the selection control unit 33 includes one or more first selection buttons corresponding to one or more functions linked to endpoints of the first process flow and one or more second selection buttons corresponding to one or more functions linked to endpoints of the second process flow. The one or more functions linked to endpoints of the first process flow are, in short, one or more functions corresponding to the first process flow. Furthermore, the one or more functions linked to endpoints of the second process flow are, in short, one or more functions corresponding to the second process flow. The selection control unit 33 may also control the display of one or more first selection buttons and one or more second selection buttons on a display screen different from the display screen of the target software.
[0055] Then, the selection control unit 23 may notify the display control unit 22 which of the one or more first selection buttons and the one or more second selection buttons has been selected by the user.
[0056] The display control unit 22 may then display the target software in a manner that highlights the variables of the combination of the processing flow and functions corresponding to the selection button selected by the user, along with information related to the end points of the processing flow corresponding to the selection button selected by the user.
[0057] <Example of Processing Device Operation> FIG. 9 is a flowchart showing another example of the processing device operation of the present disclosure.
[0058] The acquisition unit 31 acquires target software including a first code corresponding to the first process flow and a second code corresponding to the second process flow (step S31). Here, the target software is assumed to be the software shown in FIG. 5A.
[0059] The selection control unit 33 executes control to display, on a display screen different from the display screen of the target software, one or more first selection buttons each corresponding to one or more functions linked to the endpoints of the first processing flow, and one or more second selection buttons each corresponding to one or more functions linked to the endpoints of the second processing flow (step S32).
[0060] The selection control unit 33 waits until the user presses the first selection button or the second selection button (step S33 NO), and if the first selection button or the second selection button is pressed (step S33 YES), it notifies the display control unit 32 of the identification information of the combination of processing flow and function corresponding to the pressed selection button (step S34).
[0061] The display control unit 32 displays part or all of the target software with the variables of the combination of the processing flow and function corresponding to the notified identification information highlighted, along with information related to the endpoint of the processing flow corresponding to the notified identification information (step S35).
[0062] 10 is a diagram illustrating another example of display selection control of the processing device of the present disclosure. For example, when the processing step of step S32 is executed, a screen such as that shown in the left diagram of FIG. 10 is displayed. This screen displays one or more selection buttons for selecting one or more functions of the above-mentioned process flow 2 (i.e., three selection buttons corresponding to the functions "func3," "func1," and "func4" respectively, which are associated with the starting function "read" of process flow 2). Furthermore, this screen displays one or more selection buttons for selecting one or more functions of the above-mentioned process flow 1 (i.e., three selection buttons corresponding to the functions "func2," "func1," and "func4" respectively, which are associated with the starting function "fgets" of process flow 1).
[0063] For example, when the user presses the selection button labeled "func1" associated with "fgets" in process flow 1, a screen like the one shown on the right in Figure 10 is displayed. This screen displays the target software, and above the target software, "variables propagated from fgets" is displayed as information related to the endpoint of process flow 1. This screen also highlights the variables of "func1" associated with "fgets" in process flow 1.
[0064] As described above, according to the third embodiment, the selection control unit 33 in the processing device 30 executes control to display one or more first selection buttons each corresponding to one or more functions linked to the endpoints of the first processing flow, and one or more second selection buttons each corresponding to one or more functions linked to the endpoints of the second processing flow.
[0065] This configuration of the processing device 30 allows the user to select the processing flow for which variables are to be highlighted, and also allows the user to select the variables to be highlighted on a function-by-function basis.
[0066] Although the above description has been given of an example in which selection buttons corresponding to functions are displayed, the present disclosure is not limited to this. For example, instead of functions, selection buttons corresponding to any unit, such as source files, classes, subroutines, code blocks, statements, or commands, may be displayed. When a selection button is pressed, the target software for the unit corresponding to the selection button may be displayed, and variables associated with the endpoint of the process flow corresponding to the selection button may be highlighted. Furthermore, the process flow information may include information indicating where each process in the process flow is implemented, expressed by any of these units instead of functions.
[0067] In the above description, two end points, namely, the end point of the first process flow and the end point of the second process flow, have been used as an example, but this is not limiting. That is, the number of end points of the process flow may be three or more. In this case, the same can be said about any two end points of the three or more process flows as about the end points of the first process flow and the end point of the second process flow.
[0068] Fourth Embodiment Fig. 11 is a block diagram showing another example of a processing device according to the present disclosure. In Fig. 11, a processing device 40 includes an acquisition unit 41 and a display control unit 42.
[0069] The acquisition unit 41 acquires target software including code corresponding to a processing flow, similar to the acquisition unit 11. Note that, similar to the acquisition unit 11, the acquisition unit 41 may acquire information related to the processing flow identified by an analysis unit (not shown) together with the target software.
[0070] Similar to the display control unit 12, the display control unit 42 controls the display of part or all of the target software on a display device (not shown) in a state in which variables linked to end points of the processing flow in the target software are displayed in a first display mode and parts other than the variables are displayed in a second display mode that is different from the first display mode.
[0071] Here, when the target software includes multiple variables linked to the end points of the process flow, the display control unit 42 executes control to display information related to the end points of the process flow in association with each variable.
[0072] 12 is a diagram illustrating an example of display control of the processing device of the present disclosure. As shown in FIG. 12, the display control unit 42 may display information related to the endpoints of the processing flows corresponding to each variable in a row of each variable associated with an endpoint of each processing flow of the target software displayed on the display screen. In the example shown in FIG. 12, information related to the endpoints of the processing flows is displayed in a remarks column.
[0073] As described above, according to the fourth embodiment, the acquisition unit 41 in the processing device 40 acquires target software that includes information corresponding to a process flow. The display control unit 42 executes control to display part or all of the target software on a display device (not shown) in a state in which variables linked to endpoints of the process flow in the target software are displayed in a first display mode and portions other than the variables are displayed in a second display mode that is different from the first display mode. Furthermore, when the target software includes multiple variables linked to endpoints of the process flow, the display control unit 42 executes control to display information related to the endpoints of the process flow in association with each variable.
[0074] The configuration of this processing device 40 makes it possible to highlight all variables linked to the beginning or end of a process flow, thereby realizing a display that allows easy understanding of the data flow in the process flow. As a result, the work efficiency of software inspectors can be improved. Furthermore, the configuration of this processing device 40 displays information related to the endpoints of the process flow along with variables linked to the beginning or end of the process flow, thereby realizing a display that allows easy understanding of which process flow the displayed variables are related to. As a result, the work efficiency of software inspectors can be improved. In other words, the efficiency of software inspection can be increased.
[0075] 13 is a diagram illustrating another example of display control of the processing device of the present disclosure. The display control unit 42 may control the display of information related to the endpoints of the processing flow corresponding to each variable as an annotation for each variable after each variable in the target software displayed on the display screen.
[0076] 14 is a diagram illustrating another example of display control of the processing device of the present disclosure. The display control unit 42 may associate each variable in the target software displayed on the display screen with information related to the endpoint of the process flow corresponding to the variable, and may perform control such that the information related to the endpoint of the process flow corresponding to the specified variable is displayed around a variable specified by a pointer.
[0077] <Third Modification of Fourth Embodiment> The processing device 40 may have the selection control unit 23 or the selection control unit 33. In this case, the display control unit 42 may perform display control for the selected process flow or for the selected combination of the process flow and the function.
[0078] <Other embodiments> <1> The target software may be composed of one or more source files, or may be composed of executable binaries, bytecodes, intermediate codes, scripts, or a combination of these.
[0079] <2> The target software to be displayed on the screen may be source code, a decompiled result, a disassembled result, bytecode, intermediate code, a script, or a combination of these.
[0080] <3> When a variable linked to a processing flow is a structure or a class instance, the member variable linked to the processing flow may be further emphasized or annotated in the structure or class instance.
[0081] <4> When the variable linked to the processing flow is an array, the subscript linked to the processing flow may be further emphasized or annotated.
[0082] <5> Figure 15 is a diagram showing an example of the configuration of a processing device. In Figure 15, the processing device 100 has a processor 101 and a memory 102. The processor 101 may be, for example, a microprocessor, a micro processing unit (MPU), or a central processing unit (CPU). The processor 101 may include multiple processors. The memory 102 is configured by a combination of volatile memory and non-volatile memory. The memory 102 may include storage located away from the processor 101. In this case, the processor 101 may access the memory 102 via an I (Input) / O (Output) interface (not shown).
[0083] The processing devices 10, 20, 30, and 40 of the first to fourth embodiments may each have the configuration shown in FIG. 15 . The acquisition units 11, 21, 31, and 41, the display control units 12, 22, 32, and 42, and the selection control units 23 and 33 of the processing devices 10, 20, 30, and 40 of the first to fourth embodiments may be realized by the processor 101 reading and executing a program stored in the memory 102. That is, the processing devices 10, 20, 30, and 40 of the first to fourth embodiments may be realized by software. The program can be stored using various types of non-transitory computer-readable media and supplied to the processing devices 10, 20, 30, and 40. Examples of non-transitory computer-readable media include magnetic recording media (e.g., flexible disks, magnetic tapes, and hard disk drives) and magneto-optical recording media (e.g., magneto-optical disks). Further examples of non-transitory computer-readable media include CD-ROMs (Read Only Memory), CD-Rs, and CD-R / Ws. Further examples of non-transitory computer-readable media include semiconductor memories. Semiconductor memories include, for example, mask ROMs, programmable ROMs (PROMs), erasable PROMs (EPROMs), flash ROMs, and random access memories (RAMs). The program may also be provided to the processing devices 10, 20, 30, and 40 by various types of transitory computer-readable media. Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves. The transitory computer-readable media may provide the program to the processing devices 10, 20, 30, and 40 via wired communication paths such as electrical wires and optical fibers, or wireless communication paths.
[0084] Alternatively, the acquisition units 11, 21, 31, and 41, the display control units 12, 22, 32, and 42, and the selection control units 23 and 33 of the processing devices 10, 20, 30, and 40 of the first to fourth embodiments may each be realized by dedicated hardware. Furthermore, some or all of the components of each device may be realized by general-purpose or dedicated circuits, processors, etc., or a combination thereof. These may be configured by a single chip or by multiple chips connected via a bus. Some or all of the components of each device may be realized by a combination of the above-mentioned circuits, etc., and a program. Furthermore, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an FPGA (Field-Programmable Gate Array), a quantum processor (quantum computer control chip), etc., may be used as the processor.
[0085] Furthermore, when some or all of the components of the processing devices 10, 20, 30, and 40 of the first to fourth embodiments are realized by multiple information processing devices, circuits, etc., the multiple information processing devices, circuits, etc. may be centrally or distributed. For example, the information processing devices, circuits, etc. may be realized as a client-server system, a cloud computing system, or the like, in which they are connected via a communication network. Furthermore, the functions of the processing devices 10, 20, 30, and 40 of the first to fourth embodiments may be provided in a Software as a Service (SaaS) format.
[0086] Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the above. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the invention. Furthermore, each embodiment can be combined with other embodiments as appropriate.
[0087] Each drawing is merely an example for describing one or more embodiments. Each drawing may not relate to only one particular embodiment, but may also relate to one or more other embodiments. As will be understood by those skilled in the art, various features or steps described with reference to any one drawing can be combined with features or steps shown in one or more other drawings to create, for example, an embodiment not explicitly shown or described. Not all features or steps shown in any one drawing are necessary to describe an exemplary embodiment, and some features or steps may be omitted. The order of steps described in any drawing may be changed as appropriate.
[0088] Some or all of the above embodiments can be described as, but are not limited to, the following supplementary notes. (Supplementary Note 1) A program that causes a processing device to execute a process including: acquiring target software including code corresponding to a processing flow; and executing control to display part or all of the target software, together with information related to an endpoint of the processing flow, in a state in which variables in the target software linked to the endpoint are displayed in a first display mode and portions other than the variables are displayed in a second display mode different from the first display mode. (Supplementary Note 2) The program according to Supplementary Note 1, wherein the information related to the endpoint of the processing flow is one or both of information related to the starting point of the processing flow and information related to the endpoint of the processing flow. (Supplementary Note 3) The program according to Supplementary Note 2, wherein the starting point of the processing flow is a data input process, and the endpoint of the processing flow is a security-sensitive process. (Supplementary Note 4) The program according to any one of Supplements 1 to 3, wherein the information related to the endpoint of the processing flow is information indicating a function corresponding to the endpoint. (Supplementary Note 5) The program according to Supplementary Note 4, wherein the information indicating a function corresponding to the endpoint is a name of the function corresponding to the endpoint. (Supplementary Note 6) The program according to any one of Supplementary Notes 1 to 3, wherein the information related to an endpoint of the processing flow is information indicating a software part that calls the function corresponding to the endpoint. (Supplementary Note 7) The program according to Supplementary Note 6, wherein the information indicating a software part that calls the function corresponding to the endpoint is a code part corresponding to the software part, an address of the software part, or a name of a function corresponding to the software part.(Supplementary Note 8) The program according to Supplementary Note 1, wherein the target software includes first code corresponding to a first process flow and second code corresponding to a second process flow, and executing control to display the target software includes: executing control to display part or all of the target software, together with information related to an endpoint of the first process flow, in a state in which variables in the target software linked to the endpoint of the first process flow are in a first display mode and a portion other than the variables are in a second display mode different from the first display mode, and executing control to display part or all of the target software, together with information related to an endpoint of the second process flow, in a state in which variables in the target software linked to the endpoint of the second process flow are in the first display mode and a portion other than the variables are in the second display mode. (Supplementary Note 9) The program according to Supplementary Note 8, wherein the processing further includes executing control to display a selection display for selecting either displaying variables linked to the endpoint of the first process flow in the first display mode or displaying variables linked to the endpoint of the second process flow in the first display mode. (Supplementary Note 10) The program according to Supplementary Note 9, wherein the selection display includes a first selection button for selecting to display variables associated with an endpoint of the first process flow in the first display mode, and a second selection button for selecting to display variables associated with an endpoint of the second process flow in the first display mode. (Supplementary Note 11) The program according to Supplementary Note 10, wherein executing control to display the selection display includes executing control to display the first selection button and the second selection button on a display screen different from a display screen of the target software. (Supplementary Note 12) The program according to Supplementary Note 10, wherein executing control to display the selection display includes executing control to display the first selection button and the second selection button on the same display screen as the target software. (Supplementary Note 13) The program according to Supplementary Note 9, wherein the selection display includes one or more first selection buttons corresponding to one or more functions associated with an endpoint of the first process flow, and one or more second selection buttons corresponding to one or more functions associated with an endpoint of the second process flow.(Supplementary Note 14) The program according to Supplementary Note 13, wherein executing control to display the selection display includes executing control to display the one or more first selection buttons and the one or more second selection buttons on a display screen different from the display screen of the target software. (Supplementary Note 15) The program according to Supplementary Note 1, wherein executing control to display the target software includes executing control to display information related to an endpoint of the process flow before or after the target software. (Supplementary Note 16) The program according to Supplementary Note 1, wherein executing control to display the target software includes executing control to display information related to the endpoint of the process flow in association with each variable when the target software includes multiple variables linked to the endpoint. (Supplementary Note 17) A processing device comprising: an acquisition unit that acquires target software including code corresponding to a process flow; and a display control unit that executes control to display part or all of the target software, together with information related to the endpoint of the process flow, with variables in the target software linked to the endpoint in a first display mode and parts other than the variables in a second display mode different from the first display mode. (Supplementary Note 18) The processing device according to Supplementary Note 17, wherein the information related to an endpoint of the processing flow is one or both of information related to a starting point of the processing flow and information related to an endpoint of the processing flow. (Supplementary Note 19) The processing device according to Supplementary Note 18, wherein the starting point of the processing flow is a data input process, and the endpoint of the processing flow is a security-sensitive process. (Supplementary Note 20) The processing device according to any one of Supplements 17 to 19, wherein the information related to an endpoint of the processing flow is information indicating a function corresponding to the endpoint. (Supplementary Note 21) The processing device according to Supplementary Note 20, wherein the information indicating a function corresponding to the endpoint is a name of the function corresponding to the endpoint. (Supplementary Note 22) The processing device according to any one of Supplements 17 to 19, wherein the information related to an endpoint of the processing flow is information indicating a software part that calls a function corresponding to the endpoint.(Supplementary Note 23) The processing device according to Supplementary Note 22, wherein the information indicating a software portion that calls a function corresponding to the endpoint is a code portion corresponding to the software portion, an address of the software portion, or a name of a function corresponding to the software portion. (Supplementary Note 24) The processing device according to Supplementary Note 17, wherein the target software includes first code corresponding to a first process flow and second code corresponding to a second process flow, and the display control unit executes control to display part or all of the target software together with information related to the endpoint of the first process flow, in a state in which variables in the target software linked to the endpoint of the first process flow are in a first display mode and parts other than the variables are in a second display mode different from the first display mode, and executes control to display part or all of the target software together with information related to the endpoint of the second process flow, in a state in which variables in the target software linked to the endpoint of the second process flow are in the first display mode and parts other than the variables are in the second display mode. (Supplementary Note 25) The processing device according to Supplementary Note 24, further comprising a selection control unit that executes control to display a selection display for selecting either displaying variables associated with an endpoint of the first process flow in the first display mode or displaying variables associated with an endpoint of the second process flow in the first display mode. (Supplementary Note 26) The processing device according to Supplementary Note 25, wherein the selection display includes a first selection button for selecting displaying variables associated with an endpoint of the first process flow in the first display mode, and a second selection button for selecting displaying variables associated with an endpoint of the second process flow in the first display mode. (Supplementary Note 27) The processing device according to Supplementary Note 26, wherein the selection control unit executes control to display the first selection button and the second selection button on a display screen different from a display screen of the subject software. (Supplementary Note 28) The processing device according to Supplementary Note 26, wherein the selection control unit executes control to display the first selection button and the second selection button on the same display screen as the subject software.(Supplementary Note 29) The processing device according to Supplementary Note 25, wherein the selection display includes one or more first selection buttons corresponding to one or more functions linked to endpoints of the first process flow, and one or more second selection buttons corresponding to one or more functions linked to endpoints of the second process flow. (Supplementary Note 30) The processing device according to Supplementary Note 29, wherein the selection control unit executes control to display the one or more first selection buttons and the one or more second selection buttons on a display screen different from the display screen of the target software. (Supplementary Note 31) The processing device according to Supplementary Note 17, wherein the display control unit displays information related to the endpoints of the process flow before or after the target software. (Supplementary Note 32) The processing device according to Supplementary Note 17, wherein, when the target software includes multiple variables linked to the endpoints, the display control unit displays information related to the endpoints of the process flow in association with each variable. (Supplementary Note 33) A method executed by a processing device, comprising: acquiring target software including code corresponding to a processing flow; and executing control to display part or all of the target software, together with information related to an endpoint of the processing flow, in a state in which variables in the target software linked to the endpoint are displayed in a first display mode and portions other than the variables are displayed in a second display mode different from the first display mode. (Supplementary Note 34) The method according to Supplementary Note 33, wherein the information related to the endpoint of the processing flow is one or both of information related to the starting point of the processing flow and information related to the endpoint of the processing flow. (Supplementary Note 35) The method according to Supplementary Note 34, wherein the starting point of the processing flow is a data entry process, and the endpoint of the processing flow is a security-sensitive process. (Supplementary Note 36) The method according to any one of Supplements 33 to 35, wherein the information related to the endpoint of the processing flow is information indicating a function corresponding to the endpoint. (Supplementary Note 37) The method according to Supplementary Note 36, wherein the information indicating a function corresponding to the endpoint is the name of the function corresponding to the endpoint. (Supplementary Note 38) The method according to any one of Supplementary Notes 33 to 35, wherein the information related to an endpoint of the processing flow is information indicating a software part that calls a function corresponding to the endpoint.(Supplementary Note 39) The method according to Supplementary Note 38, wherein the information indicating a software portion that calls a function corresponding to the endpoint is a code portion corresponding to the software portion, an address of the software portion, or a name of a function corresponding to the software portion. (Supplementary Note 40) The method according to Supplementary Note 33, wherein the target software includes first code corresponding to a first process flow and second code corresponding to a second process flow, and executing control to display the target software includes: executing control to display part or all of the target software, together with information related to the endpoint of the first process flow, in a state in which variables in the target software linked to the endpoint of the first process flow are in a first display mode and portions other than the variables are in a second display mode different from the first display mode; and executing control to display part or all of the target software, together with information related to the endpoint of the second process flow, in a state in which variables in the target software linked to the endpoint of the second process flow are in the first display mode and portions other than the variables are in the second display mode. (Supplementary Note 41) The method according to Supplementary Note 40, further comprising executing control to display a selection display for selecting either displaying variables associated with an endpoint of the first process flow in the first display mode, or displaying variables associated with an endpoint of the second process flow in the first display mode. (Supplementary Note 42) The method according to Supplementary Note 41, wherein the selection display includes a first selection button for selecting displaying variables associated with an endpoint of the first process flow in the first display mode, and a second selection button for selecting displaying variables associated with an endpoint of the second process flow in the first display mode. (Supplementary Note 43) The method according to Supplementary Note 42, wherein executing control to display the selection display includes executing control to display the first selection button and the second selection button on a display screen different from the display screen of the target software. (Supplementary Note 44) The method of Supplementary Note 42, wherein executing control to display the selection display includes executing control to display the first selection button and the second selection button on the same display screen as the target software.(Supplementary Note 45) The method according to Supplementary Note 41, wherein the selection display includes one or more first selection buttons corresponding to one or more functions linked to endpoints of the first process flow, and one or more second selection buttons corresponding to one or more functions linked to endpoints of the second process flow. (Supplementary Note 46) The method according to Supplementary Note 45, wherein executing control to display the selection display includes executing control to display the one or more first selection buttons and the one or more second selection buttons on a display screen different from the display screen of the target software. (Supplementary Note 47) The method according to Supplementary Note 33, wherein executing control to display the target software includes executing control to display information related to the endpoints of the process flow before or after the target software. (Supplementary Note 48) The method according to Supplementary Note 33, wherein executing control to display the target software includes, when the target software includes multiple variables linked to the endpoints, executing control to display information related to the endpoints of the process flow in association with each variable.
[0089] REFERENCE SIGNS LIST 10 Processing device 11 Acquisition unit 12 Display control unit 20 Processing device 21 Acquisition unit 22 Display control unit 23 Selection control unit 30 Processing device 31 Acquisition unit 32 Display control unit 33 Selection control unit 40 Processing device 41 Acquisition unit 42 Display control unit
Claims
1. A program that causes a processing device to execute a process including: acquiring target software that includes code corresponding to a processing flow; and executing control to display part or all of the target software, together with information related to the endpoints of the processing flow, in a state in which variables in the target software linked to the endpoints are displayed in a first display mode and parts other than the variables are displayed in a second display mode that is different from the first display mode.
2. The program according to claim 1, wherein the information relating to the end point of the process flow is one or both of information relating to the start point of the process flow and information relating to the end point of the process flow.
3. The program according to claim 2, wherein the starting point of the processing flow is a data input process, and the ending point of the processing flow is a security-sensitive process.
4. The program according to any one of claims 1 to 3, wherein the information relating to the end points of the processing flow is information indicating a function corresponding to the end point.
5. The program according to claim 4, wherein the information indicating the function corresponding to the endpoint is the name of the function corresponding to the endpoint.
6. The program according to any one of claims 1 to 3, wherein the information relating to the end point of the processing flow is information indicating a software part that calls a function corresponding to the end point.
7. The program according to claim 6, wherein the information indicating the software portion that calls the function corresponding to the endpoint is a code portion corresponding to the software portion, an address of the software portion, or a name of a function corresponding to the software portion.
8. The program of claim 1, wherein the target software includes first code corresponding to a first processing flow and second code corresponding to a second processing flow, and executing control to display the target software includes: executing control to display part or all of the target software, together with information related to an endpoint of the first processing flow, in a state in which variables in the target software linked to the endpoint of the first processing flow are in a first display mode and parts other than the variables are in a second display mode different from the first display mode; and executing control to display part or all of the target software, together with information related to an endpoint of the second processing flow, in a state in which variables in the target software linked to the endpoint of the second processing flow are in the first display mode and parts other than the variables are in the second display mode.
9. The program described in claim 8, wherein the processing further includes executing control to display a selection display for selecting either displaying variables linked to the endpoint of the first processing flow in the first display format or displaying variables linked to the endpoint of the second processing flow in the first display format.
10. The program described in claim 9, wherein the selection display includes a first selection button for selecting to display variables linked to the endpoint of the first processing flow in the first display format, and a second selection button for selecting to display variables linked to the endpoint of the second processing flow in the first display format.
11. The program according to claim 10, wherein executing control to display the selection display includes executing control to display the first selection button and the second selection button on a display screen different from the display screen of the target software.
12. The program according to claim 10, wherein executing control to display the selection display includes executing control to display the first selection button and the second selection button on the same display screen as the target software.
13. The program described in claim 9, wherein the selection display includes one or more first selection buttons each corresponding to one or more functions linked to an end point of the first processing flow, and one or more second selection buttons each corresponding to one or more functions linked to an end point of the second processing flow.
14. The program of claim 13, wherein executing control to display the selection display includes executing control to display the one or more first selection buttons and the one or more second selection buttons on a display screen different from the display screen of the target software.
15. The program according to claim 1, wherein executing control to display the target software includes executing control to display information related to an endpoint of the processing flow before or after the target software.
16. The program of claim 1, wherein executing control to display the target software includes, when the target software includes multiple variables linked to the endpoint, executing control to display information related to the endpoint of the processing flow in association with each variable.
17. A processing device comprising: an acquisition unit that acquires target software including code corresponding to a processing flow; and a display control unit that executes control to display part or all of the target software together with information related to the endpoints of the processing flow, in a state in which variables in the target software linked to the endpoints are displayed in a first display mode and parts other than the variables are displayed in a second display mode different from the first display mode.
18. The processing device according to claim 17, wherein the information relating to the end point of the process flow is one or both of information relating to the start point of the process flow and information relating to the end point of the process flow.
19. The processing device according to claim 18, wherein the starting point of the processing flow is a data input process, and the ending point of the processing flow is a security-sensitive process.
20. The processing device according to any one of claims 17 to 19, wherein the information relating to the end points of the processing flow is information indicating a function corresponding to the end point.
21. The processing device according to claim 20, wherein the information indicating the function corresponding to the endpoint is the name of the function corresponding to the endpoint.
22. The processing device according to any one of claims 17 to 19, wherein the information relating to the endpoint of the processing flow is information indicating a software portion that calls a function corresponding to the endpoint.
23. The processing device according to claim 22, wherein the information indicating the software portion that calls the function corresponding to the endpoint is a code portion corresponding to the software portion, an address of the software portion, or a name of a function corresponding to the software portion.
24. The processing device according to claim 17, wherein the target software includes first code corresponding to a first processing flow and second code corresponding to a second processing flow, and the display control unit executes control to display part or all of the target software together with information related to an endpoint of the first processing flow, in a state in which variables in the target software linked to the endpoint of the first processing flow are in a first display mode and parts other than the variables are in a second display mode different from the first display mode, and executes control to display part or all of the target software together with information related to an endpoint of the second processing flow, in a state in which variables in the target software linked to the endpoint of the second processing flow are in the first display mode and parts other than the variables are in the second display mode.
25. A processing device according to claim 24, further comprising a selection control unit that executes control to display a selection display for selecting either displaying variables linked to an end point of the first processing flow in the first display format or displaying variables linked to an end point of the second processing flow in the first display format.
26. A processing device as described in claim 25, wherein the selection display includes a first selection button for selecting to display variables linked to an end point of the first processing flow in the first display format, and a second selection button for selecting to display variables linked to an end point of the second processing flow in the first display format.
27. The processing device according to claim 26, wherein the selection control unit executes control to display the first selection button and the second selection button on a display screen different from the display screen of the target software.
28. The processing device according to claim 26, wherein the selection control unit executes control to display the first selection button and the second selection button on the same display screen as the target software.
29. A processing device as described in claim 25, wherein the selection display includes one or more first selection buttons each corresponding to one or more functions linked to an end point of the first processing flow, and one or more second selection buttons each corresponding to one or more functions linked to an end point of the second processing flow.
30. A processing device according to claim 29, wherein the selection control unit executes control to display the one or more first selection buttons and the one or more second selection buttons on a display screen different from the display screen of the target software.
31. The processing device according to claim 17, wherein the display control unit displays information related to the end point of the processing flow before or after the target software.
32. The processing device according to claim 17, wherein, when the target software includes multiple variables linked to the endpoint, the display control unit displays information related to the endpoint of the processing flow in association with each variable.
33. A method executed by a processing device, comprising: acquiring target software containing code corresponding to a processing flow; and executing control to display part or all of the target software, together with information related to an endpoint of the processing flow, in a state in which variables in the target software linked to the endpoint are displayed in a first display mode and parts other than the variables are displayed in a second display mode different from the first display mode.
34. The method of claim 33, wherein the information relating to the end point of the process flow is one or both of information relating to the start point of the process flow and information relating to the end point of the process flow.
35. The method of claim 34, wherein the process flow starts at a data entry process and the process flow ends at a security-sensitive process.
36. A method according to any one of claims 33 to 35, wherein the information relating to the end points of the processing flow is information indicating a function corresponding to the end point.
37. The method according to claim 36, wherein the information indicating the function corresponding to the endpoint is the name of the function corresponding to the endpoint.
38. A method according to any one of claims 33 to 35, wherein the information relating to the end point of the processing flow is information indicating a software part that calls a function corresponding to the end point.
39. The method according to claim 38, wherein the information indicating the software portion that calls the function corresponding to the endpoint is a code portion corresponding to the software portion, an address of the software portion, or a name of a function corresponding to the software portion.
40. The method of claim 33, wherein the target software includes first code corresponding to a first processing flow and second code corresponding to a second processing flow, and executing control to display the target software includes: executing control to display part or all of the target software, together with information related to an endpoint of the first processing flow, in a state in which variables in the target software linked to the endpoint of the first processing flow are in a first display mode and portions other than the variables are in a second display mode different from the first display mode; and executing control to display part or all of the target software, together with information related to an endpoint of the second processing flow, in a state in which variables in the target software linked to the endpoint of the second processing flow are in the first display mode and portions other than the variables are in the second display mode.
41. The method of claim 40, further comprising executing control to display a selection display for selecting either displaying variables associated with an endpoint of the first processing flow in the first display format or displaying variables associated with an endpoint of the second processing flow in the first display format.
42. The method of claim 41, wherein the selection display includes a first selection button for selecting to display variables linked to an end point of the first processing flow in the first display format, and a second selection button for selecting to display variables linked to an end point of the second processing flow in the first display format.
43. The method of claim 42, wherein executing control to display the selection display includes executing control to display the first selection button and the second selection button on a display screen different from the display screen of the target software.
44. The method of claim 42, wherein executing control to display the selection display includes executing control to display the first selection button and the second selection button on the same display screen as the target software.
45. The method of claim 41, wherein the selection display includes one or more first selection buttons each corresponding to one or more functions linked to an end point of the first processing flow, and one or more second selection buttons each corresponding to one or more functions linked to an end point of the second processing flow.
46. The method of claim 45, wherein executing control to display the selection display includes executing control to display the one or more first selection buttons and the one or more second selection buttons on a display screen different from the display screen of the target software.
47. The method of claim 33, wherein executing control to display the subject software includes executing control to display information related to the end point of the process flow before or after the subject software.
48. The method of claim 33, wherein executing control to display the target software includes, when the target software includes multiple variables linked to the endpoint, executing control to display information related to the endpoint of the processing flow in association with each variable.