Natural

natural

Breaking News

Olly Advanced v1.27 ve StrongOD v0.2.5.390

 Olly Advanced ve StrongOD, OD için iyi bir anti-hata ayıklama ve BUGFIX eklentileridir. Ancak, bu iki eklentinin önceki sürümlerinde çakışmalar var.


Burada detaylı bir analiz yapmadım, bu sadece bir ön analiz, bu yüzden herhangi bir hata varsa lütfen beni aydınlatın.

Çatışma konusuna gelince, hangi eklentinin sorumlu olduğundan bahsetmeyelim. "Eklenti" kelimesinin Çince çevirisine bakın ve bunun basit anlamını anlayacaksınız Tıpkı bir elektrik prizi gibi, sonsuz sayıda N fişi takmanız gerekir, bu da sonunda devrenin aşırı yüklenmesine neden olabilir. Güç kesintisi önemsiz bir konudur. .

Tamam, şimdi konuya geri döndüm. Bu iki eklentinin aşağıdaki çakışmalara sahip olduğunu buldum (hala bulamadığım olabilir, lütfen takip edin ve tartışın). Aşağıdaki çözüm, iki eklentinin aynı anda takılması sağlanır OD eklenti dizini birlikte yüklendiğinde ve yüklendiğinde:

1 Ctrl + G işlev çakışması: İki eklenti bu işlevi aynı anda açarsa, OD askıda kalır.
Çözüm. Olly Advanced'de bu işlevi kapatmanız yeterlidir, çünkü StrongOD varsayılan olarak bu işleve sahiptir, ancak seçenek ücretsiz ayar için verilmemiştir ve varsayılan olarak açıktır. StrongOD'da bu işlevi değiştirmek ve Ctrl + G işlevini Olly Advanced'de tutarken kapatmak istiyorsanız, önce StrongOD'u paketinden çıkarmanız gerekebilir.Büyük forumlarda yayınlanan sürüm NP kabuğunda StrongOD v0 olmalıdır. .2.5.388, 390 versiyonu altında test ettim, bu yüzden 388 versiyonunu okumadım, ancak tahminim aynı olmalı.

2 Anti-RDTSC (Sürücü tabanlı) seçeneği çelişiyor gibi görünüyor. Bunu hatırlıyorum. Daha önce yapılmış bir testti. Uzun süredir OD eklenti ayarını değiştirmedim, bu yüzden net olarak hatırlayamıyorum. OD'nin aynı anda yüklendiğini görürseniz Bu iki eklentiyle sorun yaşıyorsanız, Olly Advanced'de Anti-RDTSC işlevini kapatmayı deneyebilirsiniz.

3 Bu aynı zamanda Olly Advanced v1.27'nin yakın zamanda keşfettiği bir çelişkidir. Bunun hakkında özellikle konuşmama izin verin, umarım acemiler anlayabilir:

Olly Advanced v1.27 ve StrongOD v0.2.5.390, ister ayrı ayrı ister birlikte yüklenmiş olsun, OD'nin kendi kodunda çok sayıda dinamik değişiklik yapacak.
İki eklenti farklı şekillerde farklı olduğunda Aynı OD adresinin kodunu aynı anda değiştirmek OD'nin askıda kalmasına neden olabilir.

Olly Advanced v1.27 kısa süre önce çıktı. Denedikten sonra, sadece aşağıdaki kodun bu iki eklenti tarafından aynı anda değiştirileceğini buldum.

OD'nin askıda kalmasına neden olan kod adresi: 004AA2E0. Durum, OD aynı anda iki eklenti yüklediğinde ve yürütülebilir dosyayı yüklediğinde, OD, kod analiz edilmeye hazır olmadan önce bir flaştan sonra otomatik olarak çıkar.

Donanım yazma kesme noktası veya bellek yazma kesme noktası analizi aracılığıyla aşağıdaki kod noktaları elde edilir
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1 原始代码 OD 没加载任何插件时的代码
 
004AA2E0  /$  8B4424 04     MOV EAX,DWORD PTR SS:[ESP+4]
004AA2E4  |?  8B5424 08     MOV EDX,DWORD PTR SS:[ESP+8]
004AA2E8  |?  66:817A 08 3E>CMP WORD PTR DS:[EDX+8],403E
004AA2EE  |?  74 06         JE SHORT 004AA2F6
004AA2F0  |?  DB2A          FLD TBYTE PTR DS:[EDX]
004AA2F2  |.  DF38          FISTP QWORD PTR DS:[EAX]
004AA2F4  |?  9B            WAIT
004AA2F5  |?  C3            RETN
004AA2F6  |?  8B0A          MOV ECX,DWORD PTR DS:[EDX]
004AA2F8  |.  8908          MOV DWORD PTR DS:[EAX],ECX
004AA2FA  |.  8B4A 04       MOV ECX,DWORD PTR DS:[EDX+4]
004AA2FD  |.  8948 04       MOV DWORD PTR DS:[EAX+4],ECX
004AA300  \.  C3            RETN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2 Olly Advanced v1.27 OD 单独加载这个插件后1 处的代码会被修改成如下代码
 
004AA2E0  /$  8B4424 04     MOV EAX,DWORD PTR SS:[ESP+4]
004AA2E4  |?  8B5424 08     MOV EDX,DWORD PTR SS:[ESP+8]
004AA2E8  |?  68 F5777902   PUSH 27977F5
004AA2ED  |?  C3            RETN
004AA2EE  |?  74 06         JE SHORT 004AA2F6
004AA2F0  |?  DB2A          FLD TBYTE PTR DS:[EDX]
004AA2F2  |.  DF38          FISTP QWORD PTR DS:[EAX]
004AA2F4  |?  9B            WAIT
004AA2F5  |?  C3            RETN
004AA2F6  |?  8B0A          MOV ECX,DWORD PTR DS:[EDX]
004AA2F8  |.  8908          MOV DWORD PTR DS:[EAX],ECX
004AA2FA  |.  8B4A 04       MOV ECX,DWORD PTR DS:[EDX+4]
004AA2FD  |.  8948 04       MOV DWORD PTR DS:[EAX+4],ECX
004AA300  \.  C3            RETN
1
2
3
4
5
6
7
8
9
10
11
12
13
3 StrongOD v0.2.5.388 OD 单独加载这个插件后1 处的代码会被修改成如下代码
 
004AA2E0  /$  D97D DC       FSTCW WORD PTR SS:[EBP-24]
004AA2E3  |.  66:8165 DC FE>AND WORD PTR SS:[EBP-24],0FFFE
004AA2E9  |.  66:814D DC 00>OR WORD PTR SS:[EBP-24],400
004AA2EF  |.  D96D DC       FLDCW WORD PTR SS:[EBP-24]
004AA2F2  |.  66:8178 08 3E>CMP WORD PTR DS:[EAX+8],403E
004AA2F8  |.  75 01         JNZ SHORT 004AA2FB
004AA2FA  |.  C3            RETN
004AA2FB  |>  DB28          FLD TBYTE PTR DS:[EAX]
004AA2FD  |.  DF38          FISTP QWORD PTR DS:[EAX]
004AA2FF  |.  9B            WAIT
004AA300  \.  C3            RETN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
4 两款插件同时加载后 1 处的代码会被修改成如下代码
 
004AA2E0  /$  D97D DC       FSTCW WORD PTR SS:[EBP-24]
004AA2E3  |.  66:8165 DC FE>AND WORD PTR SS:[EBP-24],68FE
004AA2E9  |.  F5            CMC
004AA2EA  |?^ 77 8B         JA SHORT 004AA277
004AA2EC  |?  02C3          ADD AL,BL
004AA2EE  |?  04 D9         ADD AL,0D9
004AA2F0  |?  6D            INS DWORD PTR ES:[EDI],DX
004AA2F1  |?  DC66 81       FSUB QWORD PTR DS:[ESI-7F]
004AA2F4  |?  78 08         JS SHORT 004AA2FE
004AA2F6  |?  3E:40         INC EAX
004AA2F8  |.  75 01         JNZ SHORT 004AA2FB
004AA2FA  |.  C3            RETN
004AA2FB  |>  DB28          FLD TBYTE PTR DS:[EAX]
004AA2FD  |.  DF38          FISTP QWORD PTR DS:[EAX]
004AA2FF  |.  9B            WAIT
004AA300  \.  C3            RETN
Kod 4. kod olduğunda, OD anormal şekilde asılı kalacaktır.
Sorunun nerede olduğunu bilerek bir çözüm bulabiliriz.Burada herkesin uğraşmasının daha uygun yolu Olly Advanced v1.27'yi değiştirmektir. Bunun nedeni, bu eklentinin ilk seferde kabuğa sahip olmaması ve ikinci güncellemenin yavaş olmasıdır, bu nedenle bir kez değiştirmek mümkün olabilir. Bir süre kullanabilirsin ve tekrar yapmak zorunda kalmazsın.

Analiz, aşağıdaki kodun 004AA2E8 CMP WORD PTR DS'yi değiştirdiğini buldu: [EDX + 8], 403E - PUSH 27977F5 artı RETN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
yirmi bir
yirmi iki
yirmi üç
028B8B4A    68 55BC8B02     PUSH 028BBC55                            ; ASCII "FindWindow"
028B8B4F    E8 E5EBFFFF     CALL 028B7739
028B8B54    83F8 01         CMP EAX,1
028B8B57    75 15           JNZ SHORT 028B8B6E
028B8B59    B8 3E198B02     MOV EAX,028B193E
028B8B5E    50              PUSH EAX
028B8B5F    68 6BBC8B02     PUSH 028BBC6B                            ; ASCII "SetWindowTextA"
028B8B64    68 60BC8B02     PUSH 028BBC60                            ; ASCII "user32.dll"
028B8B69    E8 B18CFFFF     CALL 028B181F
028B8B6E    E8 1E87FFFF     CALL 028B1291
028B8B73    E8 90EEFFFF     CALL 028B7A08
028B8B78    6A 00           PUSH 0
028B8B7A    6A 06           PUSH 6
028B8B7C    68 99208B02     PUSH 028B2099
028B8B81    FF35 47BA8B02   PUSH DWORD PTR DS:[28BBA47]              ; OllyDBG.004AA2E8
028B8B87    FF35 4FC08B02   PUSH DWORD PTR DS:[28BC04F]
028B8B8D    E8 78020000     CALL <JMP.&kernel32.WriteProcessMemory>
028B8B92    68 7ABC8B02     PUSH 028BBC7A                            ; ASCII "Anti-RDTSC"
028B8B97    E8 9DEBFFFF     CALL 028B7739
028B8B9C    83F8 01         CMP EAX,1
028B8B9F    75 1B           JNZ SHORT 028B8BBC
028B8BA1    833D 4FD88B02 0>CMP DWORD PTR DS:[28BD84F],0
028B8BA8    75 09           JNZ SHORT 028B8BB3
028B8B8D CALL <JMP. & Kernel32.WriteProcessMemory> yürütüldüğünde, 028B8B81PUSH DWORD PTR DS: [28BBA47] adresinde [28BBA47] 'de kaydedilen adres aynı zamanda OD'de 004AA2E8'deki koddur.

Böylece kodu doğrudan 028B8B4A PUSH 028BBC55'ten 028B8B92'ye JMP'den oluşturabiliriz, ancak 028B8B4A PUSH 028BBC55'te doğrudan JMP olamaz çünkü DLL temel adresi yeniden konumlandırılır. 028B8B4A'da doğrudan JMP olarak değiştirirseniz, DLL EXE tarafından yüklendikten sonra burada olur. DLL yeniden konumlandırılabileceğinden kodu yeniden değiştirilebilir. Bu yüzden onu 028C8B54 CMP EAX, 1'de değiştiriyoruz ve DLL yeniden konumlandırma sorununu düşünmeden doğrudan burada değiştiriyoruz, sadece kodu JMP 028C8B92 olarak değiştiriyoruz.

Aşağıdakiler benim yaygın olarak kullanılan ayarlarım, temelde hiçbir çakışma olmayacak ve seçilen ayarlar hala yeterince makul!

















Hiç yorum yok