Skip to content

tclhh/Software-and-system-security

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Software-and-system-security

1、编写一个release版本的 hello world 程序。通过修改程序可执行文件的方式(不是修改源代码),使得程序运行后显示的内容不为hello world,变成 hello cuc!

提示:一定要在编译选项中将调试信息相关的编译连接选项去掉,否则程序体积会比较大,而且存在很多“干扰”信息。

2、上一题的程序中,修改的显示内容变为一个很长的字符串(至少2kb长)。并且保证程序正常运行不崩溃。

提示,可执行文件中原有的空间有限,必须要新加入数据,加入数据后必须要修改.text字段中的指针。

3、在notepad(32位64位均可)中,输入一段文字。然后使用调试器,在内存中修改这段文字。使得没有在界面操作notepad的修改文字的情况下。notepad中显示的文字变化。

提示,在调试器中定位控件缓存的内存地址,可以用搜索、逆向、消息截获分析、API截获分析等方法。

4、通过调试器监控计算器程序的运行,每当运行结果为666时,就改为999。

提示:找到运行结果在内存中保存的地址。监控 “=” 按键消息等。

5、通过API hook的方法,在每次notepad保存txt文件时,就将文件内容修改为: “you have been hacked!”

API hook 的关键是编写一个假函数,用假函数的指针替换IAT中真函数的指针(当然这种方式只能对通过IAT调用的管用,但是够了。)在假函数调用真函数,修改真函数的参数和返回的数据,将修改后的数据返回给调用者。

6、通过API hook的方法,使得cmd的dir命令看不到任意目录下的hacker.exe

首先需要分析dir是通过什么API的调用来遍历目录的,然后hook相关函数。

7、桌面浏览器explorer中看不到任意目录下的hacker.exe

8、记录程序运行过程中的API调用序列和参数。

提示:系统内核底层的全局hook

9、记录系统中所有程序的打开文件过程。

提示:系统内核底层的全局hook和数据过滤

10、编写一个有缓存区漏洞的程序,并攻击,执行任意代码。

11、自动化逆向分析工具、自动化的程序运行时监控工具。

12、程序安全漏洞挖掘工具。

软件是数据和对数据的操作的集合。 软件安全就是研究软件的操作的具体过程、数据的具体形式,然后想办法获得、修改、破坏或者实施隐藏。又分为攻和防两个方面。 底层的软件,一次操作所能影响的数据少,操作的逻辑简单。 越到高层,一次操作所能影响的数据越多,操作的逻辑越复杂。 例如 指令 -> C语言语句 -> 函数 -> 对象 汇编 -> C -> C++ -> 各类脚本。 所以,我们进行软件攻防也有两种基本的方法。 hook 和 DKOM hook,挂钩,即找到程序中的原有代码,并修改其代码,增加、减少或者篡改原用功能。达到授权破解(keygen)、作弊(游戏外挂)、隐藏(隐蔽攻击痕迹防止被防御软件查杀)等目的。 DKOM,直接内核对象操作。是一种典型的直接对程序内部数据的攻击。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published