|
|
|
สอบถามครับ ใครเคยมีประสบการณ์การใช้ Radgate Reflector 10 decompile .exe บ้างไหมครับ |
|
|
|
|
|
|
|
อยากได้มาใช้จริงครับ 10
ผมลองทดสอบด้วย เวอร์ชัน 8 อยากรู้ว่ามันจำเพาะเป็นที่เครื่องหมาย <> หรือไม่ เลยไปหาโค้ดมามาคอมไพล์ด้วย Framework 4.5.2
โค้ดจาก:
https://codereview.stackexchange.com/questions/160172/a-person-class-containing-a-list-of-persons/160174
Reflector 8.x.x :
ได้ตัวแปรพร้อมเครื่องหมายมาครบเหมือนต้นฉบับเลยครับ
ผมเดาว่าอาจเป็นที่ชื่อของตัวแปรมีอักขระพิเศษ ซึ่งผมยังไม่ได้ลอง
หรือ อะไรอย่างอื่นที่ซับซ้อนกว่าที่คิดหรืออย่างอื่น เช่น
โค้ดที่่ผมนำมาไม่มีความซับซ้อน ไม่มี nest ไม่มี child ไม่มี database ฯลฯ
|
ประวัติการแก้ไข 2019-07-18 20:46:37 2019-07-18 20:47:34
|
|
|
|
Date :
2019-07-18 19:36:29 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Update: ไม่เกี่ยวกับอักขระครับ
Source:
Reflector:
แต่ผมชอบอีกอันมากกว่า(เพราะมันฟรี ) จึงแนบมาด้วย
|
|
|
|
|
Date :
2019-07-18 20:09:53 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ
เดี๋ยวลอง net 4.5.2 ดูครับ พอดีผมไปใช้ net.4.7
ตัวอย่างโค๊ดที่ผิด clsUtil.<>c <>9 มาแบบนี้ คือแก้มือได้ ถ้า เปลี่ยน <> เป็น AAc AA9 ก็ผ่าน
แต่ต้องไปแก้ คลาส clsUtil มันผิดมาแต่โน่น เลย คือโครงสร้างมันถูก แต่มันดันใช้ อักษรผิด
แทนที่มันจะ decompile ด้วยอักษร a-z เป็นชื่อตัวแปร มันดันไปเอา อักขระพิเศษมาใส่ คอมม่าก็เคยเจอ ไม่รู้มันบักอะไร ยังหาวิธีไม่เจอ ดีนะที่ไม่มี จุดมาด้วย 5555
Code (C#)
[Serializable, CompilerGenerated]
private sealed class <>c
{
public static readonly clsUtil.<>c <>9 = new clsUtil.<>c();
public static Func<IPAddress, bool> <>9__24_0;
internal bool <LocalIPAddress>b__24_0(IPAddress ip) =>
(ip.AddressFamily == AddressFamily.InterNetwork);
}
|
|
|
|
|
Date :
2019-07-18 21:11:06 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
^ ^
ถ้าจุดมาก็สนุกกับการขุดยาว 555
Update2:
4.7 และ Nested Class ก็ไม่มีปัญหาครับ
ก่อน compile (C#)
class People
{
private _Person._status status = new _Person._status();
public string Status()
{
return status.status;
}
}
หลัง decompile (C#)
internal class People
{
private _Person._status status = new _Person._status();
public string Status()
{
return this.status.status;
}
}
ปล.ไม่ได้ config อะไรใน reflector เลยครับ
|
ประวัติการแก้ไข 2019-07-19 15:04:06 2019-07-19 15:07:58
|
|
|
|
Date :
2019-07-19 15:01:20 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คงมีแต่โปรแกรมนี้แหล่ะมั้ง เพราะลองเอาโค๊ดที่เขียนเอง มา decompile ก็เหมือนต้นฉบับเป๊ะๆ เหมือนกัน
ก็คง ต้องแก้มือเอาเอง 5000+ error 5555 ตอนนี้เหลือ 1000+ 55555
|
|
|
|
|
Date :
2019-07-19 15:42:30 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
555
งั้นก็มั่นใจได้เลย ว่าโปรแกรมนั้นติด variable obfuscation ให้ใช้ตาเหยี่ยว + แบบฝึกเสริมทักษะ ป.1(Search/Replace) เข้ามาช่วย...ทำมาขนาดนี้แล้วก็เดินหน้าต่อไปครับ
ผมนำโค้ดตัวอย่างมาสับหลอกตัวแปร(จริงๆ คือ หลอก/ซ่อนชื่อทั้ง source) แล้ว decompile ออกมาได้แบบนี้ครับ
โครงสร้างมา แต่ตัวแปรไปแล้ว เดาไม่ได้เลยต้องคิดขึ้นมาใหม่
ซึ่งวิธีที่ง่ายไม่มีครับ ต้องไปหา Unpacker ที่ใช้สับหลอก หรือ ปลดเองใน decompiler ชื่อดัง(ถ้าคุ้มเวลา) ...แต่อย่างโปรแกรมนั้นใช้วิธีตาเหยี่ยวง่ายสุดแล้วครับเพราะพอเดาได้ ออกแรงหน่อยแค่นั้นเอง
|
ประวัติการแก้ไข 2019-07-19 16:41:37
|
|
|
|
Date :
2019-07-19 16:38:28 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@พระยาเทพ/Chaidhanan
หาจนเจอ เอาจนได้ เลยนะ แบบนี้ต้องมอบโล่ให้
+55555
|
|
|
|
|
Date :
2019-07-19 17:44:36 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปล. เอาไว้อ้างอิง
|
|
|
|
|
Date :
2019-07-20 03:48:32 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ศิลปะโปรแกรมมิ่ง ไม่ใช่แค่เขียนโปรแกรมได้
งานเอกสาร ก็เป็นส่วนหนึ่งในนั้น
...
...
รู้อย่างเดียวก็ไม่พอ มันต้องรอบรู้
...
...
...
|
|
|
|
|
Date :
2019-07-20 03:56:39 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นอนไม่หลับ ตื่นขึ้นมาตั้งแต่ตีสอง คิดโน่นคิดนี่ไปเรื่อยเปื่อย หาวิธีแก้ไขขี้เกียจจำ
ฝั่ง Client พอไปได้แล้ว
Code (JavaScript)
var SizeEnum = {
SMALL: 1,
MEDIUM: 2,
LARGE: 3,
properties: {
1: {name: "small", value: 1, code: "S"},
2: {name: "medium", value: 2, code: "M"},
3: {name: "large", value: 3, code: "L"}
}
};
var mySize = SizeEnum.MEDIUM;
var myCode = SizeEnum.properties[mySize].code; // myCode == "M"
Cleint Mapping Server
เหลือแต่ฝั่ง Server (C#/VB) ยังไม่รู้เหมือนกันว่าต้องทำอย่างไร
...ไม่รีบร้อน เดี๋ยวมันก็ได้เองแหละ คิดอย่างนั้น
|
|
|
|
|
Date :
2019-07-20 04:43:12 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
using Dapper;
using Newtonsoft.Json;
namespace Sexy_Database.Models.Settings
{
/// <summary>
/// ข้อมูลหลัก แฟ้มสินค้า
/// </summary>
/// <remarks>M = Master file.</remarks>
[Table("MProducts")]
class MProducts
{
[Key] //Auto increment
[JsonProperty("Id")]
public int Id { get; set; }
/// <summary>
/// รหัสสินค้า
/// ex STKCod, cd Code
/// </summary>
[Key, Required] //Composite Key
public string ProdCode { get; set; } //
/// <summary>
/// ประเภทสินค้า ex STKTYP, cd Type_1
/// SV-สินค้าบริการ(ไม่ตัดสต๊อค) ภาษีซื้อจะเกิดขึ้นเมื่อได้รับเงินเรียบร้อยแล้ว
/// </summary>
public string ProdType { get; set; }
/// <summary>
/// หมวดสินค้า ex STKGRP, cd Type_2
/// gd-สินค้าสำเร็จรูป, wp-งานระหว่างทำ, rw-วัตถุดิบ, ad-ทรัพย์สิน
/// </summary>
public string ProdCategory { get; set; } //
/// <summary>
/// ชื่อสินค้า
/// ex ?, cd ?
/// </summary>
public string ProdDescTH { get; set; }
/// <summary>
/// ชื่อสินค้า Eng
/// ex ?, cd ?
/// </summary>
public string ProdDescUS { get; set; }
}
}
|
|
|
|
|
Date :
2019-07-20 04:58:37 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|