Mister PiX 算法的简单分析
【文章标题】: Mister PiX 算法的简单分析
【文章作者】: qifeon
【软件名称】: Mister PiX 2.10
【下载地址】: 自己搜索下载
【保护方式】: 注册码
【使用工具】: od,peid
【操作平台】: winxp sp2
【软件介绍】: 可以在 newsgroup 里面寻找指定的图片。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一、分析过程
1、Peid查壳,显示无壳。编程语言为Borland Delphi 4.0 - 5.0。
2、试运行,输入“qifeon,12345”,有错误提示“”。
3、od载入,查找字符串,没找到。Delphi程序,找到关键点方法很多,如按钮事件代码,F12暂停法等。这里我们使用下API函数下断的方法。
既然有错误对话框,可以考虑使用MessageBoxExA或MessageBoxA,具体用哪个,需要测试,try and error。
*****************************************************************************************************************************
ctrl+N,找到名称位于 MrPix, 条目 309
地址=0053E644
区段=.idata
类型=输入 (已知)
名称=user32.MessageBoxExA
******************************************************************************************************************************
右键“在输入函数上下断”,然后F9运行,出现异常,SHIFT+F9几次,出现注册框,输入“qifeon,12345”,点确定
程序断下在系统领空,看堆栈
*******************************************************************************************************************************
0012D4A4 00F31EC8 ASCII "Warning"
0012D4A8 005292EA /CALL 到 MessageBoxExA 来自 MrPix.005292E5
0012D4AC 000D0540 |hOwner = 000D0540 ('Mister PiX',class='TApplication')
0012D4B0 00F34C4C |Text = "Username or Private Key don't match.",CR,"Please check your entry."
0012D4B4 00F31EC8 |Title = "Warning"
0012D4B8 00000030 |Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
0012D4BC 00120409 \LanguageID = 120409 (LANG_ENGLISH)
0012D4C0 0012D5EC 指向下一个 SEH 记录的指针
0012D4C4 0052930A SE处理程序
**********************************************************************************************************************************
“Alt+F9”返回,点错误对话框后程序返回到自己代码内
***********************************************************************************************************************************
005292E5 |. E8 9EE1EDFF call <jmp.&user32.MessageBoxExA> ; \MessageBoxExA
005292EA |. 8BD8 mov ebx, eax 返回处
005292EC |. 33C0 xor eax, eax
005292EE |. 5A pop edx
005292EF |. 59 pop ecx
005292F0 |. 59 pop ecx
005292F1 |. 64:8910 mov dword ptr fs:[eax], edx
**************************************************************************************************************************************
向上看,没有跳转可以跳过此对话框。还要继续回溯关键处。可以找到段首下断回溯,这里使用一种快捷些的方法。
向下翻堆栈,找到
0012D5CC |00F34C4C ASCII "Username or Private Key don't match.",CR,"Please check your entry."
0012D5D0 |0012D601
0012D5D4 |00F31EC8 ASCII "Warning"
0012D5D8 |0004D87C
0012D5DC |00F34C4C ASCII "Username or Private Key don't match.",CR,"Please check your entry."
0012D5E0 |0012D704
0012D5E4 |00514B6E 返回到 MrPix.00514B6E 来自 MrPix.00529134
0012D5E8 |00000000
******************************************************************************************************************************************
0左键点击012D5E4 处,右键“反汇编窗口跟随”来到
********************************************************************************************************************************************
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
