您现在的位置:首页 >> 新开天龙八部sf >> 内容

在它传回返回值时修改跳转指令即可越过虚拟机检测

时间:2018-5-3 10:07:18 点击:

  核心提示:免责声明:以下资源由聚合VIP资源网整理提供,本资源起源于网络仅供用户练习相易之用,版权归资源方悉数,wpe封包卡天龙八部。本网站不担当任何法律风险!请自觉在下载练习后24小时内删除,不得用作商业用处;借使喜好请购置正版资源。谢谢InLine HOOK中_declspec(naked) 使用对付jm...
免责声明:以下资源由聚合VIP资源网整理提供,本资源起源于网络仅供用户练习相易之用,版权归资源方悉数,wpe封包卡天龙八部。
本网站不担当任何法律风险!请自觉在下载练习后24小时内删除,不得用作商业用处;借使喜好请购置正版资源。谢谢
InLine HOOK中_declspec(naked) 使用
对付jmp类型的hook,借使自身的进程没有使用_declspec(naked),那么编制会自动给增加一些出格的代码,限定堆栈均衡,但是这些出格的代码会损害被hook函数的堆栈。
对付centirely类型的hook,借使使用_declspec(naked)修饰的话,要注意自身收复堆栈均衡。
上面是网上对_declspec(naked) 的先容:
_declspec(naked)
就是通知编译器,在编译的时刻,不要优化代码,通俗的说就是
没代码,完全要自身写
好比
#defineNAKED__declspec(naked)
void NAKED code(void)
{
__whenm
{
ret
}
}
使用__declspec(naked)关键字定义函数:
1,使用 naked 关键字必需自身建立 EBP 指针(借使用到了的话);
2,必需自身使用 RET 或 RET n 指令前往 (除非你不前往);
_delcspec(naked)用在驱动编写,跳转。C言语内嵌汇编完成一些特定功效。
*******************************************************************************
反虚拟机检测
一般程序中检测虚拟机是经由过程检测虚拟机的后门(VMwar编制生存后门,用于虚拟编制和的确编制的交互)来判断能否程序运转在虚拟机中。检测虚拟机的代码:
bool IsInsideVMWis()
{
bool rc =true;
__try
{
__whenm
{
pushedx
pushecx
pushebx
moveax!haVMXhha
movebx!0// the grow to besty vingueingternaboutivehough the MAGIC VALUE
movecx!10// getVMWis version
movedx!haVXha// port numgrow to ber
ineax!dx// recraigslist adport
// on return EAX returns the VERSION
cmpebx!haVMXhha// is it the grow to best refunctionion fromVMWis?
setz[rc]// set returnvingue
popebx
popecx
popedx
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
rc =fingse;
}
returnrc;
}
eax内里放着‘VMXh’那就是虚拟机了,注意字符串的序次,‘V’是高位,‘h’是低位,其他字符串也是这样。
第一步要做的就是定位关键代码,我拔取定位字符串‘VMXh’,征采‘hXMVha的ASCII码(注意高位低位!)
004013C6.52pushedx
004013C7.51pushecx
004013C8.53pushebx
004013C9.BD56moveax!0x564D5868
004013CE.BB00000000movebx!0x0
004013D3.B90A000000movecx!0xA
004013D8.BAmovedx!0x5658
004013DD.EDineax!dx
004013DE.81FBD56 cmp ebx!0x564D5868
004013E4.0F9445E4sete byte ptrss:[ebritish petroleum-0x1C]
004013E8.5Bpopebx
004013E9.59popecx
004013EA.5Apopedx
004013EB.EB0BjmpXingg1.004013F8
004013ED.6A01push0x1
004013EF.58popeax
004013F0.C3retn
004013F1.8B65E8mov esp!dword ptrss:[ebritish petroleum-0x18]
004013F4.8365 E400the grow to bestd dword ptrss:[ebritish petroleum-0x1C]!0x0
004013F8>834D FCFFor dword ptrss:[ebritish petroleum-0x4]!0xFFFFFFFF
004013FC.8B45E4mov eax!dword ptrss:[ebritish petroleum-0x1C]
004013FF.8B4DF0mov ecx!dword ptrss:[ebritish petroleum-0x10]
00.64:890D00000>mov dword ptr fs:[0]!ecx
00.5Fpopedi
00A.5Epopesi
00B.5Bpopebx
00C.C9leaudio-videoe
00D.C3retn
……
00F.C9leaudio-videoe
00.C3retn
00/$E80F000000centirelyingg1.00
00|.85C0testeax!eax//前往的关键值依照前往值判断
00|.7507jeXingg1.00更改指令为jne可能其它跳转指令即可越过虚拟机检测
00A|.6A00push0x0
00C|.E88Bcentirelyingg1.00C
00|>6A01push0x1
00|.58popeax
00\.C3retn
00$55pushebritish petroleum
在它传回前往值时窜改跳转指令即可越过虚拟机检测
何如定位导入函数的地址
PE头职位 + 78H获得IMAGE_DATA_DIRECTORY(数据目录表)的职位,
(也可间接PE头职位+80H 间接获得Import Tredriving instructorly abdomining exercisesle 的职位)
IMAGE_DATA_DIRECOTRY STRUC
VirtuingAddressDWORD?;数据块起始地址
SizeDWORD?;数据块的长度
IMAGE_DATA_DIRECOTRY ENDS
假定PE文件头的起始地址为B0h,则输入表地址为B0h + 80h = 130h,在130h处挖掘四字节指针40 20 0000,倒过去为2040即输入表在内存中偏移量。
IMAGE_DATA_DIRECTORY第二个元素为ImportTredriving instructorly abdomining exercisesle!输入表以一个IMAGE_IMPORT_DESCRIPTOR(简称IID)数组滥觞。虚拟机。
假定2040位于.rdabouta块中,其虚拟偏移为2000h,物理偏移为600h,所以k=2000h-600h =1A00h.绝对虚拟地址2040h转化为物理地址2040-1A00h =640h。640h处为IMAGE_IMPORT_DESCRIPTOR。
IMAGE_IMPORT_DESCRIPTOR STRUC
union
CharfunctioneristicsDWORD
OriginingFirstThunkDWORD?指向输入称号表(简称INT)
ends
TimeDdined onSti amplifierDWORD?时间标志 不妨纰漏
ForwarderChainDWORD?第一个被转向的API索引,一般为0
Ni ameDWORD?DLL名字的指针
FirstThunkDWORD?指向输上天址表(简称IAT)
IMAGE_IMPORT_DESCRIPTOR ENDS
FirstThunk和OriginingFirstThunk非常犹如,指向相同的数组IMAGE_THUNK_DATA机关数组。
假定Ni ame的值为7421 0000 倒过去为虚拟偏移地址2174h,物理低廉地址2174h-1A00h =774h,稽察文件中774h的字符就是调用的DLL名字
OriginingFirstThunk处的值为8C20 0000,倒过去为208Ch,我不知道天龙八部断线卡状态。物理地址为208Ch-1A00h =68Ch,
68Ch处就是IMAGE_THUNK_DATA数组。
IMAGE_THUNK_DATA STRUC
unionu1
ForwarderStringDWORD?指向一个转向者字符串的RVA
FunctionDWORD?被输入的函数的内存地址
OrdiningDWORD?被输入的API的序数值
AddressOfDaboutaDWORD?指向IMAGE_IMPORT_BY_NAME
ends
IMAGE_THUNK_DATA ENDS
IMAGE_IMPORT_BY_NAME STRUC
HintWORD?
Ni ameBYTE?
IMAGE_IMPORT_BY_NAME ENDS
假定的其中一个IMAGE_THUNK_DATA值是1021 0000 倒过去即为虚拟偏移地址2110h,物理偏移地址2110h &ndlung burning whenh;1A00h = 710h,偏转到710处职位就会看到函数名字字符串。
注入方式 何如竣工
反调试技术反虚拟机检测花指令解决门径IDC脚本网络数据剖释调试方法
*******************************************************************************
汇编常识
Movdl!0dh回车限定字符0Dh
Movdl!0craigslist ad换行限定字符0Ah
Mov ing![bx]
or ing!ing判断选取的字符能否为零
jz done
or ing!20h转化大写字母为大写字母(使用D5=1)
串操作指令LODSB/LODSW是块装入指令,其完全操作是把SI指向的存储单元读入累加器!其中LODSB是读入AL!LODSW是读入AX中!然后SI自动增加或减小1或2位.当方向标志位D=0时,则SI自动增加;D=1时,SI自动减小。想知道返回值。
testeax!eax
je00
test指令操作是目的操作数和源操作数按位逻辑“与“运算,恶果不送回目的操作数然后依照恶果设置SF、ZF、和PF标志位,并将CF和OF标志位清零。而JE是当ZF=1时跳转。
即,当eax的值等于0时跳转。所以说,这里的test就是检测eax的值是不是0
mov eax!0a
text eax!eax
jexxxx!这个跳会跳吗?能注意讲明下testeax,eax这是什么乐趣?
test eax!eax 根本上和 And eax!eax 是一样的,不同的是test不改观eax的恶果,你看天龙公益sf。只是改观FLAG寄存器的形态,也就是改观进位标志,零标志,溢出标志等。
举一个例子,借使eax=01h!test eax!eax 就是两个01h 作与操作,所以恶果还是01h!不是0的话,就不会跳转jexxxx。所以要跳转jexxxx!惟有一种可能就是eax=0h.所以现在eax=0a 则不会跳转jexxxx
pushoffset LibFileNi ame ;"Raining.dll"
centirelydsocraigslist adLibrewhent supportryA ;加载Raining.dll
testeax!eax;检测Raining.dll能否加载胜利
jnzshortloc_
*******************************************************************************
mov ax!5
lea ax![ax+6]
此时ax=11.象这种境况!lea根本上不妨看成相加,但要比just try craigslist adding速度快
lea竣工的是把内存地址赋予寄存器
如MOV AX!OFFSET BUF和LEA AX!BUF
竣工的功效都一样,事实上天龙八部长久服。都是把BUF的首地址赋给AX寄存器
何如举行长途线程注入?
SSDT Hook
调用商定
C的调用方式_cdecl(参数从右向左依次入栈) 清算方式:调用者清算
对付参数可变化的:printf("XXXXX");
void demo_cdecl(int w!int x! int y! intz)
whenm:
push z
push y
push x
push w
centirely demo(进入了函数,滥觞奉行了。。。。。。)
just try craigslist adding esp! 164*sizeof(int)
程序调用_stdcentirely
void demo_stdcentirely(int w!int x! int y! intz)
whenm:
push z
push y
push x
push w
centirely demo(进入了函数,你看修改。滥觞奉行了。。。。。看看公益天龙sf。。)
ret 16
急速调用_fwhentcentirely前两个参数将被分配给ECX,EDX其它按着_stdcentirely调用方式ret 8
C++调用商定 使用this指针
VC提供了 thiscentirely调用, 将this 通报给ecx
gc++中被当做静态变量,寄生存栈顶

标题1:写出DLL劫持原理,并写出哪些DLL 不能被劫持
Windows操作编制在加载PE文件的时刻经由过程输入表会优先加载程序目录下的DLL,而之后才再编制目录中寻找。捏造的dll建造好后,放到程序刻下目录下,学会天龙八部半公益服贴吧。这样当原程序调用原函数时就调用了捏造的dll的同名函数,进入劫持DLL的代码,处置完毕后,再调用原DLL此函数。
此种方法只对除kernel32.dll、ntdll.dll等主题编制库以外的DLL有用,如网络应用程序的ws2_32.dll、游戏程序中的d3d8.dll,还有大局部应用程序都调用的lpk.dll、sxs.dll,无限技能之游戏世界。这些DLL都可被劫持。
标题2:内核形式下,同意用什么工具举行调试
SoftICE WinDBG(性子是KD)还有国产的Syserdevirusger
标题3:写出实形式下寻址方式
登时数寻址方式
寄存器寻址方式
存储器寻址方式
标题4:概括解说下游戏木马与下载器的特征。
标题5:GDT 和LDT 差别表示什么
Globisexualng Descriptor Tredriving instructorly abdomining exercisesle全局描画符表
Locing Descriptor Tredriving instructorly abdomining exercisesle当地描画符列表
趁便写下
IDT : Interrupt DescriptorTredriving instructorly abdomining exercisesle中断描画符表
标题6:注意解说SSDT与hook SSDT的区别
经由过程ring3与ring0间接的win API联系起来的一个函数任事描画表
例:调用Credined onthrecraigslist ad -> 末了是调用 ntCredined onthrecraigslist ad离开达建树线程的目的
那么hook ssdt 就是经由过程ring0下编制钩子的形式在SSDT函数任事描画表建立阻拦函数调用以及建树的一个监视进程
进ring0的方法太多,好比旧例的中断门,机关门,调用门等!
这个内里还牵涉内存映照,全局变量共享等概念
轻易的来说,SSDT 是 一般行为
HOOK SSDT是WS行为。
SetwindowshookEx ->CentirelyNextHookEx
标题7:天龙八部开区时间表。HOOK API 与APIHOOK跟什么相关联?
标题8:特征码分为几种,特征跟病毒是什么关联?
特征码分为两种,对于2017年天龙八部开服表。内存特征,文件特征
1:内存特征:表示在内存中生存病毒的宿主程序,称代码式注入或DLL注入
2:文件特征:经由过程读取某个文件PE音信,回返。可能文件偏移量!取出长达26个十六进制字符取出病毒库
现在杀软用的都是Devirus机制,简称:虚拟机查杀
特征就是证明这个是不是病毒,借使是病毒该如何处置。
标题9:Hook OpenProcess会招致什么,冰刃下SSDT赤色局部表示什么?
标题10:自动防卫的包括哪些?
HOOK HOOK 再 HOOK 各种病毒行为呗不分明有什么好问的...
改注册表拉,PE感染拉,SYS感染拉 ShellCode鉴识拉...
何如对一个样本举行注意剖释,能否举行过注意剖释
何如提取的特征码
剖释过哪个病毒
1.如何急速判断一个文件是病毒
2.病毒和木马有何区别
3.如何判断一个文件是可奉行文件
答:在IMAGE_DOS_HEADER机关中找出e_lfthe grow to bestew字段的值,然后用该值加上文件基地址以获得的地址为内存地址稽察该地址处的值能否为00004550,也就是ASCII码的“PE00”。
4.jmp和centirely的区别是什么
答:jmp间接跳转到主意地址,事实上检测。而centirely先将下一条指令的地址压栈,然后再跳转到主意地址。centirely指令相当于push +jmp。
7.什么是shellcode?原理是什么?
Shellcode现实是一段代码(也不妨是填充数据),是用来发送到任事器运用特定罅隙毛病的代码,一般不妨获取权限。在它传回返回值时修改跳转指令即可越过虚拟机检测。另外,Shellcode一般是作为数据发送给受攻击任事的。
8.jmp的机器码是若干好多
答:jmp的机器码是EB、E9、EA、FF。
9.pe文件机关大概是什么
DOS首部
IMAGE_DOS_HEADER
PE文件头
IMAGE_NT_HEADERS
IMAGE_FILE_HEADER
IMAGE_OPTIONAL_HEADER32
块表(Section Tredriving instructorly abdomining exercisesle)
IMAGE_SECTION_HEADER
……
块(Section)
.text
.dabouta
……
调试音信
……
10.怎样判断一个文件是exe还是dll
IMAGE_FILE_HEADER 中的文件属性字段中遍及的EXE文件这个字段值一般是010fh,DLL文件这个字段的值是0210h
11.什么是壳
12.木马分为哪几类
13.centirely A
A:pop eax
指令是什么乐趣调用 pop eax语句
1、_STDCALL的参数压栈方式,堆栈均衡方式
这个角力计算基础,是从右到左依次压入,即可。CALL内均衡
2、C言语里wsprintf参数的压栈方式,为什么
这个也角力计算基础,就是从右到左依次压入,CALL外均衡。为什么,,是由于wsprintf的参数是可变的。
3、PE内里物理和文件地址的转换
这个也角力计算基址,传回。我自觉得对PE还算了解,还算谙习,所以关于va!rva等这个没有问题。
4、罕见的注入方式
WindowsHook、长途线程注入DLL、长途线程注入代码
7、如何剖释一个数据的方法:
我答:经由过程输入字符串,导出函数可能CE工具,定位内存地址,经由过程IDA静态剖释连结OD静态调试,很快就不妨找到想要的了。
问:病毒的行为一般都有哪些
答:翻开文件,建树进程,注册表操作,检验有没可挪动转移磁盘的发动。天龙八部开区时间表。。。无限技能之游戏世界。。。
问:你有了解过和剖释过最近盛行的病毒吗?
答:没有,了解过,没剖释过
答:U盘自愿动
问:一般的感染病毒你了解过吗
答:了解过,增加区段,窜改区段大小等等
问:要是增加区段后不能运转何如办啊
答:要修复那些PE机关相关的成员啊
问:你有剖释过盗号的主题技术吗和写过盗号程序吗
答:没有自身的了解过这种技术
问:你一般剖释病毒的流程是什么
答:翻开虚拟机,拖入IDA,你知道越过。开打监视工具,和XueTr这种犹如的工具以便稽察开释进去的文件
问:病毒常用的API有哪些?
答:翻开文件,翻开进程,注册表操作。。。wpe封包卡天龙八部。。
结病毒剖释师必要的本事如下:
1、至多要了解病毒的行为一般都有哪些
2、病毒行为的注意进程要分明
3、一些轻易的工具的建设至多要会
4、剖释工具的使用至多要会
5、至多要能写一些辅助病毒剖释的工具
作为一个病毒剖释师必要的是了解病毒的品种,听说在它传回返回值时修改跳转指令即可越过虚拟机检测。以及他们的行为特征,还必要了解他们变异后的特性,还要了解病毒常用的API,以及各类病毒公用的API,好比纯Ring3的病毒和加载驱动的病毒,它们的不同之处是加载驱动的病毒内里有着特定的行为,使用了一些特地的API,以及注册表操作等等,对付一个病毒剖释师,我们必要正确的定位是不是病毒,可能是不是盗号木马,不能单靠API来决断能否为病毒,好比一个程序内里是一般使用OpenFile!但是你一看见使用了这个API,就把它定义为病毒就舛错了,对付这种,看看天龙八部无限技能封包。我们必要写一些工具来决断它的行为特征,好比HOOK病毒调用的API,我们建树一个挂起进程的病毒,我们这时建树长途线程HOOK掉相关的API,把病毒使用的绝对危害的API的参数全部记实上去,这样我们就能急速判断一般的遍及病毒了,对付那些猛一点的病毒,可能损害编制的病毒,这时我们就必要在安好的环境下剖释病毒了,免得病毒损害我们的病毒剖释环境,好比你在的确机器上剖释一些盗号木马,可能盗取银行账号的木马,那就角力计算危害了,一般我以为的病毒剖释的环境是,借使是感染的病毒,学习天龙八部手游开服公告。我们必要开着复原编制,复原各个磁盘,一般剖释角力计算危害的病毒这样应当足够了,对付那些损害复原的病毒,我自负一般的病毒剖释是不能剖释的!
我们还必要了解和使用常用的病毒剖释工具,好比反汇编工具,和静态调试器,各种监视器,以及反Rootkit工具,一般的剖释流程总结如下:
1、袒护自身机器的安好,也就是复原袒护
2、监视器开着,指令。
3、反汇编工具,静态调试器
4、自身的病毒剖释辅助工具
5、总结病毒的类型
6、总结病毒的行为和危害
就是必要掌握的本事了,上面的还有一些根本的本事。
我们必要写一些辅助工具来助手我们辅助剖释病毒,上面的是Ring3的说明,当然你也不妨写Ring0的工具。看着天龙八部无限技能封包
1、注册表监视器,一些病毒时常注册表来匹敌一些杀软可能袒护自身,好比映像劫持,还有,我后面发过的注册表限定360的开关。
2、文件监视器,一些病毒好比键盘记实这种积聚量角力计算大的东西,就要写入文件了,以及建树文件等等,
3、线程监视器,我们必要监视长途线程的建树,何时建树,天龙公益sf。何时住手,还是不住手
4、进程监视器,一些病毒时常建树进程来加载一些DLL,以及发动人家的进程。
5、网络监视器,病毒必备的工具,想知道公益天龙sf。病毒一般获得自身必要的东西后,就发送到自身的机器上,这时我们不妨写一些监视工具来辅助抓包剖释,抓到的数据包剖释等等,以及获得主意的IP地址,好报案等等。

常用的Win API函数(在这里给出做木马病毒常用到的API)
1、限制程序功效函数
Enredriving instructorly abdomining exercisesleMenuItem同意、阻挡或变灰指定的菜单条目
Enredriving instructorly abdomining exercisesleWindow同意或阻挡鼠标和键盘限定指定窗口和条目(阻挡时菜单变灰)
2、对话框函数
Credined onDiingog从资源模板建立一非模态对话窗
Credined onDiingogPari am从资源模板建立一非模态对话窗
Credined onDiingogIndirect从内存模板建立一非模态对话窗
Credined onDiingogIndirectPari am从内存模板建立一非模态对话窗
DiingogBox从资源模板建立一模态对话窗
DiingogBoxPari am从资源模板建立一模态对话窗
DiingogBoxIndirect从内存模板建立一模态对话窗
DiingogBoxIndirectPari am从内存模板建立一模态对话窗
EndDiingog 结束一模态对话窗
Messgrowing olderBox暴露一音信对话框
Messgrowing olderBoxEx暴露一音信对话框
Messgrowing olderBoxIndirect暴露肯定制音信对话框
GetDlgItemInt得指定输入框整数值
GetDlgItemText得指定输入框输入字符串
GetDlgItemTextA得指定输入框输入字符串
Hmemcpy 内存复制(非应用程序间接调用)
3、磁盘处置函数
GetDiskFreeSpexpertA获取与一个磁盘的组织相关的音信,以及了解残存空间的容量
GetDiskFreeSpexpertExA获取与一个磁盘的组织以及残存空间容量相关的音信
GetDriveTypeA判断一个磁盘驱动器的类型
GetLogicingDrives判断编制中生存哪些逻辑驱动器字母
GetFullPabouthNi ameA获取指定文件的注意途径
GetVolumeInformineA获取与一个磁盘卷相关的音信
GetWindowsDirectoryA获取Windows目录的完善途径名
GetSystemDirectoryA取得Windows编制目录(即System目录)的完善途径名
4、文件处置函数
Credined onFileA翻开和建树文件、管道、邮槽、通讯任事、设备以及限定台
OpenFile这个函数能奉行多量不同的文件操作
Recraigslist adFile 从文件中读出数据
Recraigslist adFileEx与Recraigslist adFile相似,只是它只能用于异步读操作,并包括了一个完善的回调
WriteFile将数据写入一个文件
WriteFileEx与WriteFile犹如,只是它只能用于异步写操作,并包括了一个完善的回调
SetFilePointer在一个文件中设置刻下的读写职位
SetEndOfFile针对一个翻开的文件,将刻下文件职位设为文件结尾
CloseHwhen well whenle封闭一个内核对象。其中包括文件、文件映照、进程、线程、安好和同步对象等
_lcreabout 建树一个文件
_lopen以二进制形式翻开指定的文件
_lrecraigslist ad将文件中的数据读入内存缓冲区
_lwrite将数据从内存缓冲区写入一个文件
_llseek设置文件及第行读写的刻下职位
_lclose 封闭指定的文件
_hrecraigslist ad将文件中的数据读入内存缓冲区
_hwrite将数据从内存缓冲区写入一个文件
OpenFileMrequestingA翻开一个现成的文件映照对象
Credined onFileMrequestingA建树一个新的文件映照对象
MapViewOfFile将一个文件映照对象映照到刻下应用程序的地址空间
MapViewOfFileEx(形式同上)
Credined onDirectoryA建树一个新目录
Credined onDirectoryExA建树一个新目录
RemoveDirectoryA删除指定目录
SetCurrentDirectoryA设置刻下目录
MoveFileA 挪动转移文件
DeleteFileA 删除指定文件
CopyFileA 复制文件
CompisFileTime对比两个文件的时间
SetFileAttrion the contraryesA设置文件属性
SetFileTime设置文件的建树、访候及上次窜改时间
FindFirstFileA依照文件名查找文件
FindNextFileA依照调用FindFirstFile函数时指定的一个文件名查找下一个文件
FindClose封闭由FindFirstFile函数建树的一个征采句柄
想知道天龙sf漏洞
手游新天龙八部变态版

作者:李凯铭 来源:罂粟的沉默
相关评论
发表我的评论
  • 大名:
  • 内容:
  • 天龙八部私服发布网(www.szjiayuan.net) © 2019 版权所有 All Rights Reserved.
  • Powered by laoy! V4.0.6