-
-
我对PowerBasic Edit 2.1的改造
-
发表于: 2010-12-25 21:32 7014
-
用VB来写标准的dll是件很痛苦的事,在网上也下载了几个插件,不光使用麻烦,而且或多或少都有bug,听说PowerBasic可以用VB语言写标准的dll,下载试用了一下,感觉还真不错。
又下载了一个PowerBasic Edit 2.1(下载地址:http://www.onlinedown.net/soft/110596.htm)配合PowerBasic使用,PowerBasic Edit(以下称其为PBedit),这款软件还有诸多方面等待作者完善,最让我头痛的是,每启动一次PBedit就要重新设置编译器(PowerBasic所带的PBWin.exe文件)的路径,所以抽空对PBedit进行了改造,目的是不要设置编译器的路径,只要把PBWin.exe和PBedit放在同一目录中就可以编译。
所用工具:Peid0.95、ZeroAdder、Ollydbg、Peditor1.7
一、思路
1.为PBedit增加一个新区段。
2.为PBedit增加一个函数GetCurrentDirectoryA用来获取当前目录中的PBWin.exe的路径。
3.在新区段中写入获取路径的汇编代码。
二、改造
1.按照国际惯例,用Peid先侦查一下敌情,无壳,省事了!
2. 用Peditor1.7为目标程序添加一个GetCurrentDirectoryA函数,用来获取编译器PBWin.exe的路径。
用Peditor1.7载入目标程序,点击“目录”。
在弹出的界面中,点击“输入表”
点击“输入表”后,还会弹出一个输入表查看器对话框,在界面的上部会出现很多dll,右键随便点击一个,在弹出的菜单中点击“添加输入表”。
我们要添加的函数是GetCurrentDirectoryA,这个函数在Kernel32.dll这个动态链接库中。
这样操作后,我们就为目标程序添加了一个GetCurrentDirectoryA函数,如果目标程序中有这个函数,直接调用即可,就不用再添加了。
3.拿出ZeroAdder为PBedit增加一个新区段,其实要写的代码不多,不增加新区段也行,考虑到以后软件升级再改造麻烦,所以我为它新增加了一个区段,区段名随便,我用的是Pbwin,尺寸填1000,不用填这么大也行(如下图)。
三、编写汇编代码
用ollydbg载入添加好区段和GetCurrentDirectoryA函数的目标程序,alt+M找到新添加的区段。
回到OD的数据窗口,Ctrl+G输入66F000,就在这写代码吧。
用到我们新添加的GetCurrentDirectoryA和lstrcatA这两个函数,在下图中我给出了详细的注释,相信你能看明白。
再取出Peditor1.7,把目标程序的入口点改为0066F000(改过OEP的目标程序PEid再查的话,将看不到是什么语言所写的了,有些免杀、做手脚等也用到这个方法),运行PBedit.exe,打开原先用它编写的代码,编译一下,出现了一个错误提示,告诉我们编译器配置错误,不怕它,OD再次载入目标程序,找到这个错误提示的来源,改其上面的跳转,再次编译代码,这次没有错误对话框提示了吧,但是还是不能编译,在PBedit的状态栏出了个提示:“运行编译器失败,请检测编译器路径是否正确”。
我们通过给目标程序动手术,虽然获取到了编译器的完整路径,但在目标程序并没有读取获取的路径,运行编译器失败是正常的,还是用OD来解决问题吧,OD载入目标程序后,正确配置好编译器的路径,下断点CreateProcessA,断下后回到程序领空,看到了编译器的路径了吧,再下个内存断点,找到这个路径是从哪读取的,改为我们用GetCurrentDirectoryA函数获取的路径即可,我的改法是:
再次运行目标程序,编译写好的代码,行了!
开始时我是在程序将要调用编译器时让它跳到我写的汇编代码处,这样第一次可以正常编译,如果把工程文件保存在PBedit以外的目录中编译的话,GetCurrentDirectoryA获取的将是工程文件保存的目录,这样获取编译器的路径就错了,结果是不能正常编译。
觉睡醒以后,忽然想到把添加的汇编代码放到程序的OEP,这样目标程序就不会再次GetCurrentDirectoryA了,岂不正符合我们的本意吗?
细心的破友们发现了,我使用的还是“未授权”版,看着这3个字心里怎么就那么不舒服呢?哪位破解好手“和谐”一下吧,我的机器码:E9A2398158825F2AE5662AA9F0A9FAB7
给我一个注册码吧,“未授权”三个字看着就难受
又下载了一个PowerBasic Edit 2.1(下载地址:http://www.onlinedown.net/soft/110596.htm)配合PowerBasic使用,PowerBasic Edit(以下称其为PBedit),这款软件还有诸多方面等待作者完善,最让我头痛的是,每启动一次PBedit就要重新设置编译器(PowerBasic所带的PBWin.exe文件)的路径,所以抽空对PBedit进行了改造,目的是不要设置编译器的路径,只要把PBWin.exe和PBedit放在同一目录中就可以编译。
所用工具:Peid0.95、ZeroAdder、Ollydbg、Peditor1.7
一、思路
1.为PBedit增加一个新区段。
2.为PBedit增加一个函数GetCurrentDirectoryA用来获取当前目录中的PBWin.exe的路径。
3.在新区段中写入获取路径的汇编代码。
二、改造
1.按照国际惯例,用Peid先侦查一下敌情,无壳,省事了!
2. 用Peditor1.7为目标程序添加一个GetCurrentDirectoryA函数,用来获取编译器PBWin.exe的路径。
用Peditor1.7载入目标程序,点击“目录”。
在弹出的界面中,点击“输入表”
点击“输入表”后,还会弹出一个输入表查看器对话框,在界面的上部会出现很多dll,右键随便点击一个,在弹出的菜单中点击“添加输入表”。
我们要添加的函数是GetCurrentDirectoryA,这个函数在Kernel32.dll这个动态链接库中。
这样操作后,我们就为目标程序添加了一个GetCurrentDirectoryA函数,如果目标程序中有这个函数,直接调用即可,就不用再添加了。
3.拿出ZeroAdder为PBedit增加一个新区段,其实要写的代码不多,不增加新区段也行,考虑到以后软件升级再改造麻烦,所以我为它新增加了一个区段,区段名随便,我用的是Pbwin,尺寸填1000,不用填这么大也行(如下图)。
三、编写汇编代码
用ollydbg载入添加好区段和GetCurrentDirectoryA函数的目标程序,alt+M找到新添加的区段。
回到OD的数据窗口,Ctrl+G输入66F000,就在这写代码吧。
用到我们新添加的GetCurrentDirectoryA和lstrcatA这两个函数,在下图中我给出了详细的注释,相信你能看明白。
再取出Peditor1.7,把目标程序的入口点改为0066F000(改过OEP的目标程序PEid再查的话,将看不到是什么语言所写的了,有些免杀、做手脚等也用到这个方法),运行PBedit.exe,打开原先用它编写的代码,编译一下,出现了一个错误提示,告诉我们编译器配置错误,不怕它,OD再次载入目标程序,找到这个错误提示的来源,改其上面的跳转,再次编译代码,这次没有错误对话框提示了吧,但是还是不能编译,在PBedit的状态栏出了个提示:“运行编译器失败,请检测编译器路径是否正确”。
我们通过给目标程序动手术,虽然获取到了编译器的完整路径,但在目标程序并没有读取获取的路径,运行编译器失败是正常的,还是用OD来解决问题吧,OD载入目标程序后,正确配置好编译器的路径,下断点CreateProcessA,断下后回到程序领空,看到了编译器的路径了吧,再下个内存断点,找到这个路径是从哪读取的,改为我们用GetCurrentDirectoryA函数获取的路径即可,我的改法是:
再次运行目标程序,编译写好的代码,行了!
开始时我是在程序将要调用编译器时让它跳到我写的汇编代码处,这样第一次可以正常编译,如果把工程文件保存在PBedit以外的目录中编译的话,GetCurrentDirectoryA获取的将是工程文件保存的目录,这样获取编译器的路径就错了,结果是不能正常编译。
觉睡醒以后,忽然想到把添加的汇编代码放到程序的OEP,这样目标程序就不会再次GetCurrentDirectoryA了,岂不正符合我们的本意吗?
细心的破友们发现了,我使用的还是“未授权”版,看着这3个字心里怎么就那么不舒服呢?哪位破解好手“和谐”一下吧,我的机器码:E9A2398158825F2AE5662AA9F0A9FAB7
给我一个注册码吧,“未授权”三个字看着就难受
赞赏
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
谁下载
lychee
thk
萝卜
prince
hxsoft
DW1943
Winter-Night
eunt
快雪时晴
zhuwg
ishe
yjd
XiaosanAiq
weimjsam
haokeyy
bootdisk
gwotang
mcj
icersg
netfoxs
logkiller
foxjinlin
hybrid
guanbo
geren
yzwyq
venliong
issasth
hacrack
akiller
sonxu
jerrylhj
面具
stoy
CHYX
ttkan
yongsam
wylsr
aclangzi
shjt
好好好好
skypismire
deppcyan
fhua
leisheng
coolvirus
zhoudongzh
寒轩
leeone
dungthuan
芳草碧连
djxh
零下八度
Rotkkkk
小菜一颗
monsterok
zhouchu
hibage
jasonzhou
bdancerlc
rickycloud
xwfz
signed
那谁
神秘悟饭
雨耕山
iSpeak
rzsky
唯有此生
wzlm
锈钉
dynald
wayneww
jevinchen
PowerBasic
xhair
djxlmix
pashion
看原图
赞赏
雪币:
留言: