能力值:
( LV2,RANK:10 )
2 楼
占楼备用,楼主是黑人.结贴谢谢!
能力值:
( LV2,RANK:10 )
3 楼
只知道DLL文件是函数接口啥的,但是里面的函数及参数以及文件名可以改么?
只要你有足够强大的汇编和反汇编能力,没有什么是不可能的..
要如何改?反汇编?或者有什么工具?
...你学习好了基础知识就知道怎么改,,工具无限制..你熟手就行.
如果是system32下的DLL可以改么?
建议你水平提高了再去研究这个问题...
要不要什么权限?
只能回答你基本上ring0就是天堂.
PE头文件是啥?该下载啥资料来学?
《PE结构详解》
总结,楼主问的问题行为和水平上来判断(恕我愚昧的感觉)像是向黑产进发的初学者...
循规渐进啊!
解决你目前及以后可能遇到的问题所需要学习的知识太多,面太广了..
简要概括:
汇编阅读能力
反汇编调试能力
数据结构
PE结构
系统原理
编程能力
能力值:
( LV2,RANK:10 )
4 楼
我来简单说一下PE头吧,用C32ASM(16进制)打开一个EXE或者DLL,在菜单里(哪一个菜单忘了)->PE信息,可以查看一些内容,贴一下相关结构:
1.MZ头,首先看到的一堆HEX
typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header
WORD e_magic; // Magic number(="MZ")
WORD e_cblp; // Bytes on last page of file
WORD e_cp; // Pages in file
WORD e_crlc; // Relocations
WORD e_cparhdr; // Size of header in paragraphs
WORD e_minalloc; // Minimum extra paragraphs needed
WORD e_maxalloc; // Maximum extra paragraphs needed
WORD e_ss; // Initial (relative) SS value
WORD e_sp; // Initial SP value
WORD e_csum; // Checksum
WORD e_ip; // Initial IP value
WORD e_cs; // Initial (relative) CS value
WORD e_lfarlc; // File address of relocation table
WORD e_ovno; // Overlay number
WORD e_res[4]; // Reserved words
WORD e_oemid; // OEM identifier (for e_oeminfo)
WORD e_oeminfo; // OEM information; e_oemid specific
WORD e_res2[10]; // Reserved words
LONG e_lfanew; // File address of new exe header(这个非常重要)
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
2.PE头,紧跟着MZ头
//PE头成员就三个,但包含另外两个结构
typedef struct _IMAGE_NT_HEADERS {
ULONG Signature;//="PE"
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
//文件头
typedef struct _IMAGE_FILE_HEADER {
USHORT Machine;
USHORT NumberOfSections;//区段数量
ULONG TimeDateStamp;
ULONG PointerToSymbolTable;
ULONG NumberOfSymbols;
USHORT SizeOfOptionalHeader;//头部总大小,也就是区段节表偏移
USHORT Characteristics;
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
//可选头(其实一点都不可选)
typedef struct _IMAGE_OPTIONAL_HEADER {
//
// Standard fields.
//
USHORT Magic;
UCHAR MajorLinkerVersion;
UCHAR MinorLinkerVersion;
ULONG SizeOfCode;
ULONG SizeOfInitializedData;
ULONG SizeOfUninitializedData;
ULONG AddressOfEntryPoint;//入口地址
ULONG BaseOfCode;
ULONG BaseOfData;
//
// NT additional fields.
//
ULONG ImageBase;//镜像基址
ULONG SectionAlignment;
ULONG FileAlignment;
USHORT MajorOperatingSystemVersion;
USHORT MinorOperatingSystemVersion;
USHORT MajorImageVersion;
USHORT MinorImageVersion;
USHORT MajorSubsystemVersion;
USHORT MinorSubsystemVersion;
ULONG Win32VersionValue;
ULONG SizeOfImage;//镜像大小
ULONG SizeOfHeaders;
ULONG CheckSum;
USHORT Subsystem;
USHORT DllCharacteristics;
ULONG SizeOfStackReserve;
ULONG SizeOfStackCommit;
ULONG SizeOfHeapReserve;
ULONG SizeOfHeapCommit;
ULONG LoaderFlags;
ULONG NumberOfRvaAndSizes;
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];//输入表,输出表,重定位等信息都在这里
} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
关于PE格式的学习,你要对内存数据的排列有所了解,比对结构和数据会更好的理解。
还有OFFSET、VA、RVA等概念。
能力值:
( LV2,RANK:10 )
5 楼
Sid ??147****38 ?? 奇迹般的看到你复活冒泡!小K读研了...你呢?
能力值:
( LV3,RANK:20 )
6 楼
建议学习一下反编译原理。
能力值:
( LV2,RANK:10 )
7 楼
这个提问的语气少说也有小学二年级了吧?
能力值:
( LV2,RANK:10 )
8 楼
动态链接库:链接库的函数接口都可以自己定义的,如果有自己编写生成过dll动态链接库的话,很简单就能理解里面的函数接口的,这里我建议去看下Win32环境下32位汇编语言程序设计这本书里面的第11章,里面有详细例子和说明。罗老师书中例子清楚明了,也很容易理解。
反汇编:指将一段汇编代码翻译成C语言代码然后去进行相关研究。这里我也可以介绍一本书 --- 谭文老师的天书夜读就是讲这方面的入门知识的,可以去学习下。
至于说System32.dll里面的文件能不能修改,这个我还没怎么去研究过,但是凭我自己现在的理解,应该是不能修改,如果有源代码的话,修改下源代码然后生成dll文件的话那另当一回事。我知道lib文件可以用来编译使用,dll连编译的资格都还没有轮到!只能在运行期使用。
PE:关于这方面的知识可以学下Windows PE这本书。里面有详细的介绍。
至于学习过程和资料查找过程,我想还是自己去体验吧!
希望能帮到你忙!