好友
阅读权限40
听众
最后登录1970-1-1
|
EditPlus启动校验研究
大致流程是这样的:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\ES-Computing\EditPlus 3\Install]
"Language"=dword:00000000
"eula"=dword:00000001
"Path"="D:\\图文处理\\EditPlus 3"
"INI directory"="D:\\图文处理\\EditPlus 3"
"First Run"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\ES-Computing\EditPlus 3\Install]
"License"
先读取hkcu分支Install,然后是hklm分支Install
如果,都没有License 这个键值,但有
"Path"="D:\\图文处理\\EditPlus 3" 这行测试 也可以去掉!
"INI directory"="D:\\图文处理\\EditPlus 3"
这个路径,那么
reg_u.ini
[Install]
License=
这个授权信息就会起作用。
"First Run"=dword:00000000 这个东西,我们改成为dword:00000001呢?就会启动时出下面这个东西
"eula"=dword:00000001 这个没有或为dword:00000000呢?
就会
"Language"=dword:00000000
"Path"="D:\\图文处理\\EditPlus 3" 这两行,好像都可以没有
于是整理下得到了下面的袖珍注册表:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\ES-Computing\EditPlus 3\Install]
"INI directory"="D:\\图文处理\\EditPlus 3"
"eula"=dword:00000001
"First Run"=dword:00000000
外加下面的这行即可运行
reg_u.ini
[Install]
License=
#####新结论 editplus爆破过期
-------------------------------------------------------------------------------------------------
0045D5E0 . 56 push esi
0045D5E1 33D2 xor edx,edx ; 这里nop即爆,无时间限制也不用注册了
顶上的EVALUATION VERSION字样没有了,只是关于中有点遗憾
0045D5E3 . 68 D8F35700 push editplus.0057F3D8 ; 乞啊魄
0045D5E8 . 68 C4F35700 push editplus.0057F3C4 ; EVALUATION VERSION
0045D5ED . 66:8910 mov word ptr ds:[eax],dx
0045D5F0 . E8 EBB5FFFF call editplus.00458BE0
这样之后,没有授权对话框就不出来,更省事
-------------------------------------------------------------------------------------------------
上面分析的有误!!(之所以没出现是因为注册表
HKEY_CURRENT_USER\Software\ES-Computing\EditPlus 3\Install
eula =1 注册表键值得1就不会出现!
########但是后来又发现regworkshop删除所有EditPlus 3(按区分大小写查找键值后)
00411DDC |. BE E00A5700 mov esi,22222222.00570AE0 ; license.txt
00411E7A |. /75 23 jnz X22222222.00411E9F ; 未实现,下面不远就有CALL了(确实和谐之后没有了
00411EE4 |. 33D2 xor edx,edx ; | F2
00411EE6 |. 52 push edx ; |wParam => 0
00411EE7 |. 6A 0C push 0xC ; |Message = WM_SETTEXT
00411EE9 |. D1F8 sar eax,1 ; |
00411EEB |. 53 push ebx ; |hWnd
00411EEC |. 66:895445 FE mov word ptr ss:[ebp+eax*2-0x2],dx ; | 这句时第2个对话框(和谐不起作用)
00411EF1 |. FF15 90C85600 call dword ptr ds:[<&USER32.SendMessageW>; \SendMessageW
HKEY_CURRENT_USER\Software\ES-Computing\EditPlus 3\Install
eula =1注册表键值得1时 就不会出现了
OD中搜索 eula 得到2处
00418E68 . /75 3A jnz X33333333.00418EA4 ; 这里尝试次Z标志位,成功,所以改为JMP
########接下来研究 打开editplus不用设置也是默认以新空白文档打开
先将editplus中选项,新空白文档 开启勾选上,使editplus_u.ini中生成
[Options]
Blank=1 字段
----------------
以editplus_u.ini这个为突破口,OD中进行搜索
于是得到下面的两处,设好断点:
Breakpoints
地址 模块 激活 反汇编 注释
004129E7 4444 始终 mov ebx,4444.00570B68 editplus_u.ini
00418F57 4444 始终 push 4444.00570B68 editplus_u.ini
一路F8,眼睛瞄着,信息窗口,一旦发现Blank=1 字样就停住
到这4129E7 |> \BB 680B5700 mov ebx,4444.00570B68 ; editplus_u.ini; Default
时发现editplus_u.ini字样,要小心了
005140EB E8 5AFFFFFF call 4444.0051404A 这句根键已经写完,NOP之后子键不写了
00514082 /75 37 jnz X4444.005140BB ;所以最后改这里竟然成功了
00514084 |. |8D45 F0 lea eax,[local.4]
00514087 |. |50 push eax ; /pDisposition
00514088 |. |8D45 F8 lea eax,[local.2] ; |
0051408B |. |50 push eax ; |pHandle
0051408C |. |57 push edi ; |pSecurity => NULL
0051408D |. |56 push esi ; |Access => KEY_QUERY_VALUE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY|20000
0051408E |. |57 push edi ; |Options => REG_OPTION_NON_VOLATILE
0051408F |. |57 push edi ; |Class => NULL
00514090 |57 push edi
00514091 |FF73 54 push dword ptr ds:[ebx+0x54] ; 是这句开始写根键
00514094 |. |8B1D 7CC05600 mov ebx,dword ptr ds:[<&ADVAPI32.RegCrea>; |ADVAPI32.RegCreateKeyExW
0051409A |FF75 FC push dword ptr ss:[ebp-0x4]
0051409D |FFD3 call ebx ; 这句爆破之后确实是不写了,但无法正常运行了
0051409F |85C0 test eax,eax
005140A1 |75 18 jnz X4444.005140BB
005140A3 |8D45 F0 lea eax,dword ptr ss:[ebp-0x10] ; 下面那句写
005140A6 |. |50 push eax ; /pDisposition
005140A7 |. |8D45 F4 lea eax,[local.3] ; |
005140AA |. |50 push eax ; |pHandle
005140AB |. |8B45 EC mov eax,[local.5] ; |
005140AE |. |57 push edi ; |pSecurity => NULL
005140AF |. |56 push esi ; |Access => KEY_QUERY_VALUE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY|20000
005140B0 |. |57 push edi ; |Options => REG_OPTION_NON_VOLATILE
005140B1 |. |57 push edi ; |Class => NULL
005140B2 |. |57 push edi ; |Reserved => 0
005140B3 |. |FF70 68 push dword ptr ds:[eax+0x68] ; |Subkey
005140B6 |. |FF75 F8 push [local.2] ; |hKey
005140B9 |. |FFD3 call ebx ; \RegCreateKeyExW
005140BB |> \8B35 80C05600 mov esi,dword ptr ds:[<&ADVAPI32.RegClos>; ADVAPI32.RegCloseKey
005140C1 |. 397D FC cmp [local.1],edi
005140C4 |. 74 05 je X4444.005140CB
005140C6 |. FF75 FC push [local.1] ; /hKey
005140C9 |. FFD6 call esi ; \RegCloseKey
005140CB |> 397D F8 cmp [local.2],edi
005140CE |. 74 05 je X4444.005140D5
005140D0 |. FF75 F8 push [local.2]
005140D3 |. FFD6 call esi
005140D5 |> 8B45 F4 mov eax,[local.3]
005140D8 |. 5F pop edi
005140D9 |. 5E pop esi
005140DA |. 5B pop ebx
005140DB |. C9 leave
005140DC \. C3 retn
005140DD /$ 8BFF mov edi,edi
005140DF |. 55 push ebp
005140E0 |. 8BEC mov ebp,esp
005140E2 |. 51 push ecx
005140E3 |. 51 push ecx
005140E4 |. 56 push esi
005140E5 |. 33F6 xor esi,esi
005140E7 |. 57 push edi
005140E8 |. 8975 FC mov [local.1],esi
005140EB E8 5AFFFFFF call 4444.0051404A
005140F0 |. 8BF8 mov edi,eax
005140F2 |. 3BFE cmp edi,esi
005140F4 |. 75 04 jnz X4444.005140FA
005140F6 |. 33C0 xor eax,eax
005140F8 |. EB 25 jmp X4444.0051411F
005140FA |> 8D45 F8 lea eax,[local.2]
005140FD |. 50 push eax ; /pDisposition
005140FE |. 8D45 FC lea eax,[local.1] ; |
00514101 |. 50 push eax ; |pHandle
00514102 |. 56 push esi ; |pSecurity
00514103 |. 68 1F000200 push 0x2001F ; |Access = KEY_QUERY_VALUE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY|20000
00514108 |. 56 push esi ; |Options
00514109 |. 56 push esi ; |Class
0051410A |. 56 push esi ; |Reserved
0051410B |. FF75 08 push [arg.1] ; |Subkey
0051410E |. 57 push edi ; |hKey
0051410F |. FF15 7CC05600 call dword ptr ds:[<&ADVAPI32.RegCreateK>; \RegCreateKeyExW
00514115 |. 57 push edi ; /hKey
00514116 |. FF15 80C05600 call dword ptr ds:[<&ADVAPI32.RegCloseKe>; \RegCloseKey
0051411C |. 8B45 FC mov eax,[local.1]
0051411F |> 5F pop edi
00514120 |. 5E pop esi
00514121 |. C9 leave
试验项目,彻底不生成配置文件
editplus_u.ini
reg_u.ini 这个搜索不到
顶上的那个能找到两处,而且是程序退出时建立的editplus_u.ini
00412A10 |. E8 B7BF1200 call 55555555.0053E9CC
00469E7F |. E8 1C55FEFF call 55555555.0044F3A0
00469E84 |. 8B4C24 20 mov ecx,dword ptr ss:[esp+0x20]
00469E88 |. 8B4424 1C mov eax,dword ptr ss:[esp+0x1C]
00469E8C |. 51 push ecx
00469E8D |. 8D5424 54 lea edx,dword ptr ss:[esp+0x54]
00469E91 |. 52 push edx
00469E92 |. 50 push eax
00469E93 |. E8 C876FEFF call 55555555.00451560
0045157E |. E8 BDFEFFFF call 55555555.00451440---〉生成editplus_u.ini
00451583 |. 83C4 0C add esp,0xC
00451586 |. 8BF0 mov esi,eax
试验项目,只要一个editplus运行,运行时少文件的提示全没有。
文件操作失败。
D:\图文处理\EditPlus 3\新建文件夹\htmlbar.acp
系统找不到指定的文件。
500535 FF15 04C95600 call dword ptr ds:[<&USER32.MessageBoxW>>; USER32.MessageBoxW经过一层层的F7能来到这里 NOP就OK了
editplus终极爆破新鲜出炉:不写注册表,也不用注册,单个文件运行少文件提示全暴,纯种绝对绿色版本:
操作目的,纯属蛋痛~~
为了更加深刻的学习OD使用技法~~
追求全功能版本者,请甚用~~~
最后再交待一句话:退出时一定要先保存,如果直接点击关闭按钮,它不会提醒你保存的(原版不这样)
由于K掉了配置文件的CALL,所以配置文件是不会生成的,但可以自己手工加,它会读到的。
什么注册表文件啊,也是不会生成的,不信你可以搜索下
本人只使用几个功能,其他对俺来说没有用处,所以爆破起来玩玩。
欢迎反馈问题,共同进步提高~~~我会努力修正的~~~
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|