网站首页 | 网页制作 | 网络编程 | 图形图象 | 冲浪宝典 | 操作系统 | 软件教学 | 网络安全 | 认证考试 | 下载中心 | 游戏下载
| 网络安全首页 | 安全在线 | 病毒防治 | 黑客攻防 | 漏洞研究 | 黑客编程 | 破解手记 |
您现在的位置: 超人气学院 >> 网络安全 >> 破解手记 >> 文章正文 用户登录 新用户注册
如何破解PB6.5编译的程序         
如何破解PB6.5编译的程序
作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:49:07


(以下内容若有错误之处,还望来信指正)

以下所有均针对PowerBuilder6.5编译的伪码程序(即带有PBD的文件执行)。

PowerBuilder的伪码编译同VB伪码编译一样,同样是PB动态库(PBVM60.DLL),解释伪码执行。而PBVM60.DLL对取字符串、比较字符串、比较数值与我们常见到的c或汇编或delphi等等语言生成的执行文件不一样。

为此,我用PB6.5生成一段代码,然后跟踪,摸出一些经验:

我的Pb代码如下:(不要看有什么意思,纯粹为了研究)

string ls_t1,ls_t2,ls_444
long ll_l1,ll_l2,ll_l3

ll_l1 = 12325
ls_t1 = sle_1.text //看在PB中如何取字符串值。sle_1 是单行编辑框。
ls_t2 = '12325'

ll_l2 = integer(ls_t1) //看此处会触发什么
ll_l2 -= ll_l1
if ls_t1 <> 'fdfggfh' Then //研究PB的字符比较会调用什么。=========重点
ll_l2 = ll_l2 * 2
else
ll_l3 = integer('24354')
end if

if ll_l2 <> 3107 Then //研究PB如何进行数值比较,我们如何截取。==========重点
ls_444 = 'goto error'
else
MessageBox('error','dddd') //PB的messagebox调用那个API
end if
MessageBox('error','dddd') //PB的messagebox调用那个API
ls_444 = 'goto oookkk' //研究PB如何赋字符串值

ll_l2 = integer(ls_t2)
ll_l2 -= ll_l1

if ll_l2 <> 0 Then
MessageBox('error','dddd')
end if

上面的代码很乱,仅仅是为了追踪研究。

OK,现在用TRW2000加载执行,

首先用bpx hmemcpy (即所谓的万能断点):结果不中断,却在我气愤的用鼠标点击单行编辑框时触发(真莫名其妙)。

改用bpx getdlgitemtexta(getdlgitemtext)
也不中断。
用bpx Getwindowtexta
结果,每输入一个字符就中断,真烦人。
用bpx messageboxa
OK,提示消息时,中断。
说明PB的MessageBox时调用MessageBoxA的API。
但这用处不大,PBD是解释伪码执行的,我几乎没有办法来找出那里是确定是否来弹出提示框。因为它一句一句的解释执行,弹出消息框的行与判断条件的行被PB隔的不知那里去了。

再用用lstrcmpa:
哈哈,比较字符串的地方被截取了,如下:
KERNEL32!lstrcmpA
017F:BFF77304 PUSH EBX
017F:BFF77305 PUSH ESI
017F:BFF77306 PUSH EDI
017F:BFF77307 PUSH EBP
017F:BFF77308 PUSH DWORD 01F2
017F:BFF7730D PUSH DWORD BFFA21CB
017F:BFF77312 PUSH DWORD [FS:00]
017F:BFF77319 MOV [FS:00],ESP
017F:BFF77320 MOV EAX,ESP
017F:BFF77322 PUSH DWORD [EAX+24]
017F:BFF77325 PUSH DWORD [EAX+20]
017F:BFF77328 CALL BFF71247
017F:BFF7732D POP DWORD [FS:00]
017F:BFF77334 ADD ESP,BYTE +08
017F:BFF77337 POP EBP

你试试 D EAX 和 D EDI 你看到了

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda    责任编辑:kinda 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
     Softice使用指南---配[2610]
     中文编辑排版专家—Dr[2442]
     一个破解注册码的例子[1436]
     C语言学习系统v3.0破解[1413]
     获得键盘扫描码[1243]
     破解ComposerforRingT[1082]
     自动脱壳之ProcDump应[990]
     流光4.5完全破解[978]
     VisualBasic程序之Sma[978]
     PE文件结构剖析[891]
    相 关 文 章
    如何去掉netants1.22的广告
    NetAnts(网络蚂蚁)v1.23
    音乐贺卡厂2000Ver2.60破解
    WinImage密码的另一种破解
    极速登录3.6---用winHEX破
    chm帮助编辑器v2.6注册码破
    破解NetAlertv2[热点]指导
    对于破解的一些想法
    如何用upx解开ASPack+ASPr
    美萍反黄专家2.0注册码破解
    标志位法破解----美萍反黄
    破解美萍网管大师v5.2以及
    闹钟&笑话1.0破解过程
    :“我们都爱背单词”简易破
    BananaSplitter1.0破解实战
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)