吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3249|回复: 6
收起左侧

[第二课] 先发个课外作业

[复制链接]
maxwellhouse 发表于 2015-7-20 21:54
因为之前某段时间里面曾经用过这个小工具在上班时搞小动作,所以对这个软件还是比较上心,感觉挺好用的
缺点是界面内有些看不顺眼的东西,之前就一直想弄掉
正好这次K大讲到这方面,直播完当晚就试验了一下,去掉了弹网页,但是窗口没搞定
主要原因是一开始去改了堆栈数据没法保存,后来知道这样不行,就想着NOP掉CALL
这时候发现了另一个问题,就是界面内所有的WINDOW都是一个CALL创建的,NOP掉之后所有的窗口都没有了,想到了要把创建关键的那个窗口的那次CALL参数给改掉,但是无从下手,因为没有编程经验,虽然以前在学校学过一点汇编。。。(楼主工科男)
今天经@L4Nce 在群里提醒,改了一下代码,用JMP到空白的地方去写了几句判断,终于算是达到目的了
但是当中有个问题,我想将软件界面高度改小一点,到正好容纳那几个按钮的高度,代码也写了进去,调试看起来CALL参数也改掉了,但是软件界面却没有变,看起来是不起作用,此处请大神指点一下
附上脱壳后的软件和修改后的软件 Unpack_.rar (513.96 KB, 下载次数: 12)





以下过程:
原来软件界面
QQ截图20150720211213.png

带壳,ASPACK的忘了什么版本,总之手脱掉了


软件右边那个按钮,【注册沙丁鱼挂机赚钱】点击之后会跳出一个网页来,是想要干掉的
绿色那一大堆是没有用的,也是想干掉的

拖到资源修改器里面,发现里面显示好几个对话框,却没有一个是软件对应的,看起来这个方法是行不通的,不明白是什么原因会是这样
QQ截图20150720215011.png




然后是其他方法
开始是用C32ASM去掉了右边那个按钮的作用,但是按钮还在,只是点了之后会跳出资源管理器,猜可能是调用EXPLORER.EXE然后给参数打开网页的,过程就不贴图了,K大讲的很详细这个也很简单的
(此处搜索到了网址,没有搜索到EXPLORER.EXE关键字,所以只是填充了网址,至于怎么将调用EXPLORER.EXE去掉,使点击了按钮以后不会跳出资源管理器,这个请能人分析一下给个提示,我是没找到改的地方)




这时网页去掉了,需要改界面
用CREATEWINDOWEXA搜
开始改堆栈,发现无法保存,于是想到NOP掉所有的CALL
就是这时候发现软件所有的WINDOW都是一个CALL创建的,NOP掉之后所有的窗口都没有了
QQ截图20150720212233.png
NOP掉CALL之后
QQ截图20150720212557.png
这样不行,于是想到了要把创建关键窗口的那两次CALL参数给改掉,其他的不能动






第一次写了如下代码,目的是将右边的按钮和绿色窗口的尺寸改为0,然后将窗口名称下面那个下拉窗口的宽度缩短,将【刷新窗口列表】的位置移动到下来列表窗的右边,最后将整个软件的高度缩小到刚好容纳这几个按钮,不留空白
从第5个PUSH处JMP 0046B2E5
0046B2E5处的代码是添加的,如下:

cmp dword ptr ss:[ebp-0x20],00000108
jz 00000001
cmp dword ptr ss:[ebp-0x20],000001cb
jz 00000002
cmp dword ptr ss:[ebp-0x1C],00000080
jz 00000001
cmp dword ptr ss:[ebp-0x1C],000001a8
jz 00000003
push dword ptr ss:[ebp-0x20]
push dword ptr ss:[ebp-0x1C]
jz 00000004
push 0
push 0
jz 00000004
push a0
push 1E7
jz 00000004
push a0
push 14E
cmp dword ptr ss:[ebp-0x18],00000018
jz 00000005
push dword ptr ss:[ebp-0x18]
push dword ptr ss:[ebp-0x14]
jmp 0045E94d
push 0
push 150
jmp 0045E94d


QQ截图20150720213233.png

保存之后,会出错,这里我也不知道是为什么
QQ截图20150720213535.png



然后第二次,代码修改如下,将右边的按钮和绿色窗口的尺寸改为0,然后将【刷新窗口列表】的宽度加大到合适软件界面的宽度,位置不移动,最后将整个软件的高度缩小到刚好容纳这几个按钮,不留空白
从第5个PUSH处JMP 0046B2E5
0046B2E5处的代码是添加的,如下:


cmp dword ptr ss:[ebp-0x20],00000108
jz 00000001
cmp dword ptr ss:[ebp-0x20],000001cb
jz 00000002
cmp dword ptr ss:[ebp-0x1C],00000080
jz 00000001
cmp dword ptr ss:[ebp-0x1C],00000050
jz 00000003
push dword ptr ss:[ebp-0x20]
push dword ptr ss:[ebp-0x1C]
jmp 0045E947
push 0
push 0
jmp 0045E947
push be
push 1E7
jmp 0045E947
push 20
push 1c7
jmp 0045E947


这里改完后,可以运行了,该去掉的窗口也去掉了,但是唯一的主窗口没有改掉,也就是软件高度没有变化,底部留出一大片空白,是去掉的绿色窗口的区域
OD调试时堆栈的参数是显示已经改了的,不知道是为什么,有高手知道的话,麻烦指点一下,感激不尽
QQ截图20150720214352.png



改完成之后

QQ截图20150720214527.png



以上虽然做了一些修改,去掉了不想要的东西,但是也遗留下一些问题,没有找到调用资源管理器的地方,改了主窗口的尺寸却不起作用,希望看到的大侠们知道原因的提点一下,多谢啦

免费评分

参与人数 1热心值 +1 收起 理由
woshishui123 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

woshishui123 发表于 2015-7-20 22:07
看来LZ在群里学到了不少知识
苏紫方璇 发表于 2015-7-21 09:27
XKQ 发表于 2015-7-21 09:48
本帖最后由 XKQ 于 2015-7-21 09:49 编辑

QQ截图20150721094732.png 易语言的窗口应该还会在窗口创建后重新调整窗口,你应该用一下这个API:MoveWindow,然后改里面的参数Height应该可以了
苏紫方璇 发表于 2015-7-21 11:35
我改好了一个  用的是我昨天说的那个非常复杂的办法修改代码如下

[Asm] 纯文本查看 复制代码
004013F6     /E9 4B9F0600   jmp Unpack_1.0046B346
004013FB     |90            nop

0046B346      60            pushad
0046B347      9C            pushfd
0046B348      68 D6B34600   push Unpack_1.0046B3D6                   ;  ASCII "设置窗口透明度 1.0"
0046B34D      68 00000000   push 0x0                                 ;  class
0046B352      68 00000000   push 0x0                                 ;  hwndChildAfter
0046B357      68 00000000   push 0x0                                 ;  hwndParent
0046B35C      FF15 40654B00 call dword ptr ds:[<&user32.FindWindowEx>;  user32.FindWindowExA
0046B362      68 04000000   push 0x4                                 ;  uFlags
0046B367      68 D0000000   push 0xD0                                ;  cy
0046B36C      68 E9010000   push 0x1E9                               ;  cx
0046B371      68 9A000000   push 0x9A                                ;  y
0046B376      68 B7010000   push 0x1B7                               ;  x
0046B37B      68 FEFFFFFF   push -0x2                                ;  hWndlnsertAfter
0046B380      50            push eax                                 ;  hWnd
0046B381      FF15 D0644B00 call dword ptr ds:[<&user32.SetWindowPos>;  user32.SetWindowPos
0046B387      9D            popfd
0046B388      61            popad
0046B389    ^ E9 6E60F9FF   jmp Unpack_1.004013FC


0046B3D6      C9            leave                                    ;  设置窗口透明度 1.0
0046B3D7      E8 D6C3B4B0   call B0FB77B2
0046B3DC      BF DACDB8C3   mov edi,0xC3B8CDDA
0046B3E1      F7B6 C820312E div dword ptr ds:[esi+0x2E3120C8]
0046B3E7      3000          xor byte ptr ds:[eax],al



我在易语言窗口启动完成事件中做一个跳转,然后调用findwindow(后来发现导入表中没有,于是调用了FindWindowExA)获取窗口句柄,然后在调用SetWindowPos改变窗体大小。
搜狗截图_2015-07-21_11-34-25.png
Unpack_1.7z (229.13 KB, 下载次数: 1)

免费评分

参与人数 1热心值 +1 收起 理由
maxwellhouse + 1 热心回复!

查看全部评分

 楼主| maxwellhouse 发表于 2015-7-21 23:44
XKQ 发表于 2015-7-21 09:48
易语言的窗口应该还会在窗口创建后重新调整窗口,你应该用一下这个API:MoveWindow,然后改里面的参数Height应 ...

隐藏的高手啊
lxj8378 发表于 2015-7-24 13:55
我试了一下,忘了是下CreateWindow还是CreateWindowEX,反正是建立窗口的aqi断点,停在user32模块中,按alt-f9进入程序模块中,按几次ctrl-f9再找到edit的那个窗口把higt和weigh的参数都改成0,就把绿色的说明去掉了。
只是想改showwindow的参数的方法没有成功,下了断点进入程序模块中,没找到和edit相关的部分,第二种方法没成功,可我认为应该能找到,各位高手有办法没,教一下。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 12:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表