Leo 告訴我 SlickEdit 2011 (16.0.0) 釋出了
看了一下, 跟以前的版本确實有所不同了, 并且32位和64位版本是分開的,不像前兩年隻有32位版本,不過我記得似乎更早以前Linux也有過64位版本的
Windows 32位 版本 修改方法如下
0x40E77A 處 mov al, bl 改為 mov al, 1
也就是 檔案slickedit/win/vs.exe 偏移 0xDB7A 處的 8A C3 改為 B0 01
Linux 64位 版本 修改方法 如下
0x41A65C 處 mov eax, ebx 改成 mov al, 1
也就是 檔案 slickedit/bin/vs 偏移 0x 1A65C 處 89 D8 改為 B0 01
Linux 32
0x8061AE0 處 movzx eax, [ebp+var_29] 改為mov al, 1
也就是 檔案slickedit/bin/vs 偏移 0x19AE0 處 0F B6 45 D7 ( 83 C4 4C 5B 5E 5F 5D C3 8B 75 C4 C6) 改為 B0 01 90 90
$ md5sum -b vs
ced6ff40edf000cd8043fcdb5f32dcb5 *vs
$ sha1sum -b vs
5a16916328ccb2d16cc3b8a448c520379c42e5d2 *vs
Windows 64位 版 本 因為在Windows 7在Virtualbox裡運作很差, 沒時間切換到另外一個硬碟上安裝的Win7上去, 且不知道為什麼AMD的CPU,Gigabyte的主機闆跑Win7 啟動非常慢(有沒有人可以告訴我是什麼原因), 是以我沒有實際測試過,但是在Windows XP 32bit上用
msiexec /a se_16000006_win64_full.msi /qb TARGETDIR=”E:/zhiwei”
解壓縮到了 E:/zhiwei//SlickEditV16.0.0×64/win 目錄下,用IDA 64分析了一下, 可嘗試做修改:
0x14000FFAA 處 movzx eax, dil 改成 mov al, 1
也就是 檔案vs.exe 偏移 0xF3AA 處 40 0F B6 C7 (48 8B 5C 24 50 48 8B 6C 24 60 48 8B 74 24 68)改成 B0 01 90 90
驗證通過的, 留言說明一下
Mac OS X 的版本,等我有空玩我的MacBook Pro時再看.
2011-5-14 更新
其實我也沒在Mac Book Pro上安裝, 就是 在Linux系統下挂載Mac OS X的dmg安裝檔案
0×17084 mov eax, [ebp+var_30] 改成 mov al, 1
也就是 檔案偏移0×1675084 處 8B 45 D0 (83 C4 40 5B 5E 5D C3 55 89 E5 53 83 EC 14) 改成 B0 01 90
….
順便說下 我怎麼得到 mov al, 1 的機器碼的
寫個C的Hello,World程式
#include
int main()
{
puts(“Hello,World./n”);
return 1;
}
然後轉成彙編
gcc -masm=intel -S hello.c
就會生成一個hello.s的彙編源程式, 然後根據需要添加指令到合适的地方, 編譯成二進制檔案,在用IDA打開就可以看到對應的機器碼