## 01|修改Win用戶名 打開運行,輸入cmd,回車; 輸入control userpasswords2,回車; 點擊屬性,修改用戶名,點擊確定; 打開運行,輸入regedit,回車; 定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Cur ...
01|修改Win用戶名
打開運行,輸入cmd,回車;
輸入control userpasswords2,回車;
點擊屬性,修改用戶名,點擊確定;
打開運行,輸入regedit,回車;
定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList;
選中下麵名字最長的項,雙擊右側的ProfileImagePath,修改 C:\Users\ 後的用戶名,點擊確定;
註銷並重新登錄;
打開 C:\User\,將新的用戶名文件夾刪除,再將原來的的用戶名文件夾重命名為新的用戶名;
再次註銷並重新登錄。
02|修的內核bug如何推進
發patch
-
克隆最新代碼,確定問題還存在
-
新建本地分支,修改要修改的部分
git add 修改的文件 git commit -s commit-log 《標題》:修改的大類:簡短的patch主要描述 《空行》 《詳細描述》 git format-patch -1(可以在三小短線下寫點東西)
-
使用get-maintainer獲取當前文件的維護者,發給子系統(可以使用git自帶的send-mail命令)
03|cl(VS ToolChain)編譯ffmpeg
lame: ./configure --enable-shared --prefix=/mnt/Mp3/Out/ --host=x86_64-pc-windows CC=cl.exe
ffmpeg: ./configure --prefix=Out --toolchain=msvc --enable-w32threads --enable-x86asm --disable-doc --disable-ffprobe --enable-small --disable-runtime-cpudetect --disable-network --disable-debug
x264: ./configure --enable-static --enable-shared
lame: ./configure --prefix=/usr/local --enable-static --enable-shared
ffmpeg: ./configure --prefix=Out --enable-x86asm --enable-network --enable-protocol=https --enable-optimizations --enable-gpl --enable-libx264 --enable-libmp3lame --enable-small --enable-static --disable-shared --disable-ffprobe --disable-doc --extra-cflags=/usr/local/include --extra-ldflags=/usr/local/lib
04|WSA on Win10
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
https://github.com/cinit/WSAPatch/
05|Docker Commands on Win
www.docker.com
learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig
learn.microsoft.com/zh-cn/windows/wsl/wsl-config#configuration-setting-for-wslconfig
mklink /j "C:\Program Files\Docker" "K:\Vmachine\Docker"
wsl --export dis_name dest
wsl --unregister dis_name
wsl --import dis_dest dis_export --version 2
06|CheatEngine PVZ 0cd
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
add dword ptr [edi+24],10000
mov eax,[edi+24]
exit:
jmp returnhere
"PVZ原版啟動程式.exe"+8728C:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"PVZ原版啟動程式.exe"+8728C:
add dword ptr [edi+24],01
mov eax,[edi+24]
//Alt: db 83 47 24 01 8B 47 24
<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="38">
<CheatEntries>
<CheatEntry>
<ID>0</ID>
<Description>"No description"</Description>
<LastState Value="0" RealAddress="1566453C"/>
<VariableType>4 Bytes</VariableType>
<Address>1566453C</Address>
</CheatEntry>
<CheatEntry>
<ID>1</ID>
<Description>"0cd script"</Description>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
add dword ptr [edi+24],10000
mov eax,[edi+24]
exit:
jmp returnhere
"PVZ原版啟動程式.exe"+8728C:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"PVZ原版啟動程式.exe"+8728C:
add dword ptr [edi+24],01
mov eax,[edi+24]
//Alt: db 83 47 24 01 8B 47 24
</AssemblerScript>
</CheatEntry>
</CheatEntries>
<UserdefinedSymbols/>
</CheatTable>
07|CCL反軟體查殺
multiCCL定位原理圖示
by niu-cow in NE365
2996-04-22
1.假設一種比較極端的情況:
某殺毒軟體針對某樣本
抽取瞭如下 a b c d e 的五個特征碼片段
而其中的任何一個單獨的片段都不構成完整的特征碼
更極端的情況是可能有兩套這樣的組合。
卻以其中任何兩處來識別。(見 圖1)
這樣,如果用原來的CCL就很難定位了,就算能定位,操作也
變得很複雜。
(圖1)
..............................aaaaaaaaa........................
...............................................................
.............bbbbbbb.........ccc...............................
...............................................................
...................ddddddddd...............eeeee...............
2.針對這種情況
有個思路是從一端開始蓋零(考慮到PE文件文件頭的重要性
multiCCL選擇了從尾端開始往前蓋)。
直到如圖2所示時,殺毒軟體才不能識別
(b片段被破壞了一個位元組)
這樣b尾端就出來了。
(圖2)
..............................aaaaaaaaa.........................
................................................................
.............bbbbbb000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
------------------------------------------------------------------
下麵是定b片段的頭端了
看看圖3 圖4 圖5 ,註意看b片段中間那個位元組的零的移動
(圖3)
..............................aaaaaaaaa.........................
................................................................
.............bbbb0bbb0000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
----------------------------------
(圖4)
..............................aaaaaaaaa.........................
................................................................
.............0bbbbbb00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
----------------------------------------------------------------------
(圖5)
..............................aaaaaaaaa.........................
................................................................
............0bbbbbbb00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
--------------上圖的a 和 b 兩個片段都暴露了--------------------------
圖5 中,暴露出完整的a b 兩個片段,這下又被殺毒軟體認出來了
這樣就定位出b段了。
接下來把b希用0蓋掉作為新的樣本,用殺毒軟體檢測一下是否被殺,還殺就
重覆前面的步驟定 c 段,如圖6
(圖6)
..............................aaaaaaaaa........................
...............................................................
.............0000000.........ccc...............................
...............................................................
...................ddddddddd...............eeeee...............
-----------------------------------------------------------------------
如果定好c段蓋掉後還是被殺就再定 d 段
如圖7
(圖7)
..............................aaaaaaaaa........................
...............................................................
.............0000000.........000...............................
...............................................................
...................ddddddddd...............eeeee...............
-----------------------------------------------------------------------
這樣重覆,直到片段d e ……都被找出蓋掉後,殺毒軟體再也不認了
-----------------------------------
一個位元組一個位元組來顯然太費時間,效率很低的,一次性
生成上千個文件也是不現實的。
所以考慮先用二分法粗定。到範圍小時再逐位元組替換。
-----------------------------------
從尾端開始數,以1.2.4.6.8……的大小往前蓋
即取2的指數階 , 2^n < 文件尺寸就行了。
一次生成20個左右的樣本文件,用殺毒軟體檢測
以例圖說明吧(見 圖8圖9)
下麵這個蓋了128 bytes 的還被識別
(圖8)
..............................aaaaaaaaa........................
...............................................................
.............bbbbbbb.........ccc...............................
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
-----------上面這個蓋了128 bytes的還被識別-------------
--------------下麵這個蓋了256 bytes 的不被識別了--------------------
(圖9)
..............................aaaaaaaaa........................
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
--------------------------------------------------------------------
那就說明距文件末尾256--128之間有個特征碼片段,
下一步就以圖8為樣本,
定位的範圍是 圖10 中經XXXX標記的區域
(圖10)
..............................aaaaaaaaa........................
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
---------------------------------
如此反覆,當範圍縮小到32位元組或更小,二分法就顯得效率低下了,
改用逐位元組替換法,一次生成最多32個文件。
-----------
另外,
圖8 圖9 圖10 之外,還有一種情況,
就是某次用二分法生成的所有文件
殺毒軟體都不識別,那就說明特征碼集中在最大蓋0範圍之前
即圖9中 未蓋0的區域,這時只要以圖9為樣本,
定點陣圖11中以YYYY標記的區域
(圖11)
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
------------
尾端定出後,再用 圖3圖4圖5 所示的方法把0還位元組前移,一次生成32個
文件用殺毒軟體檢測,如果32個全不被殺時,就取這32個位元組作為定位結果
對於這種大尺寸的片段,沒必要完全定位出片段的頭端。
(因為一個片段中只要修改一個位元組就夠了)
----------------------------------
==================================
----------------------------------
基本原理就如上面所述,其實就什麼簡單。
不管殺毒軟體用幾套組合,用複合還是單一特征碼,都照樣搞定它。
當然,以後殺毒軟體使出什麼新招就說不准。~~~~~~~~~~~~~~~~~
(本文僅作思路上的探討,若有人因應用本文的思路帶來某些後果,均與
本文作者無關。)
若有不當之處,請各位指正,謝謝
----------------------------------------------------------
補充說明:
2006-04-24 :
剛剛發現有的殺毒軟體開始用檢測文件的某幾處是否被填充0來反定位了,
一旦被檢測到某幾處被蓋0 ,就把位置更先前的干擾碼激活。這時就算
犧牲效率一直往前蓋,也只能定位出干擾碼(假的特征碼)。
現在暫時可用隨機數據串填充應付,不知道以後還會有什麼招。
另外,NDD32的特征碼用的是代碼與輸入表關聯,對付這種特征碼的方法是,
先普通定位,然後把找到的輸入表上的特征碼片段保護起來再定位,
這樣就能找到代碼里的特征碼片段了。
2005-05-22 :
通過實際測試發現等分法比二分法效率更高,於是又改用等分法了。