Describe Something Special You Want To Buy in The Future
Describe Something Special You Want To Buy in The Future
Describe Something Special You Want To Buy in The Future
(14) Describe something special you want to buy in the future/ talk about a house
or an apartment you would like to live.
Everyone has a dream and so do I. I have a dream that I can afford a house
in the nearest future for my own family. It would be located in my
hometown – Bac Ninh province. It doesn’t have to be too beautiful and big,
but it must be cozy and full of happiness. I can image my future house has at
least 4 rooms: a kitchen, 2 bedroms and a living room. It will be a place
where our family can find peace after a hard-working day, we can teach our
children how to love and live well. I will try my best to make my dream
comes true. After graduating from my university, I will work hard, spend
money and I think about 4 years at work I can afford a hourse for myself.
1.(14) Describe something special you want to buy in the future/ talk about a house
or an apartment you would like to live.
General to personal: having dream able to make it come true
wonderful in my case
House : When do you have this dream
Describe: - general sentence: Basicly, it will be convenient, morden,
cozy, ecofriendly, not too big
- inside
- outside
After having this dream motivation, hopes stick at it never drop out
Believe that I can do it
2. Describe your idea of a perfect vacation
Vacation: special occasion, not many people can actually enjoy, spend
vacation time properly, affectively
Many people plan a perfect vacation and then it become unreal and
unfeasible
perfect vacation: planed well, able to happen.
Depends on individuals.
Introverst love peaful, ecofriendly enviroment
Escape from busy life, traveling some remote area with my beloved.
12. Describe an important day you celebrate in your country.
civil servant don’t have much time to relax depend on office
celebrate party, find time to unwind in special days: international labor
day,.
September 2nd: the birth of VN
- How is that day
- Back to the origin
What to you do in this day?
How special this day to you?
3.Describe your favourite place to eat out
Personal to personal: senior nerve-racking after finals eat
favorite restaurant
Where? Name? Which kind of food? Style? View? Enviroment? Is it famous
What kind of people will like it
Go with?
4.Describe an area of countryside you know and like.
Intro: Personal to personal: senior nerve-racking after finals
unwind area : ecopark
Where?
Enviroment? Facilities? Enviroment? Separate system includes:...? Is it
expensive
Activities there?
Go with whom?
The most interesting part? Bring job, money to develop hometown, touris
atractors
5. Describe a sport you would like to learn
Intro: sporty football spectator sport
Why you want to learn? (co duyen nao)
What do you need to play?
The benefit?
What is your plan to learn?
In the future?
6. Describe a television programme you watched and did not enjoy
Intro: big fan of watching TV, lack of time chose the best (short but
informative) news
When?
Describe : offical chanel
Why you don’t like: too long not suitable
Instead of...
I often read news online duplicate
7.Describe someone who had an important influence in your life.
To me mother
Her occupation?
How she influence your life: leason
Try hard, pressure
Mental support: advise
Pround of my mom
Motivation to keep studying...
8.Describe a subject that helped you in life, even though you didn’t like it in shool.
Intro: English
Why you have to learn E even though you didn’t like?
My father told me: you can be really good at sth you don’t like, to like, to
love sth stick at it
By practicing, learning love it
Future?
10.Talk about the most important benefit of the internet.
Intro: The internet
Perfect learning tool: everytime
Anywhere
How you are
To me: military student lack of time to learn my interest
Communicate, purchase course
variety
Covid 19 obvious
11.Talk about a gift you gave to someone recently
General to personal: having dream able to make it come true
wonderful in my case
House : When do you have this dream
Describe: - general sentence: Basicly, it will be convenient, morden,
cozy, ecofriendly, not too big
- inside
- outside
After having this dream motivation, hopes stick at it never drop out
Believe that I can do it
15.Describe a person whom you like to work or study with.
Help me: revise knowledge, have fun, compliment each other
Learning with my be-loved, my boyfriend motivation, Help me: revise
knowledge, have fun, compliment each other
Old? Job? When you learn? How often? How you learn together?
How he help you?
Contribution Title
Abstract. Patch testing, a problem is happened (happens) when have new module (having a new) (or update module)
and have demand to find vulnerabilities in that. It is (occurs) when chopped symbolic execution, a novel form of
symbolic execution that allows users to specify uninteresting parts of the code to exclude during the analysis, is
situation(??). Chopped symbolic execution allows testing a module of software with input from software without
testing on all paths of the program. Chopped symbolic execution in patch testing only promotes all of its potential
when it has a brilliant choose method which is used to determine what is the part of software do not need test. In this
paper, we propose a novel exclude functions method in finding memory bugs for chopped symbolic execution with
patch testing problems. The exclude functions method use the control follow graph to determine uninteresting
functions. Moreover, we use the cyclomatic complexity to balance with resource and speed. Our preliminary result
show that the novel exclude functions can effectively use in choosing uninteresting functions automatically when
using chopped symbolic execution for patch testing problems. We have implemented our approach in a library called
ChopperAEx, which can automatically generate exclusion input for Chopper.
1 Introduction
The developers have to review code and fix the bugs when an update is released. It spends a large cost of time and
strength. The users often refuse to upgrade their software to the most recent version [10]. Moreover, the patches
often contain the threats with new lines of source code [11, 12] partly because the developers can’t find out all of
bugs. Therefore, a method which can find the vulnerabilities in new patch automatically is necessary.
Symbolic execution is powerful technique for finding software vulnerabilities. There are many tools was
introduced for finding software vulnerabilities [1, 3-5, 7-9]. However, despite important technical advances,
symbolic execution often struggles to reach deep parts of the code due to the well-known path explosion problem
and constraint solving limitations [2]. For patch testing, there are some propositions for it using symbolic execution
technique, like KATCH [6]. The most of method using symbolic execution method use it for test all path of
program, so those are still influent by the path explosion problem, the one of the biggest challenges of symbolic
execution. It is before the chopped symbolic execution is introduced [2]. It brings the new approach on patch testing
problem. The researcher can try methods which just care about interesting path. It is very importance on using
symbolic execution for patch testing because it eases the damage from the path explosion problem.
One of the most popular symbolic execution tools is KLEE. It is a symbolic virtual machine built on top of the
LLVM compiler infrastructure [1]. One of KLEE’s functions is bugs found, but with complex test, KLEE has not
good result. The problem at here actually is path explosion. Chopped symbolic execution was introduced to resolve
that and Chopper, an extend version of KLEE, is the tool to do that [2].
Chopper does not really ignore the exclude functions because this may lead to both false positives and
false negative. Instead, the exclude parts are executed lazily, when their affect may be observable buy
code under analysis. Chopped symbolic execution leverages various on-demand static analyses at
runtime to automatically exclude code fragments while resolving their side effects [2]. Although chopper
is a great idea but exist a problem. The exclude parts, actually is exclude functions, have to determine by
user. How to find out the functions are not interesting? In fact, with patch testing problem, the users
can determine a function is not interesting if it is not affected by the update, but they have to analysis
the source code to do that. As the result, the advantage from an automatic analysis tool like Chopper is
reduced.
Therefore, instead of using expert knowledge to determine the uninteresting functions, our approach
use the static analysis to find out the uninteresting functions and where they are automatically. Chopper
can use this information as an input. In patch testing, the commits bring the information about modified
code. The modified functions or addition functions can be determined easily with a version control
system or a source management [13-17]. However, finding out the uninteresting functions which not
affect by the update is not easy like above. It will spend a huge time to analysis the source code.
Moreover, if excluding all of functions which not affected by the patch, Chopper will spend very much
time to find side effects, take snapshot and recovery when need.
In this paper, we propose a novel exclude functions method called chop’s automatic exclusion that can
determine the suitable functions will be excluded with target function as input for chopped symbolic
execution in patch testing. The target function is a function which be modified or add in this patch. We
developed a prototype implementation of this method and report the results of initial experimental
evaluation that demonstrates that this method can indeed lead effective discovery of the finding
memory vulnerabilities on patch testing with Chopper.
In summary, in this paper we make the following contributions:
1. We introduce chop’s automatic exclusion, a novel exclude functions method for chopped symbolic execution in
patch testing.
2. We present ChopperAEx, a prototype implementation of our technique as a dynamic library of opt [18], and
make it publicly available.
3. We report on an experimental evaluation of ChopperAEx with Chopper for failure reproduction with some CVEs
like Chopper’s experimental.
2 OVERVIEW
In this section, we give an overview of chop’s automatic exclusion in patch testing using a simple program (see Fig.
1). In particular, Fig. 1a show a part of the source code of program (function main and test). It is on the patch lead to
target function (function f). Suppose that f is the function which was modified in the patch. Fig. 1b shows the control
follow graph (CFG) of program and the functions will be excluded (they are function n and function m).
When start at function main, we have a symbolic as a parameter is a equal α. For calling f, the path is from main to
test and f at the end, as long as we have str(α) equal “OK” condition. Suppose that m and n are the complex
functions (the way to define a function is complex or not will be mentioned below). Because we just need test with
function f, function n is not need to test actually. With function m, if it does not influence to the variables which are
used by function f, we also want to exclude it and vice versa. However we are greedy with function m, we will
always exclude it. If function m influences to function f, it will be recovered by chopped symbolic execution’s side
effects mechanism.
Because of greedy mechanism like above, the performance of chopped symbolic execution is reduced
with the cases which like function m above except they also influence to target function. Therefore, we
used the cyclomatic complexity, a quantitative measure of the number of linearly independent paths
through a part of program's source code [19], to balance between positive effect from the comfortable
cases and negative effect from the uncomfortable cases. The function’s cyclomactic complexity is limited
with the threshold. When considering function’s exclusion, if this function has the complexity which is
higher the threshold, it can be add to excluded functions list and vice versa.
In this section, we will present about the algorithms are used in chop’s automatic exclusion and we also introduce
about the prototype implementation, ChopperAEx.
Algorithm 2 present the algorithm to calculate function’s complexity. There are 2 parts that
need attention. First is INTERNALCOMPLEXITY function to calculate complexity with internal basicblocks in
function. Second is recursive algorithm to calculate complexity from the edges of CFG lead to other
functions.
Our implement work with LLVM bitcode [20], as a dynamic plugin of opt [18]. The result from
ChopperAEx will be used by Chopper as “--skip-functions” argument. It contains the function’s names
and line number where the functions are called. The plugin was compiled by LLVM 3.4 [21] and CMake
version 3.2.2 [22].
4 Evaluation
Our evaluation aims to provide preliminary evidence that this a novel exclude functions method can be used as
automatic method with acceptable result. We used failure reproduction scenario with the same CVEs in Chopper’s
public. Table 1 show the result with the time to find out the bugs. All cases were performed on Ubuntu 14 with 4GB
of ram, CPU i3-8100 @ 3.6GHz with 1 core 2 thread and the timeout is 3 hours. All cases were created as execution
driver for libtasn1 library to exercise the library from its public interface, simulation the interactions of an external
program (eg, GnuTLS) [2]. At here, ChopperAEx use the function which lead to bug directly as target function.
Table 1. Detailed results for the failure reproduction experiment on libtasn1.
5 Conclusion
Chop’s automatic exclusion is a novel exclude functions method in finding memory bugs for chopped symbolic
execution with patch testing problems. Our preliminary evaluation shows that chop’s automatic exclusion can be
used as an effective method. In the future, we will try improve the performance and find out the more exactly way to
avoid excluding the function which affect to target function. We also find out why having an error case and fix it.
References
1. KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Sys-tems Programs
2. Chopped symbolic execution
3. EXE: Automatically Generating Inputs of Death
4. angr
5. BINSEC
6. KATCH: High-Coverage Testing of Software Patches
7. Statically-directed dynamic automated test generation
8. SAGE: Automated Whitebox Fuzz Testin
9. Rubyx: Symbolic Security Analysis of Ruby-on-Rails Web Applications
10. Staged deployment in Mirage, anintegrated software upgrade testing and distribution system
11. Has the bug really been fixed? InICSE’10
12. How do fixes become bugs? InESEC/FSE’11
13. git
14. github
15. gitlab
16. codehub
17. Bitbucket
18. opt - LLVM optimizer
19. Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric
20. LLVM bitcode
21. LLVM 3.4
22. CMake
23. STP