第二十九天:做一个总结吧

嗨大家我是Andy,今天来到了第二十九天,我们像以前整理一下这几天所学的,然後明天应该就是完赛心得了,好废话不多说,我们直接进入主题。


常用函数

  • LoadLibrary
  • FreeLibrary
  • GetProcAddress
  • OpenProcess
  • CloseHandle
  • VirtualAlloc
  • CreateRemoteThread
    这些都是我们这几天所讲述常用的函数,当然在调用这些函数记得要引用windows.h这个标头档,在我们一开始也有说程序在执行的时候只需要dll或是lib,但在编译的时候就需要标头档.h

DLL的壳

有分商用壳以私有壳,当然在破解的时候需要先脱壳,前天我门就使用PEiD去查壳,当然也有明明就有壳但是却说没有的状况,那就需要手动脱壳了。
这边是一些软件的整理

  • OllyDBG
  • DLL Loader
  • PEiD

DLL 注入卸载

注入的时候要使用VirtualAlloc申请一块空的位址去让要注入的DLL注入,卸载的时候就不需要,在createRmoteThread也要改LoadLibrary和FreeLibrary。

//注入
#include <windows.h>
#include <iostream>
typedef void (*ccc)();
int main() {
	int b;
	while (std::cin >> b) {
		if (b == 2) {
			HMODULE hmodule = LoadLibrary("Dll5.dll");
			if (hmodule == NULL) {
				MessageBox(NULL, "没有抓到DLL", "标题", MB_OK);
				return -1;
			}
			ccc a = (ccc)GetProcAddress(hmodule, "ccc");
			a();
		}
	}
}
//卸载
#include <windows.h>
#include <iostream>
typedef void (*ccc)();
int main() {
	int b;

	while (std::cin >> b) {
		if (b == 2) {
			HMODULE hmodule = LoadLibrary("Dll5.dll");
			if (hmodule == NULL) {
				MessageBox(NULL, "没有抓到DLL", "标题", MB_OK);
				return -1;
			}
			ccc a = (ccc)GetProcAddress(hmodule, "ccc");
			a();
			FreeLibrary(hmodule);
		}
			
	}
}

结语

今天第二十九天了就把之前的重点都整理整理回顾一下,那今天就先这样了我们明天见,感谢各位这个月以来的收看,都是废文呜呜呜。


<<:  [Day 28]用Django架构建置专属的LINEBOT吧 - LIFF(I)透过liffpy建立、编辑、删除LIFF

>>:  寻觅 webpack - 28 - 真实世界的 webpack - 配置多模式专案

C#入门之特殊字符

在前面的一些示例中,我们见过 $,@ 等等,这样的符号,但没有详细地说明这些符号的用途,今天我们就来...

Day 10 Compose UI migration 到目前的专案上!

今年的疫情蛮严重的,希望大家都过得安好,希望疫情快点过去,能回到一些线下技术聚会的时光~ 今天要接触...

终於要来开赛了~第一天

为什麽要选这个主题??? 原因就是我在某某补习班的主修就是这个~ 付出学费当然就是要验收阿~ Goo...

[Day 31] - 手把手跨出第一步!将Arduino打造成JavaScript的环境-Part 1

大家好,我是17King~ d(`・∀・)b 好久不见,因为最近比较多事情! 但!我没有忘记要po(...

Day 29 - Math Object & Date Object

Math Object methods Math.PI : 3.14 Math.LOG10E : 以...