注释:shell本身并不重要,问题是虚拟机中有一个检查。

SM学生走了,我可以从事正常操作的力,没有能量减少的VM。

在virutalfree,F4 RETN,直到{ }是一个EXE图像内的ESP地址F7,返回:

0040fa91 B8 be180000 mov eax,18be


0040fa96 BA 00004000乐章






事实上,shell本身并不重要,问题在于VM中有一个检查。

SM学生走了,我可以从事正常操作的力,没有能量减少的VM。

在virutalfree,F4 RETN,直到{ }是一个EXE图像内的ESP地址F7,返回:

0040fa91 B8 be180000 mov eax,18be


0040fa96 BA 00004000 mov EDX,slv_unpa.00400000


0040fa9b 03c2放入EAX,EDX


0040fa9d - ffe0 JMP EAX

F4 F7 OEP:在JMP EAX

004018be 68 ea1af500推0f51aea


004018c3 - E9 ef01b500 JMP 00f51ab7


004018c8 CC INT3


004018c9 CC INT3

JMP的VM,但这种记忆不能转储,Ctrl F2再次看到分发:

BP VirtualAlloc,不断Ctrl F9看到EAX = 00f50000停止:

0040fbb6 6A 40推40


0040fbb8 6800100000推1000


0040fbbd 50压入


0040fbbe 6A 00推0


0040fbc0 13叫{ EBX };kernel32.virtualalloc


0040fbc2 8bd0 MOV EAX EDX,


0040fbc4 8bfa MOV EDI,EDX


0040fbc6 8b4e FC mov ecx,{ esi-4 }


0040fbc9 F3:A4代表movsb

沿着ECX = 000151e9,复制一个unpackme.exe到2.exe,并添加一个节头:

0x0022000 vaddr =


vsize = 0x20000

在负载2.exe 0040fbc2改变EAX 422000。

然后按上面去OEP和使用lordpe转储(ollydump我不会成功)dumped.exe


然后fixdump ImpREC用来产生3.exe

一旦运行是非法的,点调试挂在OD上:

00422cca { } 8910 MOV EAX,EDX / / EAX = 00140688


00422ccc E9 0d0e0000 JMP 00423ade

全是搞砸了…没有啊,这都是一个花指令,但只有EB,NOP瀑布:

00422ca4 33c0 xor eax,eax


00422cac交流lodsb


00422cb1 8b1487 MOV EDI EDX,{ 4 } EAX *


00422cb7 33c0 xor eax,eax


00422cbd交流lodsb


00422cc1 8b0487 mov eax,eax×4 } { EDI


00422cca MOV EAX 8910 { },EDX


00422ccc E9 0d0e0000 JMP 00423ade

它看起来像是一个虚拟机指令,好像丢失了什么东西。

退房在哪里


想法一:得到指定文件的大小,估计SM学生不屑于使用,与侥幸,尽量不使用。


想法二:一个标记设置的地方,前面的VirtualAlloc释放,VM部分是垃圾场,我在哪里可以得到


SM学生总是喜欢插入PE头,看看PE头。

在OEP加载2.exe打乱了访问{ 400110 } = = 1000,ALT M PE头F2


加载3.exe也中断了,{ 400110 } = = 18be


原来是入口,据估计是一个持续的运作,因为所有的kbys将1000作为一个入门。

有两种解决方案。一个是写一个入口代码,把入口改为1000,另一个是移动,因为写保护不方便,我选择移动。

401000找两个引用,全部更改401005

004011da E8 21feffff电话3.00401000


004011ec E8 0ffeffff电话3.00401000

在这里修改代码:

00401000 > / E9 b9080000 JMP 4.004018be


00401005 | 68 ea9c4200推4.00429cea


0040100a - | E9 a82a0200 JMP 4.00423ab7

保存到文件,最后lordpe修饰1000是入口,节省4.exe,和出来的图片。

但是,当你指出她,它不会关闭自己,弹出。据估计,虚拟机中有1000个出口。


其结果是18be和DialogParam

所以你要选择写保护,并添加一个具有lordpe输入功能virutalprotect

在下面的相应代码找到一块空地,最后回到18be


004018c8 > B8 00004000 mov eax,00400000


004018cd 0340 3C将eax,eax 3c } {


28 004018d0 8d78 LEA EDI,{ 28 } EAX


004018d3 50压入


004018d4 54推ESP


004018d5 6A 04推4


004018d7 6A 04推4


004018d9 57推EDI


004018da ff15 1e304400叫{ 44301e };kernel32.virtualprotect


004018e0 EAX 58流行


004018e1 B8 00100000 mov eax,1000


004018e6 AB stosd


004018e7 ^ EB D5 JMP 004018be

进入18c8,修好它。