Judul: Berbagi Info Seputar [Tutorial] How to get around Invalid RVA Address error (Assembly-Csharp.dll decryption) Full Update Terbaru
link: [Tutorial] How to get around Invalid RVA Address error (Assembly-Csharp.dll decryption)
Berbagi [Tutorial] How to get around Invalid RVA Address error (Assembly-Csharp.dll decryption) Terbaru dan Terlengkap 2017
As we already knew, after v1.9.0 , all the library files has been encrypted and we no longer be able to change easily using .NET Reflector
Tool that we need:
- CFF Explorer.
- HxD or Hex Workshop
- .NET Reflector with Reflexil.
Step by step:
1 - Extract/decompile the APK file using Apktool or open APK with Winrar, go to /assets/bin/data/ and extract the Managed folder. Go the location of the Assembly-CSharp.dll and open it with CFF Explorer.
2 - Go the ".NET Directory" section, you will see something like this.

3 - Take a look at that "MetaData RVA". If you open this file in .NET Reflector, it will show you some error like this.

4 - Now, change that MetaData RVA from E9AAC908 to 001AF31C (i will tell the reason later).
Save it and re-open.
![[IMG]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tL6zuQaISzMjCdo-Vz-jpDuOGjvsK-gmOFLjw4oS7UDAaAqK9oWkELJg5faVWGoG1nBS_o1DiEnIB2rf3ouyXPjQ=s0-d)
5 - Now go "MetaData Header" section, at "Signature", change the Value to 424A5342 (this is string "BSJB" on hex)

6 - Go to the "MetaData Streams" , plus 4 units on each offset. You will have something like this.
![[IMG]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sBUgLFS2nMdu24u1eXS8Tx7ECyVWynAZT4Vu1675m94rSDoat8yigfJU9zKqJie0CbqMY1zrSasoenaAp-OpAZyg=s0-d)
7 - Save it. Now open it again with .NET Reflector and see the miracle. But do not feel happy yet, now the real hell come if you want to mod.
8 - If you try to open any function inside Assembly-CSharp.dll via .NET Reflector, it will give you some error like this pic and doesn't show any OP Code or so.
![[IMG]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tdAGaG9hNkGp8_hsFA2vyQ-s9xHnzHXYRbp4CvJHxF5MnHeSBqTV1OUQGarw2PUImlz-rRCvWLfi4yO8dwWdlm=s0-d)
9 - So what do we do now?
This time, i will use method "setTimeAcceleration" as example. You can do same for another .
Choose it , take a look at Reflexil windows, go to Attribute tab and check the RVA field.
![[IMG]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tXqkyYkZuzUxxmX6PIh0Z93hSsjG1m-cGVPUJiFQzM820EU4DWAyVmvqTE8oex3wEbMfRgANEZxVc16czzS2uFtw=s0-d)
10 - Back to CFF Explorer, go to "Section Headers [x]" and see 2 values at "Virtual Address" and "Raw Address" column on ".text" row.
![[IMG]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sCvuuLSdyRwhwdiyCqMo98vhboIartwvBOtEraMQg6u2UsoFQArULkQQ-CjwzDtB0-ARPfY_5Zbinbe1kXQDHKcA=s0-d)
11 - The common formula is: Physical Address = RVA - Virtual Address + Raw Address + [X]
In this case, Physical Address for that function is C8DC0 - 2000 + 200 + C = C6FCC
C8DC0 = 822720 in hex
( For the number [X] , i cannot fully explain it, because it can have many value . For example, when i search for method "getBaseATK" , the number [X] must be 1 so it can fit Physical address that we need to change, but for method "setTimeAcceleration", [X] = 12 = C in hex, this number i got after many times calculation, hope someone can explain this. )
12 - Go back to .NET Reflector, still in Reflexil windows, go to Instruction tab, you will notice that: the Op code somehow still familliar as the previous version.
As for "setTimeAcceleration" function, we need to change the OP Code at the 2 following part.
![[IMG]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tJdYzUpAAx9qtM6QJqtxgz7Q4m3MX9ud8KOesEgFYTrFqKjXhJPJTqgE8J25-bJ24OYGLOkN5Y_m3XCkgWhknPTw=s0-d)
Look at that offset. Now, we need to re-calculate the address that we need to change.
C6FCC + 6D = C7039
![[IMG]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ssIvKc9OTEif_i_cNWMRJgzoRQRmTp7v4l1kIW1-SZ1MzNL5OrgK3QLbT7K-blFRpIMz0oasP1gjsSRAZYkRwulA=s0-d)
Voila~
In case you need, here is the speed change function.
1x - 22 00 00 80 3f
2x - 22 00 00 00 40
3x - 22 00 00 40 40
4x - 22 00 00 80 40
5x - 22 00 00 a0 40
10x - 22 00 00 20 41
Good luck.
P/s: This isn't the only way to mod , as it's not perfect, so hope
anyone give us better solution
Tool that we need:
- CFF Explorer.
- HxD or Hex Workshop
- .NET Reflector with Reflexil.
Step by step:
1 - Extract/decompile the APK file using Apktool or open APK with Winrar, go to /assets/bin/data/ and extract the Managed folder. Go the location of the Assembly-CSharp.dll and open it with CFF Explorer.
2 - Go the ".NET Directory" section, you will see something like this.
3 - Take a look at that "MetaData RVA". If you open this file in .NET Reflector, it will show you some error like this.
4 - Now, change that MetaData RVA from E9AAC908 to 001AF31C (i will tell the reason later).
Save it and re-open.
5 - Now go "MetaData Header" section, at "Signature", change the Value to 424A5342 (this is string "BSJB" on hex)
6 - Go to the "MetaData Streams" , plus 4 units on each offset. You will have something like this.
7 - Save it. Now open it again with .NET Reflector and see the miracle. But do not feel happy yet, now the real hell come if you want to mod.
8 - If you try to open any function inside Assembly-CSharp.dll via .NET Reflector, it will give you some error like this pic and doesn't show any OP Code or so.
9 - So what do we do now?
This time, i will use method "setTimeAcceleration" as example. You can do same for another .
Choose it , take a look at Reflexil windows, go to Attribute tab and check the RVA field.
10 - Back to CFF Explorer, go to "Section Headers [x]" and see 2 values at "Virtual Address" and "Raw Address" column on ".text" row.
11 - The common formula is: Physical Address = RVA - Virtual Address + Raw Address + [X]
In this case, Physical Address for that function is C8DC0 - 2000 + 200 + C = C6FCC
C8DC0 = 822720 in hex
( For the number [X] , i cannot fully explain it, because it can have many value . For example, when i search for method "getBaseATK" , the number [X] must be 1 so it can fit Physical address that we need to change, but for method "setTimeAcceleration", [X] = 12 = C in hex, this number i got after many times calculation, hope someone can explain this. )
12 - Go back to .NET Reflector, still in Reflexil windows, go to Instruction tab, you will notice that: the Op code somehow still familliar as the previous version.
As for "setTimeAcceleration" function, we need to change the OP Code at the 2 following part.
Look at that offset. Now, we need to re-calculate the address that we need to change.
C6FCC + 6D = C7039
Voila~
In case you need, here is the speed change function.
1x - 22 00 00 80 3f
2x - 22 00 00 00 40
3x - 22 00 00 40 40
4x - 22 00 00 80 40
5x - 22 00 00 a0 40
10x - 22 00 00 20 41
Good luck.
P/s: This isn't the only way to mod , as it's not perfect, so hope

Itulah sedikit Artikel [Tutorial] How to get around Invalid RVA Address error (Assembly-Csharp.dll decryption) terbaru dari kami
Semoga artikel [Tutorial] How to get around Invalid RVA Address error (Assembly-Csharp.dll decryption) yang saya posting kali ini, bisa memberi informasi untuk anda semua yang menyukai Warung Game Android. jangan lupa baca juga artikel-artikel lain dari kami.
Terima kasih Anda baru saja membaca [Tutorial] How to get around Invalid RVA Address error (Assembly-Csharp.dll decryption)