爬爬虫 2007-12-15 09:44 AM
绿化脚本竟然用NSIS打包,哪位能反编译它!
体积很小,用解包工具没办法查到源码!
fpx_123 2008-3-20 07:54 AM
我可惜不会啊 郁闷
thtz 2008-3-26 07:11 PM
目前为止,NSIS不可能逆向编译。没代码没有任何用途,但是你可以换个思路进行分析,监视系统盘文件更改和注册表变动情况来分析该脚本做了那些改动。
贾可 2008-4-6 10:10 PM
你用什么解包工具能出现一个 nsi 文件,我记得 7-zip 有一个版本能解出,虽然这个不是原始的脚本。
X-Star 2008-4-8 08:42 AM
回复 1# 的帖子
仅仅是一个自定义界面而已
代码很简单的
zhfi 2008-4-8 03:37 PM
这个脚本代码,很简单。
仅仅根据原版安装写入部分注册表内容,没有调用API进行安装,所以需要手动添加输入法。
解包得到的代码:
Call 209
UpdateSatusText 8
File $PLUGINSDIR\modern-header.bmp
SetBrandingImage 1
GetDlgItem 33 23 27
CreateFont 34 -38 -39 32 0
SendMessage -1 40 44 36 34 0
SerCtlColors 40 0 0
GetDlgItem 33 23 51
SerCtlColors 40 0 0
GetDlgItem 33 23 56
SerCtlColors 40 0 0
GetDlgItem 33 23 61
SerCtlColors 40 0 0
GetDlgItem 33 23 66
SerCtlColors 40 24 0
GetDlgItem 33 23 71
SerCtlColors 40 24 0
SendMessage -1 40 81 34 76 2
Return
Return
Return
Call 209
UpdateSatusText 8
File $PLUGINSDIR\ioa.ini
Return
Call 209
File $PLUGINSDIR\InstallOptions.dll
UpdateSatusText 8
Push $PLUGINSDIR\ioa.ini
RegisterDLL $PLUGINSDIR\InstallOptions.dll initDialog 0
Call 209
File $PLUGINSDIR\InstallOptions.dll
UpdateSatusText 8
RegisterDLL $PLUGINSDIR\InstallOptions.dll show 0
Return
ReadINIStr 0 139 148 88
StrCmp "$0" "2" 41 0 0
StrCmp "$0" "3" 60 0 0
Abort
CopyFiles 162 183 1808
WriteReg 2147483649 204 158 237 1
WriteReg 2147483649 204 160 246 1
WriteReg 2147483649 204 59 255 1
WriteReg 2147483649 204 264 266 1
WriteReg 2147483650 275 305 315 1
WriteReg 2147483650 275 320 329 1
WriteReg 2147483650 275 333 338 1
WriteReg 2147483650 275 371 329 1
WriteReg 2147483650 275 383 329 1
WriteReg 2147483650 388 429 446 1
WriteReg 2147483650 456 559 567 1
WriteReg 2147483650 456 579 329 1
WriteReg 2147483650 456 587 160 1
WriteReg 2147483650 594 653 662 1
WriteReg 2147483650 594 679 691 1
WriteReg 2147483650 594 701 713 1
MessageBox 0 742 0 0 0
Abort
Delete $SYSDIR\GooglePinyin.ime
DelReg 0 2147483650 751 158
WriteReg 2147483649 204 158 246 1
WriteReg 2147483649 204 160 255 1
WriteReg 2147483649 204 59 266 1
DelReg 0 2147483650 275 0
DelReg 0 2147483650 456 0
DelReg 0 2147483650 594 0
MessageBox 0 783 0 0 0
Abort
Return
IntCmp 792 796 0 183 183 0
Push $0
Push $1
Push $2
Push $3
Push 2
Push $HWNDPARENT
Push $R0
Exch
Pop $R0
Exch
Push $R1
Exch
Pop $R1
Push $R2
GetDlgItem 11 815 819
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push *(i, i, i, i) i.s
RegisterDLL $PLUGINSDIR\System.dll Call 0
Pop $R2
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::GetWindowRect(i, i) i (R1, R2)
RegisterDLL $PLUGINSDIR\System.dll Call 0
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::ScreenToClient(i, i) i (R0, R2)
RegisterDLL $PLUGINSDIR\System.dll Call 0
IntOp 11 823 54 0
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::ScreenToClient(i, i) i (R0, R1)
RegisterDLL $PLUGINSDIR\System.dll Call 0
Exch
Pop $R0
Pop $R1
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push *$R2(i .s, i .s, i .s, i .s)
RegisterDLL $PLUGINSDIR\System.dll Call 0
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push $R2
RegisterDLL $PLUGINSDIR\System.dll Free 0
Exch
Pop $R2
Pop $1
Pop $2
Pop $3
Pop $0
IntOp 0 807 154 1
IntOp 2 811 803 1
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push Kernel32::GetModuleHandle(t) i (0) .s
RegisterDLL $PLUGINSDIR\System.dll Call 0
Push 关于(&A)
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::CreateWindowEx(i,t,t,i,i,i,i,i,i,i,i,v) i (0,"BUTTON",s,0x54010000,20,$1,$0,$2,$HWNDPARENT,1300,s,0) .s
RegisterDLL $PLUGINSDIR\System.dll Call 0
Push $R0
Exch
Pop $R0
Push $R1
CreateFont 11 -38 -39 1172 0
SendMessage -1 815 44 819 34 0
Pop $R1
Pop $R0
IntOp 3 154 48 0
IntOp 1 803 160 0
IntOp 2 807 158 1
Push $R0
Push $R1
Unknown69 811 803 1176 807 23 1179
GetDlgItem 10 23 1179
CreateFont 11 -38 -39 1172 0
SendMessage -1 815 44 819 34 0
Pop $R1
Pop $R0
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::GetSystemMenu(i, i) i ($HWNDPARENT, 0) .s
RegisterDLL $PLUGINSDIR\System.dll Call 0
Pop $0
Push 0
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::AppendMenu(i, i, i, t) i ($0, 0x00000800, 0, s)
RegisterDLL $PLUGINSDIR\System.dll Call 0
Push 关于(&A)
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::AppendMenu(i, i, i, t) i ($0, 0x00000000, 1, s)
RegisterDLL $PLUGINSDIR\System.dll Call 0
Pop $3
Pop $2
Pop $1
Pop $0
Goto 208
IntCmp 792 1340 0 196 196 0
IntCmp 1347 1351 0 193 193 0
Push 关于 NS_LANG_CODE
Push ---谷歌拼音输入法绿化版-
感谢你使用这个绿化版,希望能带来
方便.同时欢迎常来我的博客
[url]www.imseb.cn[/url]逛逛,里面有些小原创
在此谢谢各位的支持。
aaplayboy 2007年12月
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::MessageBoxA(i,t,t,i) i ($HWNDPARENT,s,s,0x00000000|0x00000040)
RegisterDLL $PLUGINSDIR\System.dll Call 0
Goto 195
IntCmp 1347 1179 0 195 195 0
ShellExecute 1604 1609 0 1
Goto 208
IntCmp 792 1630 0 199 199 0
Unknown70 1637 1179 1647 0 0 0
Goto 208
IntCmp 792 1651 0 208 208 0
IntCmp 1347 1182 0 208 208 0
Push 关于安装程序
Push aaplayboy|[url]www.imseb.cn[/url]
2007 aaplayboy
我的博客:
[url]http://www.imseb.cn[/url]
Call 209
File $PLUGINSDIR\System.dll
UpdateSatusText 8
Push User32::MessageBoxA(i,t,t,i) i ($HWNDPARENT,s,s,0x00000000|0x00000040)
RegisterDLL $PLUGINSDIR\System.dll Call 0
Return
UpdateSatusText 16
StrCmp "$PLUGINSDIR" "" 0 219 0
Push $0
SetFlag 2 0
GetTempFileName $TEMP
Delete 8 $0
SetOutPath $0
IfFlag 220 0 2 0
StrCpy $PLUGINSDIR "$0"
Pop $0
Return
MessageBox 2097168 1749 0 0 0
Quit
Return
wyl0205 2008-5-11 11:06 PM
没想到爬爬虫也来了
可见梦想吧的强大yct06
zhfi 2008-6-19 05:15 PM
不知道这个玩意是干嘛的。
按照我的理解,应该是点击绿化后,就相当于安装输入法。
可是我安装输入法后,点击绿化却是把我的输入法搞坏了。
zhfi 2008-6-20 12:08 AM
谷歌拼音输入法绿色版:
您只需要将文件解压到您需要存放的路径中,运行设置工具GoogleIme.exe后可以安装/卸载输入法,安装/备份用户词汇,导入/导出输入法设置等等。
您可以在设置文件GoogleIme.ini中修改输入法的版本号,按钮文字,以及输入法设置。
安装或者卸载无需注销或者重启系统。
绿化:Air Studio
日期:2008.6
下载地址:
[url]http://www.namipan.com/d/6eb31ff644c8380942c855fc2d8c564175b2083c353a8300[/url]
[[i] 本帖最后由 zhfi 于 2008-6-20 05:03 AM 编辑 [/i]]
cctrv 2008-8-25 01:57 PM
回复 7# 的帖子
你懂汇编?!
我想学习一下.......你能解释一下吗?