160CrackMe-003 初探打开程序看到需要输入用户名和序列号尝试输入后提示错误 分析使用工具查看,发现未加壳,语言是VB。 用OD打开程序,直接搜素错误字符串即可定位。首先还是和002一样,先是获取长度然后进行一些操作再加上NAME[0] 1234567891011121314151617004081E3 . FF15 18B14000 call dword ptr ds:[<&MSVBVM50 2021-07-21 CrackMe 逆向工程 CrackMe
隐藏技术-进程伪装 进程伪装进程伪装就是修改任意进程的信息,在系统中显示的是另一个进程的信息,但是实际上还是它还是在执行原来的操作。 实现原理实现起来原理并不复杂,就是修改指定进程的进程环境块PEB中的进程路径以及命令行信息即可。下面使用Windbg来查看一下notepad的相关信息。 查看PEB的相关信息,可以看到ProcessParameters,这里有进程的路径和命令行相关信息。 继续查看这个结构,可以看到I 2021-07-21 黑客编程 恶意代码 黑客编程 隐藏技术
提权技术-Bypass UAC Bypass UACUAC(UserAccount Control,用户账户控制)是微软在VISTA之后的版本中引入的一种安全机制,通过UAC,应用程序和任务可以始终在非管理员账户的安全上下文中运行,除非特别授予管理员级别的系统访问权限。UAC可以阻止未经授权的应用程序自动进行安装,并防止无意地更改系统设置。 正常UAC是有一个弹窗提示,而病毒木马为了隐藏自己,就需要不通知用户的情况下“偷偷“将自 2021-07-20 黑客编程 恶意代码 黑客编程 提权技术 UAC
160CrackMe-002 初探打开程序,看到提示输入name和serial,输入后,提示错误。 分析查壳,看到程序没有加壳,是用VB语言写的。 使用OD进行分析,搜索错误提示的字符串,可以直接定位到关键的跳转 开始分析生成serial的过程,首先是获取了name的长度然后将其乘以17CFB再加上name的第一个ASCII码,最后转为十进制字符串。 1234567891011121314151600402412 . 2021-07-20 CrackMe 逆向工程 CrackMe
自启动技术-快速启动目录 快速启动目录Windows带有快速启动目录,将需要自启的程序放入其中,就可以实现开机自启。 函数说明SHGetSpecialFolderPath获取指定的系统路径 123456BOOL SHGetSpecialFolderPath( HWND hwndOwner, LPSTR lpszPath, int nFolder, BOOL fCreate); hwndOwner:窗口所有 2021-07-19 黑客编程 恶意代码 黑客编程 自启动技术
自启动技术-注册表 注册表方式实现自启动实现开机自启动的方式有很多,其中修改注册表的方式是最为广泛的。 函数介绍RegOpenKeyEx打开一个指定的注册表键 1234567LSTATUS RegOpenKeyExA( HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult); hKey:打开注 2021-07-19 黑客编程 恶意代码 黑客编程 自启动技术
启动技术-内存直接加载运行 内存直接加载运行内存直接加载运行就是,模拟PE加载器的功能,把DLL或者exe等PE文件从内存中直接加载到病毒木马的内存中去运行,不需要通过loadlibrary等现成的API函数去操作。 实现原理构造一个PE装载器,将PE文件加载到内存中。大致过程,首先要申请一块内存,然后将PE文件按照映像对齐大小映射到内存中;根据重定位表,重定位硬编码数据;获取导入表中的函数及其地址;如果是DLL,获取导出表 2021-07-15 黑客编程 恶意代码 黑客编程 启动技术 PE
启动技术-创建进程API 创建进程API在一个进程中创建并启动一个新的进程,对于病毒木马程序和普通的程序来说,都是常见的技术。在用户层上微软提供WinExec,ShellExecute和CreateProcess等函数来实现进程创建。 具体实现及函数介绍WinExec运行指定的应用程序 1234UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow); lpCmdLine:要执 2021-07-14 黑客编程 恶意代码 黑客编程 启动技术
160CrackMe-001 初探打开程序会弹出如下的窗口,根据标题可以看出,我们需要“杀死”这个弹窗。 程序主题界面有两部分,第一部分是序列号加名字。 第二部分是单纯的序列号,应该是比较简单。 看完大体流程,开始分析。 分析查询程序的基本信息,可以看到未加壳,是用Delphi语言编写的。 先分析单纯的序列号。用OD打开程序,搜索字符串,搜索错误的提示,可以看到成功与错误的提示,还有一个JNZ,这里应该是关键的判断跳转 2021-07-14 CrackMe 逆向工程 CrackMe
注入技术-APC注入 APC注入APC为异步过程调用,是指函数在特定线程中被异步执行。每一个线程都有自己的APC队列,使用QueueUserAPC函数可以把一个APC函数压入APC队列中,插入LoadLibrary就可以执行DLL。该线程并不会直接调用APC函数,除非该线程处于一个可通知的状态。 函数介绍QueueUserAPC将用户模式中的异步过程调用(APC)对象添加到指定线程的APC队列中。 12345DWORD 2021-07-13 黑客编程 恶意代码 黑客编程 注入