CS 410 Southern NH University Assembly to C Programming Project
6/3/2021
Project One Guidelines and Rubric – CS-410-T5470 Software Reverse Engineering 21EW5
Competencies
In this project, you will demonstrate your mastery of the following competencies:
U lize fundamental reverse engineering technologies and prac ces
Apply the fundamentals of assembly language in reverse engineering tasks
Scenario
SNHU Investments is a large investment company that offers brokerage and re rement services. They have been in business since the early 1980s. Recently, they have been trying to
move their legacy code into a cloud-based applica on. This resulted in the company looking to hire an addi onal so ware engineer. You applied for the posi on and were selected to
par cipate in a proficiency test as part of the interview process. In the proficiency test, you must demonstrate your ability to reverse engineer code.
For the purposes of this proficiency test, you will be given an exis ng client management applica on that the company uses. You will convert the applica on into assembly code,
explain the code, and convert it into C++ to create a working program.
Direc ons
For this project, you will take the exis ng binary file (O file) for the client management applica on, convert it to assembly code, convert the assembly code to C++ (CPP file) with an
added output statement, and create a new binary file.
1. Convert the binary file (O file) into assembly code.
Decompile the binary file found in the So ware Reverse Engineering Playground in the Project One Files folder in Codio.
2. Explain the func onality of the blocks of assembly code.
Use the Project One Proficiency Test Template, located in the Suppor ng Materials sec on, to complete this step.
3. Convert the assembly code into C++ code (CPP file).
Compile the C++ code in the Eclipse IDE.
4. Add an output statement to the beginning of the C++ code (CPP file).
For example, you could add a “Created by (name)” statement for when the program opens, or a statement of your choice.
5. Convert the CPP file to a new binary file (O file).
What to Submit
To complete this project, you must submit the following:
Project One Proficiency Test Template
This should be a Word Document (DOCX) with an explana on of all blocks of assembly code. Use the template linked in the Suppor ng Materials sec on.
C++ File (CPP file)
This file is needed to ensure that the code can be altered. It is not the executable file. This will include your added output statement.
Binary File (O file)
This file is needed to run the applica on showing your added output statement. This is considered the executable file.
Suppor ng Materials
https://learn.snhu.edu/d2l/le/content/752871/viewContent/12896079/View
1/3
6/3/2021
Project One Guidelines and Rubric – CS-410-T5470 Software Reverse Engineering 21EW5
The following resource(s) may help support your work on the project:
Project One Proficiency Test Template
Use this template to explain the func ons of the assembly code blocks. This document includes tables with headings to include explana ons for “main”, ChangeCustomerChoice, and
addi onal func ons.
Guide to So ware Reverse Engineering
This guide provides informa on on the process of so ware reverse engineering, assembly language, binary, C++, and more.
Codio Guide
This guide provides informa on on how to use the Codio pla orm to complete aspects of this project.
Project One Rubric
Criteria
Binary to Assembly
Conversion
Exemplary
N/A
Proficient
Converts binary file into
assembly code (100%)
Needs Improvement
Shows progress toward
proficiency, but with errors or
Not Evident
Value
Does not a empt criterion
(0%)
16.67
23.33
omissions; areas for
improvement may include
conver ng the binary file into
assembly code (55%)
Assembly Code
Func onality Explana on
Exceeds proficiency in an
Explains the func onality of
Shows progress toward
Does not a empt criterion
excep onally clear, insigh ul,
the blocks of assembly code
proficiency, but with errors or
(0%)
sophis cated, or crea ve
with adequate detail and no
omissions; areas for
manner (100%)
inaccuracies (85%)
improvement may include
explana ons of the
func onality of the blocks of
assembly code with richer
detail and no inaccuracies
(55%)
Assembly Code Conversion
N/A
to C++
Converts assembly code into
Shows progress toward
Does not a empt criterion
C++ code with no inaccuracies
proficiency, but with errors or
(0%)
or missing func onality
(100%)
omissions; areas for
improvement may include
26.67
conver ng assembly code into
C++ code with few
inaccuracies or missing
func onality (55%)
https://learn.snhu.edu/d2l/le/content/752871/viewContent/12896079/View
2/3
6/3/2021
Project One Guidelines and Rubric – CS-410-T5470 Software Reverse Engineering 21EW5
Criteria
Added Output Statement
Exemplary
Proficient
Needs Improvement
Not Evident
Value
Exceeds proficiency in an
Adds an output statement to
Shows progress toward
Does not a empt criterion
excep onally clear, insigh ul,
sophis cated, or crea ve
the beginning of C++ code
(85%)
proficiency, but with errors or
omissions; areas for
(0%)
manner (100%)
13.33
improvement may include
adding an output statement to
the beginning of the C++ code
(55%)
C++ Conversion to Binary
N/A
Converts C++ code into binary
Shows progress toward
Does not a empt criterion
code (100%)
proficiency, but with errors or
(0%)
16.67
omissions; areas for
improvement may include
conver ng C++ code into
binary code (55%)
Ar cula on of Response
Exceeds proficiency in an
Clearly conveys meaning with
Shows progress toward
Submission has cri cal errors
excep onally clear, insigh ul,
correct grammar, sentence
proficiency, but with errors in
in grammar, sentence
sophis cated, or crea ve
structure, and spelling,
grammar, sentence structure,
structure, and spelling,
manner (100%)
demonstra ng an
and spelling, nega vely
preven ng understanding of
understanding of audience
and purpose (85%)
impac ng readability (55%)
ideas (0%)
Total:
https://learn.snhu.edu/d2l/le/content/752871/viewContent/12896079/View
3.33
100%
3/3
DISASSEMBLED USING COMMAND: g++ -d project1.o >> DisassembledProject1.txt
Project1.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 : 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: 48 8d 35
00 00 00 00 lea 0x0(%rip),%rsi # b b: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi
# 12 12: e8 00 00 00 00 callq 17 17: e8 00 00 00 00 callq 1c 1c: 89 05 00 00 00
00 mov %eax,0x0(%rip) # 22 22: 8b 05 00 00 00 00 mov 0x0(%rip),%eax #
28 28: 83 f8 01 cmp $0x1,%eax 2b: 74 13 je 40 2d: 48 8d 35 00 00 00 00 lea
0x0(%rip),%rsi # 34 34: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3b 3b: e8
00 00 00 00 callq 40 40: 8b 05 00 00 00 00 mov 0x0(%rip),%eax # 46 46: 83
f8 01 cmp $0x1,%eax 49: 74 02 je 4d 4b: eb ca jmp 17 4d: 48 8d 35 00 00 00
00 lea 0x0(%rip),%rsi # 54 54: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 5b
5b: e8 00 00 00 00 callq 60 60: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 67
67: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 6e 6e: e8 00 00 00 00 callq 73
73: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 7a 7a: 48 8d 3d 00 00 00 00 lea
0x0(%rip),%rdi # 81 81: e8 00 00 00 00 callq 86 86: 48 8d 35 00 00 00 00 lea
0x0(%rip),%rsi # 8d 8d: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 94 94: e8 00
00 00 00 callq 99 99: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # a0 a0: 48 8d 3d
00 00 00 00 lea 0x0(%rip),%rdi # a7 a7: e8 00 00 00 00 callq ac ac: 48 8d 35 00
00 00 00 lea 0x0(%rip),%rsi # b3 b3: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi
# ba ba: e8 00 00 00 00 callq bf bf: 48 89 c2 mov %rax,%rdx c2: 8b 05 00 00
00 00 mov 0x0(%rip),%eax # c8 c8: 89 c6 mov %eax,%esi ca: 48 89 d7 mov
%rdx,%rdi cd: e8 00 00 00 00 callq d2 d2: 48 89 c2 mov %rax,%rdx d5: 48 8b
05 00 00 00 00 mov 0x0(%rip),%rax # dc dc: 48 89 c6 mov %rax,%rsi df: 48
89 d7 mov %rdx,%rdi e2: e8 00 00 00 00 callq e7 e7: 8b 05 00 00 00 00 mov
0x0(%rip),%eax # ed ed: 83 f8 01 cmp $0x1,%eax f0: 75 07 jne f9 f2: e8 00 00
00 00 callq f7 f7: eb 10 jmp 109 f9: 8b 05 00 00 00 00 mov 0x0(%rip),%eax # ff
ff: 83 f8 02 cmp $0x2,%eax 102: 75 05 jne 109 104: e8 00 00 00 00 callq 109 109:
8b 05 00 00 00 00 mov 0x0(%rip),%eax # 10f 10f: 83 f8 03 cmp $0x3,%eax 112:
74 05 je 119 114: e9 34 ff ff ff jmpq 4d 119: b8 00 00 00 00 mov $0x0,%eax 11e:
5d pop %rbp 11f: c3 retq
0000000000000120 : 120: 55 push %rbp
121: 48 89 e5 mov %rsp,%rbp 124: 53 push %rbx 125: 48 83 ec 48 sub
$0x48,%rsp 129: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 130: 00 00 132:
48 89 45 e8 mov %rax,-0x18(%rbp) 136: 31 c0 xor %eax,%eax 138: 48 8d
45 bb lea -0x45(%rbp),%rax 13c: 48 89 c7 mov %rax,%rdi 13f: e8 00 00 00
00 callq 144 144: 48 8d 55 bb lea
-0x45(%rbp),%rdx 148: 48 8d 45 c0 lea -0x40(%rbp),%rax 14c: 48 8d 35 00 00 00
00 lea 0x0(%rip),%rsi # 153 153: 48
89 c7 mov %rax,%rdi 156: e8 00 00 00 00 callq 15b
15b: 48 8d 45 bb lea -0x45(%rbp),%rax 15f: 48 89 c7 mov %rax,%rdi 162: e8 00
00 00 00 callq 167 167: c7 45 bc 00
00 00 00 movl $0x0,-0x44(%rbp) 16e: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi
1
# 175 175: 48 8d 3d 00 00 00 00 lea
0x0(%rip),%rdi # 17c 17c: e8 00 00
00 00 callq 181 181: 48 8d 35 00 00 00
00 lea 0x0(%rip),%rsi # 188 188: 48
8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 18f
18f: e8 00 00 00 00 callq 194 194: 48
8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 19b
19b: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1a2
1a2: e8 00 00 00 00 callq 1a7 1a7:
48 8d 45 c0 lea -0x40(%rbp),%rax 1ab: 48 89 c6 mov %rax,%rsi 1ae: 48 8d 3d 00
00 00 00 lea 0x0(%rip),%rdi # 1b5
1b5: e8 00 00 00 00 callq 1ba 1ba:
48 8d 45 c0 lea -0x40(%rbp),%rax 1be: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi
# 1c5 1c5: 48 89 c7 mov %rax,%rdi
1c8: e8 00 00 00 00 callq 1cd 1cd: 89
45 bc mov %eax,-0x44(%rbp) 1d0: 83 7d bc 00 cmpl $0x0,-0x44(%rbp) 1d4: 75
07 jne 1dd 1d6: bb 01 00 00 00 mov
$0x1,%ebx 1db: eb 05 jmp 1e2 1dd:
bb 02 00 00 00 mov $0x2,%ebx 1e2: 48 8d 45 c0 lea -0x40(%rbp),%rax 1e6: 48 89
c7 mov %rax,%rdi 1e9: e8 00 00 00 00 callq 1ee
1ee: 89 d8 mov %ebx,%eax 1f0: 48 8b 4d e8 mov -0x18(%rbp),%rcx
1f4: 64 48 33 0c 25 28 00 xor %fs:0x28,%rcx 1fb: 00 00 1fd: 74 3b
je 23a 1ff: eb 34 jmp 235
201: 48 89 c3 mov %rax,%rbx 204:
48 8d 45 bb lea -0x45(%rbp),%rax 208: 48 89 c7 mov %rax,%rdi 20b: e8 00
00 00 00 callq 210 210: 48 89 d8
mov %rbx,%rax 213: 48 89 c7 mov %rax,%rdi 216: e8 00 00 00 00 callq 21b
21b: 48 89 c3 mov %rax,%rbx 21e:
48 8d 45 c0 lea -0x40(%rbp),%rax 222: 48 89 c7 mov %rax,%rdi 225: e8 00
00 00 00 callq 22a 22a: 48 89 d8
mov %rbx,%rax 22d: 48 89 c7 mov %rax,%rdi 230: e8 00 00 00 00 callq 235
235: e8 00 00 00 00 callq 23a
23a: 48 83 c4 48 add $0x48,%rsp
23e: 5b pop %rbx 23f: 5d pop %rbp 240: c3 retq
0000000000000241 : 241: 55 push %rbp 242: 48 89
e5 mov %rsp,%rbp 245: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 24c
24c: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 253
253: e8 00 00 00 00 callq 258
258: 48 89 c2 mov %rax,%rdx 25b: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax
# 262 262: 48 89 c6 mov %rax,%rsi 265: 48 89
d7 mov %rdx,%rdi 268: e8 00 00 00 00 callq 26d
26d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 274
274: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 27b
27b: e8 00 00 00 00 callq 280 280: 48 8d 35 00 00
00 00 lea 0x0(%rip),%rsi # 287 287: 48 89 c7 mov
2
%rax,%rdi 28a: e8 00 00 00 00 callq 28f 28f: 48 8d
35 00 00 00 00 lea 0x0(%rip),%rsi # 296 296: 48
89 c7 mov %rax,%rdi 299: e8 00 00 00 00 callq 29e
29e: 48 89 c2 mov %rax,%rdx 2a1: 8b 05 00 00 00 00 mov 0x0(%rip),%eax #
2a7 2a7: 89 c6 mov %eax,%esi 2a9: 48 89 d7 mov
%rdx,%rdi 2ac: e8 00 00 00 00 callq 2b1 2b1: 48
89 c2 mov %rax,%rdx 2b4: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 2bb
2bb: 48 89 c6 mov %rax,%rsi 2be: 48 89 d7 mov
%rdx,%rdi 2c1: e8 00 00 00 00 callq 2c6 2c6: 48 8d
35 00 00 00 00 lea 0x0(%rip),%rsi # 2cd 2cd: 48
8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2d4 2d4:
e8 00 00 00 00 callq 2d9 2d9: 48 8d 35 00 00 00
00 lea 0x0(%rip),%rsi # 2e0 2e0: 48 89 c7 mov
%rax,%rdi 2e3: e8 00 00 00 00 callq 2e8 2e8: 48
8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 2ef 2ef: 48
89 c7 mov %rax,%rdi 2f2: e8 00 00 00 00 callq 2f7
2f7: 48 89 c2 mov %rax,%rdx 2fa: 8b 05 00 00 00 00 mov 0x0(%rip),%eax #
300 300: 89 c6 mov %eax,%esi 302: 48 89 d7 mov
%rdx,%rdi 305: e8 00 00 00 00 callq 30a 30a: 48
89 c2 mov %rax,%rdx 30d: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 314
314: 48 89 c6 mov %rax,%rsi 317: 48 89 d7 mov
%rdx,%rdi 31a: e8 00 00 00 00 callq 31f 31f: 48 8d
35 00 00 00 00 lea 0x0(%rip),%rsi # 326 326: 48 8d
3d 00 00 00 00 lea 0x0(%rip),%rdi # 32d 32d: e8
00 00 00 00 callq 332 332: 48 8d 35 00 00 00 00 lea
0x0(%rip),%rsi # 339 339: 48 89 c7 mov %rax,%rdi
33c: e8 00 00 00 00 callq 341 341: 48 8d 35 00
00 00 00 lea 0x0(%rip),%rsi # 348 348: 48 89
c7 mov %rax,%rdi 34b: e8 00 00 00 00 callq 350
350: 48 89 c2 mov %rax,%rdx 353: 8b 05 00 00 00 00 mov 0x0(%rip),%eax #
359 359: 89 c6 mov %eax,%esi 35b: 48 89 d7 mov
%rdx,%rdi 35e: e8 00 00 00 00 callq 363 363: 48
89 c2 mov %rax,%rdx 366: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 36d
36d: 48 89 c6 mov %rax,%rsi 370: 48 89 d7 mov
%rdx,%rdi 373: e8 00 00 00 00 callq 378 378: 48 8d
35 00 00 00 00 lea 0x0(%rip),%rsi # 37f 37f: 48
8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 386 386:
e8 00 00 00 00 callq 38b 38b: 48 8d 35 00 00 00
00 lea 0x0(%rip),%rsi # 392 392: 48 89 c7 mov
%rax,%rdi 395: e8 00 00 00 00 callq 39a 39a: 48 8d
35 00 00 00 00 lea 0x0(%rip),%rsi # 3a1 3a1: 48 89
c7 mov %rax,%rdi 3a4: e8 00 00 00 00 callq 3a9
3a9: 48 89 c2 mov %rax,%rdx 3ac: 8b 05 00 00 00 00 mov 0x0(%rip),%eax #
3b2 3b2: 89 c6 mov %eax,%esi 3b4: 48 89 d7 mov
%rdx,%rdi 3b7: e8 00 00 00 00 callq 3bc 3bc: 48
89 c2 mov %rax,%rdx 3bf: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 3c6
3
3c6: 48 89 c6 mov %rax,%rsi 3c9: 48 89 d7 mov
%rdx,%rdi 3cc: e8 00 00 00 00 callq 3d1 3d1: 48 8d
35 00 00 00 00 lea 0x0(%rip),%rsi # 3d8 3d8: 48
8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3df 3df:
e8 00 00 00 00 callq 3e4 3e4: 48 8d 35 00 00 00
00 lea 0x0(%rip),%rsi # 3eb 3eb: 48 89 c7 mov
%rax,%rdi 3ee: e8 00 00 00 00 callq 3f3 3f3: 48 8d
35 00 00 00 00 lea 0x0(%rip),%rsi # 3fa 3fa: 48
89 c7 mov %rax,%rdi 3fd: e8 00 00 00 00 callq 402
402: 48 89 c2 mov %rax,%rdx 405: 8b 05 00 00 00 00 mov 0x0(%rip),%eax #
40b 40b: 89 c6 mov %eax,%esi 40d: 48 89 d7 mov
%rdx,%rdi 410: e8 00 00 00 00 callq 415 415: 48
89 c2 mov %rax,%rdx 418: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 41f
41f: 48 89 c6 mov %rax,%rsi 422: 48 89 d7 mov
%rdx,%rdi 425: e8 00 00 00 00 callq 42a 42a: 90
nop 42b: 5d pop %rbp 42c: c3 retq
000000000000042d : 42d: 55 push %rbp 42e:
48 89 e5 mov %rsp,%rbp 431: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi #
438 438: 48 8d 3d 00 00 00 00 lea
0x0(%rip),%rdi # 43f 43f: e8 00 00 00
00 callq 444 444: 48 8d 35 00 00 00 00 lea
0x0(%rip),%rsi # 44b 44b: 48 8d 3d 00 00
00 00 lea 0x0(%rip),%rdi # 452 452: e8
00 00 00 00 callq 457 457: 48 8d 35 00 00
00 00 lea 0x0(%rip),%rsi # 45e 45e: 48
8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 465
465: e8 00 00 00 00 callq 46a 46a: 48
8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 471
471: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 478
478: e8 00 00 00 00 callq 47d 47d: 8b 05 00
00 00 00 mov 0x0(%rip),%eax # 483 483:
83 f8 01 cmp $0x1,%eax 486: 75 0e jne 496
488: 8b 05 00 00 00 00 mov 0x0(%rip),%eax # 48e
48e: 89 05 00 00 00 00 mov %eax,0x0(%rip) # 494
494: eb 62 jmp 4f8 496: 8b 05 00 00 00 00
mov 0x0(%rip),%eax # 49c 49c: 83 f8 02
cmp $0x2,%eax 49f: 75 0e jne 4af 4a1: 8b
05 00 00 00 00 mov 0x0(%rip),%eax # 4a7
4a7: 89 05 00 00 00 00 mov %eax,0x0(%rip) # 4ad
4ad: eb 49 jmp 4f8 4af: 8b 05 00 00 00 00
mov 0x0(%rip),%eax # 4b5 4b5: 83 f8 03
cmp $0x3,%eax 4b8: 75 0e jne 4c8 4ba: 8b
05 00 00 00 00 mov 0x0(%rip),%eax # 4c0
4c0: 89 05 00 00 00 00 mov %eax,0x0(%rip) # 4c6
4c6: eb 30 jmp 4f8 4c8: 8b 05 00 00 00
4
00 mov 0x0(%rip),%eax # 4ce 4ce: 83 f8
04 cmp $0x4,%eax 4d1: 75 0e jne 4e1 4d3:
8b 05 00 00 00 00 mov 0x0(%rip),%eax # 4d9
4d9: 89 05 00 00 00 00 mov %eax,0x0(%rip) # 4df
4df: eb 17 jmp 4f8 4e1: 8b 05 00 00 00 00
mov 0x0(%rip),%eax # 4e7 4e7: 83 f8 05
cmp $0x5,%eax 4ea: 75 0c jne 4f8 4ec: 8b
05 00 00 00 00 mov 0x0(%rip),%eax # 4f2
4f2: 89 05 00 00 00 00 mov %eax,0x0(%rip) # 4f8
4f8: 90 nop 4f9: 5d pop %rbp 4fa: c3 retq
00000000000004fb
:
4fb: 55 push %rbp 4fc: 48 89 e5 mov %rsp,%rbp 4ff: 48 83 ec 10
sub $0x10,%rsp 503: 89 7d fc mov %edi,-0x4(%rbp) 506: 89 75 f8
mov %esi,-0x8(%rbp) 509: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) 50d: 75
32 jne 541
50f: 81 7d f8 ff ff 00 00 cmpl $0xffff,-0x8(%rbp) 516: 75 29 jne 541
518: 48 8d 3d 00 00
00 00 lea 0x0(%rip),%rdi # 51f
51f: e8 00 00 00 00 callq 524
524: 48 8d 15 00 00 00 00 lea 0x0(%rip),%rdx # 52b
52b: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 532
532: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 539
539: 48 89 c7 mov %rax,%rdi 53c: e8 00 00 00 00 callq 541
Top-quality papers guaranteed
100% original papers
We sell only unique pieces of writing completed according to your demands.
Confidential service
We use security encryption to keep your personal data protected.
Money-back guarantee
We can give your money back if something goes wrong with your order.
Enjoy the free features we offer to everyone
-
Title page
Get a free title page formatted according to the specifics of your particular style.
-
Custom formatting
Request us to use APA, MLA, Harvard, Chicago, or any other style for your essay.
-
Bibliography page
Don’t pay extra for a list of references that perfectly fits your academic needs.
-
24/7 support assistance
Ask us a question anytime you need to—we don’t charge extra for supporting you!
Calculate how much your essay costs
What we are popular for
- English 101
- History
- Business Studies
- Management
- Literature
- Composition
- Psychology
- Philosophy
- Marketing
- Economics