首页
社区
课程
招聘
BPE32多态变形引擎
发表于: 2010-2-20 00:41 10793

BPE32多态变形引擎

2010-2-20 00:41
10793
从网上下载了一份BPE32 ( Benny's Polymorphic Engine for Win32 )多态变形引擎
放到radasm里面编译提示错误

mov [ebp + xor_key - mgdelta], edx
testpoly.inc(132) : error A2155: cannot use 16-bit register with a 32-bit address
mov [ebp + key_inc - mgdelta], ebx        ;use it as key increment constant
testpoly.inc(137) : error A2155: cannot use 16-bit register with a 32-bit address

        mov [esp.Pushad_eax], eax                ;store it to EAX register
testpoly.inc(303) : error A2006: undefined symbol : Pushad_eax
testpoly.inc(358) : error A2006: undefined symbol : Pshd
testpoly.inc(471) : error A2006: undefined symbol : Pshd
testpoly.inc(528) : error A2006: undefined symbol : i_end1
testpoly.inc(562) : error A2006: undefined symbol : n_end1
testpoly.inc(599) : error A2006: undefined symbol : i_next
testpoly.inc(601) : error A2006: undefined symbol : k_end
testpoly.inc(608) : error A2006: undefined symbol : i_end1
testpoly.inc(627) : error A2006: undefined symbol : i_end1
testpoly.inc(630) : error A2006: undefined symbol : i_end1
testpoly.inc(650) : error A2006: undefined symbol : n_end1
testpoly.inc(658) : error A2006: undefined symbol : i_end1
testpoly.inc(699) : error A2006: undefined symbol : Pshd
testpoly.inc(704) : error A2006: undefined symbol : rjn
testpoly.inc(817) : error A2006: undefined symbol : rjunkjc
testpoly.inc(826) : error A2006: undefined symbol : rjunkjc
testpoly.inc(832) : error A2006: undefined symbol : rjunkjc
testpoly.inc(840) : error A2006: undefined symbol : rjunkjc
testpoly.inc(843) : error A2006: undefined symbol : rjunkjc
testpoly.inc(851) : error A2006: undefined symbol : rjunkjc

前面3个错误是代码错误
后面都是找不到标号
自己研究了半天搞不通,尤其是前面3个,还有[esp.pushad_eax]
没有找到pushad_eax的相关定义
请帮忙看看
源码附上 bpe32b.zip

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 209
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没人愿意回答一下吗?在线等,谢谢大家了
2010-2-20 16:36
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
缺少变量定义
2010-2-20 19:01
0
雪    币: 209
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
嗯,编译错误提示已经告诉了缺少定义,我就是想找定义的头文件,或者告诉我pshd在此代码中代表什么意思,或者猜出定义的什么,我汇编不是很好,只是能看懂点
还有请问谁见过定义这个的头文件呀
2010-2-21 00:05
0
雪    币: 75
活跃值: (623)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
呵呵,BPE32我也研究过,直接拿来是编译不通过的,要做一些修改,当时也是郁闷了我半天,不过还是搞定了
mov [ebp + xor_key - mgdelta], edx
mov [ebp + key_inc - mgdelta], ebx
xor_key - mgdelta
key_inc - mgdelta
这两个是要根据你实际情况自己定义,简单说下,它这么做,只是将两个key放到用它们的地方.而这两个地方的地址,分别用ebp + xor_key - mgdelta,ebp + key_inc - mgdelta指示,你看看哪里要用到这两个key,然后通过定义标号的形式把这个变量定义到那里,就好了

楼主自己先研究研究吧,,实在不行,可以把我改写后的汇编源码贴出来
2010-2-21 02:04
0
雪    币: 209
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=skypismire;764448]呵呵,BPE32我也研究过,直接拿来是编译不通过的,要做一些修改,当时也是郁闷了我半天,不过还是搞定了
mov [ebp + xor_key - mgdelta], edx
mov [ebp + key_inc - mgdelta], ebx
xor_key - mgdelta
key_i...[/QUOTE]

这个地方我改掉了,改成下面这样不会报错
    
                push ecx
	mov ecx, ebp
	sub ecx, mgdelta
	mov [ecx+key_inc], ebx
	pop ecx
;	mov [ebp + key_inc - mgdelta], ebx

但是下面两个符号未定义的问题我不知道对不对
pushad_eax的定义是我从网上找到的

pushad_eax equ 1Ch

Pshd的定义是我猜测的
Pshd        equ        4h
现在的问题是能编译通过,但是它处理过的code会丢失iat,call api后api地址里面都是00
skypismire 可以把你的代码贴一下吗?非常感谢
2010-2-22 08:27
0
雪    币: 75
活跃值: (623)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
不过我这个是用的masm32,全部用函数形式实现,拿过去可以直接调用,看看吧,有不对的地方一起交流
上传的附件:
2010-2-22 11:45
0
雪    币: 209
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢你啦,昨天我自己研究了下搞定拉,今天上来看到你发出来了,我下载研究下,很感谢你的热心帮助,新年快乐
2010-2-23 13:08
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
请教,znjcx,是如何搞定的。谢谢!
2010-4-9 22:38
0
雪    币: 209
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
自己把代码全部理了一遍,配合od调试,把代码思路理解了
2010-4-10 10:32
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
十分感谢,这么快答复。我正学习相关多态引擎的知识,我的邮箱是sfl1127@126.com.能否告之你的邮箱,方便请教。
2010-4-10 14:06
0
雪    币: 58
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pzk
12
lz能否把怎么编译的写下? 是tasm吗? 编译错误怎么解决的?
2010-5-25 23:53
0
游客
登录 | 注册 方可回帖
返回
//