根据第二课知识去消息框知识,找了一个软件,upx壳脱壳后,无法去除消息框!求教
学习了kido 老师的第二课视频,第一个方法去除消息框程序以及我脱壳后的程序我都放到 百度网盘
我从论坛下载了一个 论坛大牛发布的 软件PanDownload_v1.4.3正好开始有个弹窗,拿来练手
查壳用教程的两个 查壳软件查的 是 upx壳
这个是 两个 call之后跳转我用 F4之后一直运行 无法F7 继续
后来 用的F2 下断 F9运行然后F7单步 找到
第一个问题这里是 oep吗?我自己不能确定!!!求教大 H哥
查壳软件 检查没有壳了
然后我就继续脱壳 修复 iat得到 脱壳后 文件
第二个问题是
我查找字符串找到了这里然后回车进入代码 没有看到 教程提到的MessageBoxA/W
然后就迷茫了不知道怎么处理 !
han1235881 发表于 2017-11-8 14:38
我试了 下 还是不行,我先留着这个问题继续学
火急火燎的的就上 效果很不好
再次谢谢 大H哥
正好我也用这个软件,我看了下最新版1.4.3.0,这个程序确实很有意思,你找的地方确实是一个弹出点,但这地方不适合改,原因是他所有的弹窗都是调用这里来弹的,并且还设置了字符串陷阱,其实只要在你这个地方继续往下跟踪,回朔到弹窗前就能看到,关键代码如下:
0043E5EA|. /0F8D B6000000 jge PanDownl.0043E6A6
0043E5F0|. |83EC 18 sub esp,0x18
0043E5F3|. |C705 281E5D00 00>mov dword ptr ds:,0x0
0043E5FD|. |8BCC mov ecx,esp
0043E5FF|. |33C0 xor eax,eax
0043E601|. |6A FF push -0x1
0043E603|. |50 push eax
0043E604|. |C741 14 07000000 mov dword ptr ds:,0x7
0043E60B|. |C741 10 00000000 mov dword ptr ds:,0x0
0043E612|. |68 9C205D00 push PanDownl.005D209C ;提示
0043E617|. |66:8901 mov word ptr ds:,ax
0043E61A|. |E8 110BFDFF call PanDownl.0040F130
0043E61F|. |83EC 18 sub esp,0x18
0043E622|. |8BC4 mov eax,esp
0043E624|. |68 01FF0000 push 0xFF01
0043E629|. |68 14900000 push 0x9014
0043E62E|. |68 28750000 push 0x7528
0043E633|. |68 1A4E0000 push 0x4E1A
0043E638|. |68 46550000 push 0x5546
0043E63D|. |68 8E4E0000 push 0x4E8E
0043E642|. |68 28750000 push 0x7528
0043E647|. |68 975F0000 push 0x5F97
0043E64C|. |68 0D4E0000 push 0x4E0D
0043E651|. |68 0CFF0000 push 0xFF0C
0043E656|. |68 28750000 push 0x7528
0043E65B|. |68 7F4F0000 push 0x4F7F
0043E660|. |68 416D0000 push 0x6D41
0043E665|. |68 A44E0000 push 0x4EA4
0043E66A|. |68 604E0000 push 0x4E60
0043E66F|. |68 665B0000 push 0x5B66
0043E674|. |68 9B4F0000 push 0x4F9B
0043E679|. |68 C54E0000 push 0x4EC5
0043E67E|. |68 F64E0000 push 0x4EF6
0043E683|. |68 6F8F0000 push 0x8F6F
0043E688|. |68 2C670000 push 0x672C
0043E68D|. |6A 15 push 0x15
0043E68F|. |50 push eax
0043E690|. |E8 2B170000 call PanDownl.0043FDC0
0043E695|. |83C4 5C add esp,0x5C
0043E698|. |33D2 xor edx,edx ; |
0043E69A|. |33C9 xor ecx,ecx ; |
0043E69C|. |6A 01 push 0x1 ; |Arg1 = 00000001
0043E69E|. |E8 8D560000 call PanDownl.00443D30 ; \PanDownl.00443D30
0043E6A3|. |83C4 34 add esp,0x34
0043E6A6|> \8B0D DC9E5C00 mov ecx,dword ptr ds: Hmily 发表于 2017-11-8 15:08
正好我也用这个软件,我看了下最新版1.4.3.0,这个程序确实很有意思,你找的地方确实是一个弹出点,但这 ...
感谢 大H 哥!!!
感谢 大H 哥!!!
感谢 大H 哥!!!
重要的事情说三遍。。。。。。{:1_920:}
大 H哥 给您 汇报个好消息 下一步在去掉 标题等等{:1_918:}这个程序的第二个弹窗 被我找到并且干掉了
我根据您给的第一个弹窗寻找办法 查看了 kido 老师 F12大法回溯找代码,我看着您是找的跳转,跳过 关键 call ,我也这么改的。右键 显示调用
这是关键代码
这里有个 跳转没有实现 我看着我查找的call 在这个跳里面 瞎猫碰死耗子改成 jmp
0044F17B /74 61 je short 2-1.0044F1DE 这里 一个不实现的跳转我改成jmp 就可以了
0044F17D |83EC 18 sub esp,0x18
0044F180 |8BC4 mov eax,esp
0044F182 |8965 D0 mov dword ptr ss:,esp
0044F185 |68 4A540000 push 0x544A
0044F18A |68 6C510000 push 0x516C
0044F18F |6A 02 push 0x2
0044F191 |50 push eax ; 2-1.00593684
0044F192 |E8 290CFFFF call 2-1.0043FDC0
0044F197 |83EC 08 sub esp,0x8
0044F19A |C645 FC 02 mov byte ptr ss:,0x2
0044F19E |8BCC mov ecx,esp
0044F1A0 |C741 14 0700000>mov dword ptr ds:,0x7
0044F1A7 |C741 10 0000000>mov dword ptr ds:,0x0
0044F1AE |8379 14 08 cmp dword ptr ds:,0x8
0044F1B2 |72 04 jb short 2-1.0044F1B8
0044F1B4 |8B01 mov eax,dword ptr ds: ; 2-1.005936BC
0044F1B6 |EB 02 jmp short 2-1.0044F1BA
0044F1B8 |8BC1 mov eax,ecx
0044F1BA |33D2 xor edx,edx
0044F1BC |6A FF push -0x1
0044F1BE |66:8910 mov word ptr ds:,dx
0044F1C1 |8D45 D8 lea eax,dword ptr ss:
0044F1C4 |52 push edx
0044F1C5 |50 push eax ; 2-1.00593684
0044F1C6 |E8 65FFFBFF call 2-1.0040F130
0044F1CB |C645 FC 01 mov byte ptr ss:,0x1
0044F1CF |33D2 xor edx,edx
0044F1D1 |8B4F 04 mov ecx,dword ptr ds:
0044F1D4 |6A 01 push 0x1
0044F1D6 |E8 554BFFFF call 2-1.00443D30 ; 第二个
0044F1DB |83C4 34 add esp,0x34
0044F1DE \C745 FC FFFFFFF>mov dword ptr ss:,-0x1
然后就 突然 把这个 弹窗解决了
大H 哥 我还有个疑问 就是这个代码 怎么分析呢
我也能看明白 压栈 出栈 mov 传送数据可是程序怎么走 不明白
我需要 补充什么知识呢或者哪位大牛的教程可以 膜拜下
链接:http://pan.baidu.com/s/1o8wZbxK 密码:f0ww这是程序 里面是原程序和我脱壳的文件运行环境 虚拟机 那地方应该是oep,弹窗不一定都只是用一个api,也可能是其他api,你可以通过其他方式找那个弹窗,比如堆栈啦,或者字符串,然后分析他用什么api的。 Hmily 发表于 2017-11-6 11:30
那地方应该是oep,弹窗不一定都只是用一个api,也可能是其他api,你可以通过其他方式找那个弹窗,比如堆栈 ...
谢谢 大H 哥 根据您的提示 我下的这几个断点
运行之后找到了我 要的 消息框的内容, 第二课 kido 老师 的教程是直接 回车 进入call
我查了下有12个参数应该有 12 个push
我查了下有12个参数应该有 12 个push
这里call这往上数 有两个 push 我应该选择到哪里然后nop 掉呢
我的测试过程是 call连上面第一个 push一起nop掉 保存后 运行无反应
然后从新来 继续往上多选择 push保存还是不行,错误出现在哪里呢?
大H 哥 不吝赐教奥^^ han1235881 发表于 2017-11-6 16:25
谢谢 大H 哥 根据您的提示 我下的这几个断点
运行之后找到了我 要的 消息框的内容, 第二课 kido 老 ...
如果换作我,我看看这个函数有没有其他调用,如果没有,那我直接把这个函数给retn了,改跳转push的话应该从4de94e第一个push开始吧。 Hmily 发表于 2017-11-6 16:34
如果换作我,我看看这个函数有没有其他调用,如果没有,那我直接把这个函数给retn了,改跳转push的话应该 ...
大H哥
我刚学了 几天 函数有没有调用 不会判断 知道点 retn 大法 但是不是很理解,
我把这段选定 然后nop 掉保存程序 无法运行
请指点下我需要 补充下哪方面的 知识
han1235881 发表于 2017-11-6 21:46
大H哥
我刚学了 几天 函数有没有调用 不会判断 知道点 retn 大法 但是不是很理解,
我把这段选定 然 ...
保存后运行出现什么?是这段代码问题?你可以直接调试的时候nop掉,看看能不能运行,不用保存。 Hmily 发表于 2017-11-7 09:51
保存后运行出现什么?是这段代码问题?你可以直接调试的时候nop掉,看看能不能运行,不用保存。
我试了 下 还是不行,我先留着这个问题继续学
火急火燎的的就上 效果很不好
再次谢谢 大H哥