;----------------------------------------------------------------------------------------------------------------------------
;
; XP crack ,解决高版本VS编译程序不支持XP系统问题
;
; 原理:当我们call EncodePointer 时,会生成call dword ptr ds:__imp__DecodePointer@4
; 不过这个跳转是一个源地址寻址后跳转,也就是__imp__DecodePointer@4是一个DWORD而
; 不是proc,这样用C语言实现不了了,因此就用汇编写一个链接符号,通过这个链接符号
; 来给出跳转地址
; 所以要在data段中给出code段的地址
;
;----------------------------------------------------------------------------------------------------------------------------
.model flat
.data;--------------------------------------------------------------------------------Data段
__imp__EncodePointer@4 dd EncodePointer_wrap
__imp__DecodePointer@4 dd DecodePointer_wrap
__imp__GetLogicalProcessorInformation@8 dd GetLogicalProcessorInformation_wrap
EXTERNDEF __imp__EncodePointer@4 :DWORD
EXTERNDEF __imp__DecodePointer@4 :DWORD
EXTERNDEF __imp__GetLogicalProcessorInformation@8 :DWORD
crack_My_EncodePointer@4 proto c :dword
crack_My_DecodePointer@4 proto c :dword
SmartGetLogicalProcessorInformation@8 proto c :dword, :dword
.code;------------------------------------------------------------------------------Code段
dummy4 proc
.SAFESEH dummy4
mov eax, [esp + 4]
ret 4
dummy4 endp
dummy8 proc
.SAFESEH dummy8
mov eax, [esp + 4]
ret 8
dummy8 endp
EncodePointer_wrap proc
.SAFESEH EncodePointer_wrap
jmp crack_My_EncodePointer@4
EncodePointer_wrap endp
DecodePointer_wrap proc
.SAFESEH DecodePointer_wrap
jmp crack_My_DecodePointer@4
DecodePointer_wrap endp
GetLogicalProcessorInformation_wrap proc
.SAFESEH GetLogicalProcessorInformation_wrap
jmp SmartGetLogicalProcessorInformation@8
GetLogicalProcessorInformation_wrap endp
end;---------------------------------------------------------------------------------End
XP crack ,解决高版本VS编译程序不支持XP系统问题
最新推荐文章于 2022-03-10 16:52:42 发布